@decaf-ts/integrations 0.3.7 → 0.3.9
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/dist/integrations.cjs +3 -3
- package/dist/integrations.js +3 -3
- package/lib/cjs/graph/engine/constants.cjs +58 -0
- package/lib/cjs/graph/engine/decorators.cjs +4 -0
- package/lib/cjs/graph/engine/errors/GraphCycleError.cjs +20 -0
- package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs +27 -0
- package/lib/cjs/graph/engine/errors/GraphInputError.cjs +20 -0
- package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs +20 -0
- package/lib/cjs/graph/engine/errors/GraphPinningError.cjs +20 -0
- package/lib/cjs/graph/engine/errors/GraphPortError.cjs +20 -0
- package/lib/cjs/graph/engine/errors/GraphStoreError.cjs +20 -0
- package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs +20 -0
- package/lib/cjs/graph/{errors → engine/errors}/index.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs +4 -0
- package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs +40 -0
- package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs +37 -0
- package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs +4 -0
- package/lib/cjs/graph/{events → engine/events}/index.cjs +2 -2
- package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs +4 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs +79 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs +408 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs +32 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs +30 -0
- package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs +4 -0
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs +103 -0
- package/lib/cjs/graph/{execution → engine/execution}/index.cjs +2 -2
- package/lib/cjs/graph/engine/index.cjs +84 -0
- package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs +87 -0
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +85 -0
- package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs +85 -0
- package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs +16 -0
- package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs +77 -0
- package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs +78 -0
- package/lib/cjs/graph/{loops → engine/loops}/index.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs +28 -0
- package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs +20 -0
- package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs +34 -0
- package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs +191 -0
- package/lib/cjs/graph/{pinning → engine/pinning}/index.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs +4 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs +4 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs +4 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs +4 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs +197 -0
- package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs +172 -0
- package/lib/cjs/graph/engine/planning/GraphTopology.cjs +57 -0
- package/lib/cjs/graph/{planning → engine/planning}/index.cjs +2 -2
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs +44 -0
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs +27 -0
- package/lib/cjs/graph/{registry → engine/registry}/index.cjs +2 -2
- package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs +53 -0
- package/lib/cjs/graph/{snapshots → engine/snapshots}/index.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphCachedValue.cjs +4 -0
- package/lib/cjs/graph/engine/store/GraphValueKey.cjs +4 -0
- package/lib/cjs/graph/engine/store/GraphValueStore.cjs +76 -0
- package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs +4 -0
- package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs +69 -0
- package/lib/cjs/graph/{store → engine/store}/index.cjs +2 -2
- package/lib/cjs/graph/engine/types.cjs +4 -0
- package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs +33 -0
- package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs +58 -0
- package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs +52 -0
- package/lib/cjs/graph/{validation → engine/validation}/index.cjs +2 -2
- package/lib/cjs/graph/index.cjs +10 -60
- package/lib/cjs/graph/shared/constants.cjs +44 -0
- package/lib/cjs/graph/shared/index.cjs +38 -0
- package/lib/cjs/graph/{nodes → shared/nodes}/agent.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/base.cjs +35 -0
- package/lib/cjs/graph/shared/nodes/category-styles.cjs +38 -0
- package/lib/cjs/graph/shared/nodes/flow-control.cjs +464 -0
- package/lib/cjs/graph/{nodes → shared/nodes}/index.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/triggers.cjs +250 -0
- package/lib/cjs/graph/shared/types.cjs +4 -0
- package/lib/cjs/index.cjs +3 -3
- package/lib/cjs/nest/index.cjs +2 -3
- package/lib/esm/graph/engine/constants.js +62 -0
- package/lib/esm/graph/engine/decorators.js +2 -0
- package/lib/esm/graph/engine/errors/GraphCycleError.js +15 -0
- package/lib/esm/graph/engine/errors/GraphExecutionError.js +22 -0
- package/lib/esm/graph/engine/errors/GraphInputError.js +15 -0
- package/lib/esm/graph/engine/errors/GraphLoopLimitError.js +15 -0
- package/lib/esm/graph/engine/errors/GraphPinningError.js +15 -0
- package/lib/esm/graph/engine/errors/GraphPortError.js +15 -0
- package/lib/esm/graph/engine/errors/GraphStoreError.js +15 -0
- package/lib/esm/graph/engine/errors/GraphTopologyError.js +15 -0
- package/lib/esm/graph/engine/errors/index.js +14 -0
- package/lib/esm/graph/engine/events/GraphExecutionEvent.js +2 -0
- package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js +35 -0
- package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js +32 -0
- package/lib/esm/graph/engine/events/GraphExecutionObserver.js +2 -0
- package/lib/esm/graph/engine/events/index.js +10 -0
- package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js +18 -0
- package/lib/esm/graph/engine/execution/GraphExecutionContext.js +74 -0
- package/lib/esm/graph/engine/execution/GraphExecutionEngine.js +403 -0
- package/lib/esm/graph/engine/execution/GraphExecutionFrame.js +27 -0
- package/lib/esm/graph/engine/execution/GraphExecutionResult.js +26 -0
- package/lib/esm/graph/engine/execution/GraphNodeExecutor.js +2 -0
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js +98 -0
- package/lib/esm/graph/engine/execution/index.js +13 -0
- package/lib/esm/graph/engine/index.js +67 -0
- package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js +82 -0
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +80 -0
- package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js +80 -0
- package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js +11 -0
- package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js +72 -0
- package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js +73 -0
- package/lib/esm/graph/engine/loops/index.js +12 -0
- package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js +23 -0
- package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js +15 -0
- package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js +29 -0
- package/lib/esm/graph/engine/pinning/GraphPinningService.js +186 -0
- package/lib/esm/graph/engine/pinning/index.js +10 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlan.js +2 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js +7 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js +2 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js +2 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js +192 -0
- package/lib/esm/graph/engine/planning/GraphRelationResolver.js +167 -0
- package/lib/esm/graph/engine/planning/GraphTopology.js +52 -0
- package/lib/esm/graph/engine/planning/index.js +13 -0
- package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js +39 -0
- package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js +22 -0
- package/lib/esm/graph/engine/registry/index.js +8 -0
- package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js +48 -0
- package/lib/esm/graph/engine/snapshots/index.js +7 -0
- package/lib/esm/graph/engine/store/GraphCachedValue.js +2 -0
- package/lib/esm/graph/engine/store/GraphValueKey.js +7 -0
- package/lib/esm/graph/engine/store/GraphValueStore.js +71 -0
- package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js +2 -0
- package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js +64 -0
- package/lib/esm/graph/engine/store/index.js +11 -0
- package/lib/esm/graph/engine/types.js +2 -0
- package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js +28 -0
- package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js +53 -0
- package/lib/esm/graph/engine/validation/GraphValueValidator.js +47 -0
- package/lib/esm/graph/engine/validation/index.js +9 -0
- package/lib/esm/graph/index.js +9 -59
- package/lib/esm/graph/shared/constants.js +56 -0
- package/lib/esm/graph/shared/index.js +19 -0
- package/lib/esm/graph/shared/nodes/agent.js +101 -0
- package/lib/esm/graph/shared/nodes/base.js +30 -0
- package/lib/esm/graph/shared/nodes/category-styles.js +34 -0
- package/lib/esm/graph/shared/nodes/flow-control.js +455 -0
- package/lib/esm/graph/shared/nodes/index.js +18 -0
- package/lib/esm/graph/shared/nodes/triggers.js +241 -0
- package/lib/esm/graph/shared/types.js +2 -0
- package/lib/esm/index.js +3 -3
- package/lib/esm/nest/index.js +1 -2
- package/lib/types/graph/engine/constants.d.cts +59 -0
- package/lib/types/graph/engine/constants.d.mts +59 -0
- package/lib/types/graph/{execution → engine/execution}/GraphExecutionResult.d.cts +1 -1
- package/lib/types/graph/{execution → engine/execution}/GraphExecutionResult.d.mts +1 -1
- package/lib/types/graph/engine/index.d.cts +61 -0
- package/lib/types/graph/engine/index.d.mts +61 -0
- package/lib/types/graph/{loops → engine/loops}/ConditionExpressionEvaluator.d.cts +1 -1
- package/lib/types/graph/{loops → engine/loops}/ConditionExpressionEvaluator.d.mts +1 -1
- package/lib/types/graph/{loops → engine/loops}/GraphConditionEvaluator.d.cts +2 -1
- package/lib/types/graph/{loops → engine/loops}/GraphConditionEvaluator.d.mts +2 -1
- package/lib/types/graph/{types.d.cts → engine/types.d.cts} +8 -116
- package/lib/types/graph/{types.d.mts → engine/types.d.mts} +8 -116
- package/lib/types/graph/index.d.cts +8 -53
- package/lib/types/graph/index.d.mts +8 -53
- package/lib/types/graph/shared/constants.d.cts +53 -0
- package/lib/types/graph/shared/constants.d.mts +53 -0
- package/lib/types/graph/shared/index.d.cts +18 -0
- package/lib/types/graph/shared/index.d.mts +18 -0
- package/lib/types/graph/shared/types.d.cts +121 -0
- package/lib/types/graph/shared/types.d.mts +121 -0
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/lib/types/nest/index.d.cts +0 -1
- package/lib/types/nest/index.d.mts +0 -1
- package/package.json +25 -3
- package/lib/cjs/graph/constants.cjs +0 -94
- package/lib/cjs/graph/decorators.cjs +0 -4
- package/lib/cjs/graph/errors/GraphCycleError.cjs +0 -20
- package/lib/cjs/graph/errors/GraphExecutionError.cjs +0 -27
- package/lib/cjs/graph/errors/GraphInputError.cjs +0 -20
- package/lib/cjs/graph/errors/GraphLoopLimitError.cjs +0 -20
- package/lib/cjs/graph/errors/GraphPinningError.cjs +0 -20
- package/lib/cjs/graph/errors/GraphPortError.cjs +0 -20
- package/lib/cjs/graph/errors/GraphStoreError.cjs +0 -20
- package/lib/cjs/graph/errors/GraphTopologyError.cjs +0 -20
- package/lib/cjs/graph/events/GraphExecutionEvent.cjs +0 -4
- package/lib/cjs/graph/events/GraphExecutionEventEmitter.cjs +0 -40
- package/lib/cjs/graph/events/GraphExecutionEventFactory.cjs +0 -37
- package/lib/cjs/graph/events/GraphExecutionObserver.cjs +0 -4
- package/lib/cjs/graph/execution/CodeSandboxEvaluator.cjs +0 -4
- package/lib/cjs/graph/execution/GraphExecutionContext.cjs +0 -79
- package/lib/cjs/graph/execution/GraphExecutionEngine.cjs +0 -407
- package/lib/cjs/graph/execution/GraphExecutionFrame.cjs +0 -32
- package/lib/cjs/graph/execution/GraphExecutionResult.cjs +0 -30
- package/lib/cjs/graph/execution/GraphNodeExecutor.cjs +0 -4
- package/lib/cjs/graph/execution/SwitchGraphNodeExecutor.cjs +0 -103
- package/lib/cjs/graph/loops/ConditionExpressionEvaluator.cjs +0 -87
- package/lib/cjs/graph/loops/ForeachGraphNodeExecutor.cjs +0 -84
- package/lib/cjs/graph/loops/GraphConditionEvaluator.cjs +0 -85
- package/lib/cjs/graph/loops/GraphLoopExecutionContext.cjs +0 -16
- package/lib/cjs/graph/loops/UntilGraphNodeExecutor.cjs +0 -76
- package/lib/cjs/graph/loops/WhileGraphNodeExecutor.cjs +0 -77
- package/lib/cjs/graph/nodes/base.cjs +0 -35
- package/lib/cjs/graph/nodes/category-styles.cjs +0 -38
- package/lib/cjs/graph/nodes/flow-control.cjs +0 -464
- package/lib/cjs/graph/nodes/triggers.cjs +0 -250
- package/lib/cjs/graph/pinning/GraphPinningDependencyResolver.cjs +0 -28
- package/lib/cjs/graph/pinning/GraphPinningMetadata.cjs +0 -20
- package/lib/cjs/graph/pinning/GraphPinningPolicy.cjs +0 -34
- package/lib/cjs/graph/pinning/GraphPinningService.cjs +0 -191
- package/lib/cjs/graph/planning/GraphExecutionPlan.cjs +0 -4
- package/lib/cjs/graph/planning/GraphExecutionPlanEdge.cjs +0 -4
- package/lib/cjs/graph/planning/GraphExecutionPlanLayer.cjs +0 -4
- package/lib/cjs/graph/planning/GraphExecutionPlanNode.cjs +0 -4
- package/lib/cjs/graph/planning/GraphExecutionPlanner.cjs +0 -197
- package/lib/cjs/graph/planning/GraphRelationResolver.cjs +0 -172
- package/lib/cjs/graph/planning/GraphTopology.cjs +0 -57
- package/lib/cjs/graph/registry/GraphNodeExecutorRegistry.cjs +0 -44
- package/lib/cjs/graph/registry/GraphNodeExecutorResolver.cjs +0 -27
- package/lib/cjs/graph/snapshots/GraphExecutionSnapshotMapper.cjs +0 -53
- package/lib/cjs/graph/store/GraphCachedValue.cjs +0 -4
- package/lib/cjs/graph/store/GraphValueKey.cjs +0 -4
- package/lib/cjs/graph/store/GraphValueStore.cjs +0 -76
- package/lib/cjs/graph/store/GraphValueStoreAdapter.cjs +0 -4
- package/lib/cjs/graph/store/InMemoryGraphValueStoreAdapter.cjs +0 -69
- package/lib/cjs/graph/types.cjs +0 -4
- package/lib/cjs/graph/validation/GraphDefinitionValidator.cjs +0 -33
- package/lib/cjs/graph/validation/GraphPortSchemaResolver.cjs +0 -58
- package/lib/cjs/graph/validation/GraphValueValidator.cjs +0 -52
- package/lib/esm/graph/constants.js +0 -106
- package/lib/esm/graph/decorators.js +0 -2
- package/lib/esm/graph/errors/GraphCycleError.js +0 -15
- package/lib/esm/graph/errors/GraphExecutionError.js +0 -22
- package/lib/esm/graph/errors/GraphInputError.js +0 -15
- package/lib/esm/graph/errors/GraphLoopLimitError.js +0 -15
- package/lib/esm/graph/errors/GraphPinningError.js +0 -15
- package/lib/esm/graph/errors/GraphPortError.js +0 -15
- package/lib/esm/graph/errors/GraphStoreError.js +0 -15
- package/lib/esm/graph/errors/GraphTopologyError.js +0 -15
- package/lib/esm/graph/errors/index.js +0 -14
- package/lib/esm/graph/events/GraphExecutionEvent.js +0 -2
- package/lib/esm/graph/events/GraphExecutionEventEmitter.js +0 -35
- package/lib/esm/graph/events/GraphExecutionEventFactory.js +0 -32
- package/lib/esm/graph/events/GraphExecutionObserver.js +0 -2
- package/lib/esm/graph/events/index.js +0 -10
- package/lib/esm/graph/execution/CodeSandboxEvaluator.js +0 -18
- package/lib/esm/graph/execution/GraphExecutionContext.js +0 -74
- package/lib/esm/graph/execution/GraphExecutionEngine.js +0 -402
- package/lib/esm/graph/execution/GraphExecutionFrame.js +0 -27
- package/lib/esm/graph/execution/GraphExecutionResult.js +0 -26
- package/lib/esm/graph/execution/GraphNodeExecutor.js +0 -2
- package/lib/esm/graph/execution/SwitchGraphNodeExecutor.js +0 -98
- package/lib/esm/graph/execution/index.js +0 -13
- package/lib/esm/graph/loops/ConditionExpressionEvaluator.js +0 -82
- package/lib/esm/graph/loops/ForeachGraphNodeExecutor.js +0 -79
- package/lib/esm/graph/loops/GraphConditionEvaluator.js +0 -80
- package/lib/esm/graph/loops/GraphLoopExecutionContext.js +0 -11
- package/lib/esm/graph/loops/UntilGraphNodeExecutor.js +0 -71
- package/lib/esm/graph/loops/WhileGraphNodeExecutor.js +0 -72
- package/lib/esm/graph/loops/index.js +0 -12
- package/lib/esm/graph/nodes/agent.js +0 -101
- package/lib/esm/graph/nodes/base.js +0 -30
- package/lib/esm/graph/nodes/category-styles.js +0 -34
- package/lib/esm/graph/nodes/flow-control.js +0 -455
- package/lib/esm/graph/nodes/index.js +0 -18
- package/lib/esm/graph/nodes/triggers.js +0 -241
- package/lib/esm/graph/pinning/GraphPinningDependencyResolver.js +0 -23
- package/lib/esm/graph/pinning/GraphPinningMetadata.js +0 -15
- package/lib/esm/graph/pinning/GraphPinningPolicy.js +0 -29
- package/lib/esm/graph/pinning/GraphPinningService.js +0 -186
- package/lib/esm/graph/pinning/index.js +0 -10
- package/lib/esm/graph/planning/GraphExecutionPlan.js +0 -2
- package/lib/esm/graph/planning/GraphExecutionPlanEdge.js +0 -7
- package/lib/esm/graph/planning/GraphExecutionPlanLayer.js +0 -2
- package/lib/esm/graph/planning/GraphExecutionPlanNode.js +0 -2
- package/lib/esm/graph/planning/GraphExecutionPlanner.js +0 -192
- package/lib/esm/graph/planning/GraphRelationResolver.js +0 -167
- package/lib/esm/graph/planning/GraphTopology.js +0 -52
- package/lib/esm/graph/planning/index.js +0 -13
- package/lib/esm/graph/registry/GraphNodeExecutorRegistry.js +0 -39
- package/lib/esm/graph/registry/GraphNodeExecutorResolver.js +0 -22
- package/lib/esm/graph/registry/index.js +0 -8
- package/lib/esm/graph/snapshots/GraphExecutionSnapshotMapper.js +0 -48
- package/lib/esm/graph/snapshots/index.js +0 -7
- package/lib/esm/graph/store/GraphCachedValue.js +0 -2
- package/lib/esm/graph/store/GraphValueKey.js +0 -7
- package/lib/esm/graph/store/GraphValueStore.js +0 -71
- package/lib/esm/graph/store/GraphValueStoreAdapter.js +0 -2
- package/lib/esm/graph/store/InMemoryGraphValueStoreAdapter.js +0 -64
- package/lib/esm/graph/store/index.js +0 -11
- package/lib/esm/graph/types.js +0 -2
- package/lib/esm/graph/validation/GraphDefinitionValidator.js +0 -28
- package/lib/esm/graph/validation/GraphPortSchemaResolver.js +0 -53
- package/lib/esm/graph/validation/GraphValueValidator.js +0 -47
- package/lib/esm/graph/validation/index.js +0 -9
- package/lib/types/graph/constants.d.cts +0 -101
- package/lib/types/graph/constants.d.mts +0 -101
- /package/lib/types/graph/{decorators.d.cts → engine/decorators.d.cts} +0 -0
- /package/lib/types/graph/{decorators.d.mts → engine/decorators.d.mts} +0 -0
- /package/lib/types/graph/{errors → engine/errors}/GraphCycleError.d.cts +0 -0
- /package/lib/types/graph/{errors → engine/errors}/GraphCycleError.d.mts +0 -0
- /package/lib/types/graph/{errors → engine/errors}/GraphExecutionError.d.cts +0 -0
- /package/lib/types/graph/{errors → engine/errors}/GraphExecutionError.d.mts +0 -0
- /package/lib/types/graph/{errors → engine/errors}/GraphInputError.d.cts +0 -0
- /package/lib/types/graph/{errors → engine/errors}/GraphInputError.d.mts +0 -0
- /package/lib/types/graph/{errors → engine/errors}/GraphLoopLimitError.d.cts +0 -0
- /package/lib/types/graph/{errors → engine/errors}/GraphLoopLimitError.d.mts +0 -0
- /package/lib/types/graph/{errors → engine/errors}/GraphPinningError.d.cts +0 -0
- /package/lib/types/graph/{errors → engine/errors}/GraphPinningError.d.mts +0 -0
- /package/lib/types/graph/{errors → engine/errors}/GraphPortError.d.cts +0 -0
- /package/lib/types/graph/{errors → engine/errors}/GraphPortError.d.mts +0 -0
- /package/lib/types/graph/{errors → engine/errors}/GraphStoreError.d.cts +0 -0
- /package/lib/types/graph/{errors → engine/errors}/GraphStoreError.d.mts +0 -0
- /package/lib/types/graph/{errors → engine/errors}/GraphTopologyError.d.cts +0 -0
- /package/lib/types/graph/{errors → engine/errors}/GraphTopologyError.d.mts +0 -0
- /package/lib/types/graph/{errors → engine/errors}/index.d.cts +0 -0
- /package/lib/types/graph/{errors → engine/errors}/index.d.mts +0 -0
- /package/lib/types/graph/{events → engine/events}/GraphExecutionEvent.d.cts +0 -0
- /package/lib/types/graph/{events → engine/events}/GraphExecutionEvent.d.mts +0 -0
- /package/lib/types/graph/{events → engine/events}/GraphExecutionEventEmitter.d.cts +0 -0
- /package/lib/types/graph/{events → engine/events}/GraphExecutionEventEmitter.d.mts +0 -0
- /package/lib/types/graph/{events → engine/events}/GraphExecutionEventFactory.d.cts +0 -0
- /package/lib/types/graph/{events → engine/events}/GraphExecutionEventFactory.d.mts +0 -0
- /package/lib/types/graph/{events → engine/events}/GraphExecutionObserver.d.cts +0 -0
- /package/lib/types/graph/{events → engine/events}/GraphExecutionObserver.d.mts +0 -0
- /package/lib/types/graph/{events → engine/events}/index.d.cts +0 -0
- /package/lib/types/graph/{events → engine/events}/index.d.mts +0 -0
- /package/lib/types/graph/{execution → engine/execution}/CodeSandboxEvaluator.d.cts +0 -0
- /package/lib/types/graph/{execution → engine/execution}/CodeSandboxEvaluator.d.mts +0 -0
- /package/lib/types/graph/{execution → engine/execution}/GraphExecutionContext.d.cts +0 -0
- /package/lib/types/graph/{execution → engine/execution}/GraphExecutionContext.d.mts +0 -0
- /package/lib/types/graph/{execution → engine/execution}/GraphExecutionEngine.d.cts +0 -0
- /package/lib/types/graph/{execution → engine/execution}/GraphExecutionEngine.d.mts +0 -0
- /package/lib/types/graph/{execution → engine/execution}/GraphExecutionFrame.d.cts +0 -0
- /package/lib/types/graph/{execution → engine/execution}/GraphExecutionFrame.d.mts +0 -0
- /package/lib/types/graph/{execution → engine/execution}/GraphNodeExecutor.d.cts +0 -0
- /package/lib/types/graph/{execution → engine/execution}/GraphNodeExecutor.d.mts +0 -0
- /package/lib/types/graph/{execution → engine/execution}/SwitchGraphNodeExecutor.d.cts +0 -0
- /package/lib/types/graph/{execution → engine/execution}/SwitchGraphNodeExecutor.d.mts +0 -0
- /package/lib/types/graph/{execution → engine/execution}/index.d.cts +0 -0
- /package/lib/types/graph/{execution → engine/execution}/index.d.mts +0 -0
- /package/lib/types/graph/{loops → engine/loops}/ForeachGraphNodeExecutor.d.cts +0 -0
- /package/lib/types/graph/{loops → engine/loops}/ForeachGraphNodeExecutor.d.mts +0 -0
- /package/lib/types/graph/{loops → engine/loops}/GraphLoopExecutionContext.d.cts +0 -0
- /package/lib/types/graph/{loops → engine/loops}/GraphLoopExecutionContext.d.mts +0 -0
- /package/lib/types/graph/{loops → engine/loops}/UntilGraphNodeExecutor.d.cts +0 -0
- /package/lib/types/graph/{loops → engine/loops}/UntilGraphNodeExecutor.d.mts +0 -0
- /package/lib/types/graph/{loops → engine/loops}/WhileGraphNodeExecutor.d.cts +0 -0
- /package/lib/types/graph/{loops → engine/loops}/WhileGraphNodeExecutor.d.mts +0 -0
- /package/lib/types/graph/{loops → engine/loops}/index.d.cts +0 -0
- /package/lib/types/graph/{loops → engine/loops}/index.d.mts +0 -0
- /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningDependencyResolver.d.cts +0 -0
- /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningDependencyResolver.d.mts +0 -0
- /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningMetadata.d.cts +0 -0
- /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningMetadata.d.mts +0 -0
- /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningPolicy.d.cts +0 -0
- /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningPolicy.d.mts +0 -0
- /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningService.d.cts +0 -0
- /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningService.d.mts +0 -0
- /package/lib/types/graph/{pinning → engine/pinning}/index.d.cts +0 -0
- /package/lib/types/graph/{pinning → engine/pinning}/index.d.mts +0 -0
- /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlan.d.cts +0 -0
- /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlan.d.mts +0 -0
- /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanEdge.d.cts +0 -0
- /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanEdge.d.mts +0 -0
- /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanLayer.d.cts +0 -0
- /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanLayer.d.mts +0 -0
- /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanNode.d.cts +0 -0
- /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanNode.d.mts +0 -0
- /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanner.d.cts +0 -0
- /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanner.d.mts +0 -0
- /package/lib/types/graph/{planning → engine/planning}/GraphRelationResolver.d.cts +0 -0
- /package/lib/types/graph/{planning → engine/planning}/GraphRelationResolver.d.mts +0 -0
- /package/lib/types/graph/{planning → engine/planning}/GraphTopology.d.cts +0 -0
- /package/lib/types/graph/{planning → engine/planning}/GraphTopology.d.mts +0 -0
- /package/lib/types/graph/{planning → engine/planning}/index.d.cts +0 -0
- /package/lib/types/graph/{planning → engine/planning}/index.d.mts +0 -0
- /package/lib/types/graph/{registry → engine/registry}/GraphNodeExecutorRegistry.d.cts +0 -0
- /package/lib/types/graph/{registry → engine/registry}/GraphNodeExecutorRegistry.d.mts +0 -0
- /package/lib/types/graph/{registry → engine/registry}/GraphNodeExecutorResolver.d.cts +0 -0
- /package/lib/types/graph/{registry → engine/registry}/GraphNodeExecutorResolver.d.mts +0 -0
- /package/lib/types/graph/{registry → engine/registry}/index.d.cts +0 -0
- /package/lib/types/graph/{registry → engine/registry}/index.d.mts +0 -0
- /package/lib/types/graph/{snapshots → engine/snapshots}/GraphExecutionSnapshotMapper.d.cts +0 -0
- /package/lib/types/graph/{snapshots → engine/snapshots}/GraphExecutionSnapshotMapper.d.mts +0 -0
- /package/lib/types/graph/{snapshots → engine/snapshots}/index.d.cts +0 -0
- /package/lib/types/graph/{snapshots → engine/snapshots}/index.d.mts +0 -0
- /package/lib/types/graph/{store → engine/store}/GraphCachedValue.d.cts +0 -0
- /package/lib/types/graph/{store → engine/store}/GraphCachedValue.d.mts +0 -0
- /package/lib/types/graph/{store → engine/store}/GraphValueKey.d.cts +0 -0
- /package/lib/types/graph/{store → engine/store}/GraphValueKey.d.mts +0 -0
- /package/lib/types/graph/{store → engine/store}/GraphValueStore.d.cts +0 -0
- /package/lib/types/graph/{store → engine/store}/GraphValueStore.d.mts +0 -0
- /package/lib/types/graph/{store → engine/store}/GraphValueStoreAdapter.d.cts +0 -0
- /package/lib/types/graph/{store → engine/store}/GraphValueStoreAdapter.d.mts +0 -0
- /package/lib/types/graph/{store → engine/store}/InMemoryGraphValueStoreAdapter.d.cts +0 -0
- /package/lib/types/graph/{store → engine/store}/InMemoryGraphValueStoreAdapter.d.mts +0 -0
- /package/lib/types/graph/{store → engine/store}/index.d.cts +0 -0
- /package/lib/types/graph/{store → engine/store}/index.d.mts +0 -0
- /package/lib/types/graph/{validation → engine/validation}/GraphDefinitionValidator.d.cts +0 -0
- /package/lib/types/graph/{validation → engine/validation}/GraphDefinitionValidator.d.mts +0 -0
- /package/lib/types/graph/{validation → engine/validation}/GraphPortSchemaResolver.d.cts +0 -0
- /package/lib/types/graph/{validation → engine/validation}/GraphPortSchemaResolver.d.mts +0 -0
- /package/lib/types/graph/{validation → engine/validation}/GraphValueValidator.d.cts +0 -0
- /package/lib/types/graph/{validation → engine/validation}/GraphValueValidator.d.mts +0 -0
- /package/lib/types/graph/{validation → engine/validation}/index.d.cts +0 -0
- /package/lib/types/graph/{validation → engine/validation}/index.d.mts +0 -0
- /package/lib/types/graph/{nodes → shared/nodes}/agent.d.cts +0 -0
- /package/lib/types/graph/{nodes → shared/nodes}/agent.d.mts +0 -0
- /package/lib/types/graph/{nodes → shared/nodes}/base.d.cts +0 -0
- /package/lib/types/graph/{nodes → shared/nodes}/base.d.mts +0 -0
- /package/lib/types/graph/{nodes → shared/nodes}/category-styles.d.cts +0 -0
- /package/lib/types/graph/{nodes → shared/nodes}/category-styles.d.mts +0 -0
- /package/lib/types/graph/{nodes → shared/nodes}/flow-control.d.cts +0 -0
- /package/lib/types/graph/{nodes → shared/nodes}/flow-control.d.mts +0 -0
- /package/lib/types/graph/{nodes → shared/nodes}/index.d.cts +0 -0
- /package/lib/types/graph/{nodes → shared/nodes}/index.d.mts +0 -0
- /package/lib/types/graph/{nodes → shared/nodes}/triggers.d.cts +0 -0
- /package/lib/types/graph/{nodes → shared/nodes}/triggers.d.mts +0 -0
|
@@ -1,455 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* @module integrations/graph/nodes/flow-control
|
|
12
|
-
* @summary Production flow-control node kind declarations (DECAF-32 §22.2.2).
|
|
13
|
-
* @description Canonical `@node`-decorated classes for the ten ALFRED-5
|
|
14
|
-
* flow-control kinds. These are graph-level macros: the engine's planner
|
|
15
|
-
* recognises them as ordinary executable nodes (§5.7) but they have no
|
|
16
|
-
* built-in executors — downstream projects (e.g. ALFRED) register custom
|
|
17
|
-
* executors or compile them into Mastra composition APIs (§22.2.2).
|
|
18
|
-
*
|
|
19
|
-
* The three loop kinds (`core.loop.foreach/while/until`) already have built-in
|
|
20
|
-
* executors (§5.9) and are NOT redeclared here.
|
|
21
|
-
*/
|
|
22
|
-
import { Model, model, required } from "@decaf-ts/decorator-validation";
|
|
23
|
-
import { uielement } from "@decaf-ts/ui-decorators";
|
|
24
|
-
import { graphDefinitionOf, input, node, output, PortDirection, } from "@decaf-ts/ui-decorators/graph";
|
|
25
|
-
import { GraphNode } from "./base.js";
|
|
26
|
-
/**
|
|
27
|
-
* If — conditional branch. Evaluates a `ConditionExpression` (§22.3) and
|
|
28
|
-
* routes the input to the `then` or `else` output.
|
|
29
|
-
*/
|
|
30
|
-
let IfFlowNode = class IfFlowNode extends Model {
|
|
31
|
-
};
|
|
32
|
-
__decorate([
|
|
33
|
-
required(),
|
|
34
|
-
uielement("textarea", { label: "Input value", placeholder: "Value to evaluate" }),
|
|
35
|
-
input({ handle: "value" }),
|
|
36
|
-
__metadata("design:type", Object)
|
|
37
|
-
], IfFlowNode.prototype, "value", void 0);
|
|
38
|
-
__decorate([
|
|
39
|
-
required(),
|
|
40
|
-
uielement("input", { label: "Then", placeholder: "Output when condition is true" }),
|
|
41
|
-
output({ handle: "then" }),
|
|
42
|
-
__metadata("design:type", Object)
|
|
43
|
-
], IfFlowNode.prototype, "then", void 0);
|
|
44
|
-
__decorate([
|
|
45
|
-
required(),
|
|
46
|
-
uielement("input", { label: "Else", placeholder: "Output when condition is false" }),
|
|
47
|
-
output({ handle: "else" }),
|
|
48
|
-
__metadata("design:type", Object)
|
|
49
|
-
], IfFlowNode.prototype, "else", void 0);
|
|
50
|
-
IfFlowNode = __decorate([
|
|
51
|
-
node("core.flow.if", {
|
|
52
|
-
kind: "core.flow.if",
|
|
53
|
-
category: "Flow Control",
|
|
54
|
-
color: "#f59e0b",
|
|
55
|
-
icon: "ti-arrows-split-2",
|
|
56
|
-
width: 96,
|
|
57
|
-
height: 96,
|
|
58
|
-
labels: ["flow", "conditional", "branch"],
|
|
59
|
-
metadata: {
|
|
60
|
-
title: "If",
|
|
61
|
-
description: "Conditional branch. Evaluates the configured condition and routes the input to the matching output.",
|
|
62
|
-
condition: { op: "eq", left: { const: true }, right: { const: true } },
|
|
63
|
-
},
|
|
64
|
-
}),
|
|
65
|
-
model()
|
|
66
|
-
], IfFlowNode);
|
|
67
|
-
export { IfFlowNode };
|
|
68
|
-
/**
|
|
69
|
-
* Switch — multi-branch. Routes the input to one of the case output ports
|
|
70
|
-
* or `default` based on matching conditions. Each case defines a
|
|
71
|
-
* {@link SwitchCaseCondition} (graphical or code mode) and a dedicated
|
|
72
|
-
* output port. Cases are stored in `metadata.switch.cases` and the
|
|
73
|
-
* renderer creates dynamic output ports from them (DECAF-32 §22.2.2).
|
|
74
|
-
*
|
|
75
|
-
* The node grows in height as cases are added. Each case gets its own
|
|
76
|
-
* output port on the right side, labeled with the case label.
|
|
77
|
-
*/
|
|
78
|
-
let SwitchFlowNode = class SwitchFlowNode extends GraphNode {
|
|
79
|
-
/**
|
|
80
|
-
* Computes the node's ports, size, and data patch from the given switch
|
|
81
|
-
* metadata. Each case gets its own output port on the right side; the
|
|
82
|
-
* node grows in height as cases are added.
|
|
83
|
-
*/
|
|
84
|
-
static applyMetadata(meta) {
|
|
85
|
-
const definition = graphDefinitionOf(this);
|
|
86
|
-
const basePorts = definition.ports.filter((p) => !meta.cases.some((c) => c.outputPort === p.property));
|
|
87
|
-
const casePorts = meta.cases.map((c) => ({
|
|
88
|
-
property: c.outputPort,
|
|
89
|
-
name: c.label,
|
|
90
|
-
direction: PortDirection.OUTPUT,
|
|
91
|
-
label: c.label,
|
|
92
|
-
required: false,
|
|
93
|
-
hidden: false,
|
|
94
|
-
path: c.outputPort,
|
|
95
|
-
}));
|
|
96
|
-
const caseCount = meta.cases.length;
|
|
97
|
-
return {
|
|
98
|
-
ports: [...basePorts, ...casePorts],
|
|
99
|
-
size: {
|
|
100
|
-
width: definition.width ?? 120,
|
|
101
|
-
height: caseCount > 0 ? 140 + caseCount * 24 : definition.height ?? 140,
|
|
102
|
-
},
|
|
103
|
-
dataPatch: { switchMetadata: meta },
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
};
|
|
107
|
-
__decorate([
|
|
108
|
-
required(),
|
|
109
|
-
uielement("textarea", { label: "Input value", placeholder: "Value to switch on" }),
|
|
110
|
-
input({ handle: "value" }),
|
|
111
|
-
__metadata("design:type", Object)
|
|
112
|
-
], SwitchFlowNode.prototype, "value", void 0);
|
|
113
|
-
__decorate([
|
|
114
|
-
required(),
|
|
115
|
-
uielement("input", { label: "Default", placeholder: "Default output when no case matches" }),
|
|
116
|
-
output({ handle: "default" }),
|
|
117
|
-
__metadata("design:type", Object)
|
|
118
|
-
], SwitchFlowNode.prototype, "default", void 0);
|
|
119
|
-
SwitchFlowNode = __decorate([
|
|
120
|
-
node("core.flow.switch", {
|
|
121
|
-
kind: "core.flow.switch",
|
|
122
|
-
category: "Flow Control",
|
|
123
|
-
color: "#f97316",
|
|
124
|
-
icon: "ti-arrows-shuffle",
|
|
125
|
-
width: 120,
|
|
126
|
-
height: 140,
|
|
127
|
-
labels: ["flow", "switch", "multi-branch"],
|
|
128
|
-
metadata: {
|
|
129
|
-
title: "Switch",
|
|
130
|
-
description: "Multi-branch switch. Routes the input to the first matching case output, or the default output.",
|
|
131
|
-
switch: {
|
|
132
|
-
cases: [],
|
|
133
|
-
defaultPort: "default",
|
|
134
|
-
},
|
|
135
|
-
},
|
|
136
|
-
}),
|
|
137
|
-
model()
|
|
138
|
-
], SwitchFlowNode);
|
|
139
|
-
export { SwitchFlowNode };
|
|
140
|
-
/**
|
|
141
|
-
* Parallel — splits execution into concurrent branches.
|
|
142
|
-
*/
|
|
143
|
-
let ParallelFlowNode = class ParallelFlowNode extends Model {
|
|
144
|
-
};
|
|
145
|
-
__decorate([
|
|
146
|
-
required(),
|
|
147
|
-
uielement("textarea", { label: "Input value", placeholder: "Value to fan out" }),
|
|
148
|
-
input({ handle: "value" }),
|
|
149
|
-
__metadata("design:type", Object)
|
|
150
|
-
], ParallelFlowNode.prototype, "value", void 0);
|
|
151
|
-
__decorate([
|
|
152
|
-
required(),
|
|
153
|
-
uielement("input", { label: "Branches", placeholder: "Collected branch outputs" }),
|
|
154
|
-
output({ handle: "branches" }),
|
|
155
|
-
__metadata("design:type", Array)
|
|
156
|
-
], ParallelFlowNode.prototype, "branches", void 0);
|
|
157
|
-
ParallelFlowNode = __decorate([
|
|
158
|
-
node("core.flow.parallel", {
|
|
159
|
-
kind: "core.flow.parallel",
|
|
160
|
-
category: "Flow Control",
|
|
161
|
-
color: "#06b6d4",
|
|
162
|
-
icon: "ti-arrows-vertical",
|
|
163
|
-
width: 96,
|
|
164
|
-
height: 96,
|
|
165
|
-
labels: ["flow", "parallel", "concurrent"],
|
|
166
|
-
metadata: {
|
|
167
|
-
title: "Parallel",
|
|
168
|
-
description: "Splits execution into concurrent branches. All branches run in parallel and outputs are collected.",
|
|
169
|
-
branchCount: 2,
|
|
170
|
-
},
|
|
171
|
-
}),
|
|
172
|
-
model()
|
|
173
|
-
], ParallelFlowNode);
|
|
174
|
-
export { ParallelFlowNode };
|
|
175
|
-
/**
|
|
176
|
-
* Merge — normalises branch/parallel outputs into a single output.
|
|
177
|
-
*/
|
|
178
|
-
let MergeFlowNode = class MergeFlowNode extends Model {
|
|
179
|
-
};
|
|
180
|
-
__decorate([
|
|
181
|
-
required(),
|
|
182
|
-
uielement("textarea", { label: "Branch outputs", placeholder: "Outputs to merge" }),
|
|
183
|
-
input({ handle: "values" }),
|
|
184
|
-
__metadata("design:type", Array)
|
|
185
|
-
], MergeFlowNode.prototype, "values", void 0);
|
|
186
|
-
__decorate([
|
|
187
|
-
required(),
|
|
188
|
-
uielement("input", { label: "Merged output", placeholder: "Merged result" }),
|
|
189
|
-
output({ handle: "merged" }),
|
|
190
|
-
__metadata("design:type", Object)
|
|
191
|
-
], MergeFlowNode.prototype, "merged", void 0);
|
|
192
|
-
MergeFlowNode = __decorate([
|
|
193
|
-
node("core.flow.merge", {
|
|
194
|
-
kind: "core.flow.merge",
|
|
195
|
-
category: "Utility",
|
|
196
|
-
color: "#0d9488",
|
|
197
|
-
icon: "ti-arrows-merge",
|
|
198
|
-
width: 96,
|
|
199
|
-
height: 96,
|
|
200
|
-
labels: ["flow", "merge", "join"],
|
|
201
|
-
metadata: {
|
|
202
|
-
title: "Merge",
|
|
203
|
-
description: "Merges multiple branch outputs into a single normalised output object.",
|
|
204
|
-
strategy: "concat",
|
|
205
|
-
},
|
|
206
|
-
}),
|
|
207
|
-
model()
|
|
208
|
-
], MergeFlowNode);
|
|
209
|
-
export { MergeFlowNode };
|
|
210
|
-
/**
|
|
211
|
-
* Map — transforms the current input into a new output object.
|
|
212
|
-
*/
|
|
213
|
-
let MapFlowNode = class MapFlowNode extends Model {
|
|
214
|
-
};
|
|
215
|
-
__decorate([
|
|
216
|
-
required(),
|
|
217
|
-
uielement("textarea", { label: "Input value", placeholder: "Value to transform" }),
|
|
218
|
-
input({ handle: "value" }),
|
|
219
|
-
__metadata("design:type", Object)
|
|
220
|
-
], MapFlowNode.prototype, "value", void 0);
|
|
221
|
-
__decorate([
|
|
222
|
-
required(),
|
|
223
|
-
uielement("input", { label: "Transformed output", placeholder: "Mapped result" }),
|
|
224
|
-
output({ handle: "result" }),
|
|
225
|
-
__metadata("design:type", Object)
|
|
226
|
-
], MapFlowNode.prototype, "result", void 0);
|
|
227
|
-
MapFlowNode = __decorate([
|
|
228
|
-
node("core.flow.map", {
|
|
229
|
-
kind: "core.flow.map",
|
|
230
|
-
category: "Utility",
|
|
231
|
-
color: "#84cc16",
|
|
232
|
-
icon: "ti-arrows-right-left",
|
|
233
|
-
width: 96,
|
|
234
|
-
height: 96,
|
|
235
|
-
labels: ["flow", "map", "transform"],
|
|
236
|
-
metadata: {
|
|
237
|
-
title: "Map",
|
|
238
|
-
description: "Transforms the current input into a new output object using the configured mapper.",
|
|
239
|
-
mapper: {},
|
|
240
|
-
},
|
|
241
|
-
}),
|
|
242
|
-
model()
|
|
243
|
-
], MapFlowNode);
|
|
244
|
-
export { MapFlowNode };
|
|
245
|
-
/**
|
|
246
|
-
* Delay — pauses execution for a configured duration.
|
|
247
|
-
*/
|
|
248
|
-
let DelayFlowNode = class DelayFlowNode extends Model {
|
|
249
|
-
};
|
|
250
|
-
__decorate([
|
|
251
|
-
required(),
|
|
252
|
-
uielement("textarea", { label: "Input value", placeholder: "Value to forward after delay" }),
|
|
253
|
-
input({ handle: "value" }),
|
|
254
|
-
__metadata("design:type", Object)
|
|
255
|
-
], DelayFlowNode.prototype, "value", void 0);
|
|
256
|
-
__decorate([
|
|
257
|
-
required(),
|
|
258
|
-
uielement("input", { label: "Output value", placeholder: "Forwarded value" }),
|
|
259
|
-
output({ handle: "value" }),
|
|
260
|
-
__metadata("design:type", Object)
|
|
261
|
-
], DelayFlowNode.prototype, "valueOut", void 0);
|
|
262
|
-
DelayFlowNode = __decorate([
|
|
263
|
-
node("core.flow.delay", {
|
|
264
|
-
kind: "core.flow.delay",
|
|
265
|
-
category: "Utility",
|
|
266
|
-
color: "#a3a3a3",
|
|
267
|
-
icon: "ti-clock-hour-4",
|
|
268
|
-
width: 96,
|
|
269
|
-
height: 96,
|
|
270
|
-
labels: ["flow", "delay", "wait"],
|
|
271
|
-
metadata: {
|
|
272
|
-
title: "Delay",
|
|
273
|
-
description: "Pauses execution for the configured duration (in milliseconds), then forwards the input unchanged.",
|
|
274
|
-
durationMs: 1000,
|
|
275
|
-
},
|
|
276
|
-
}),
|
|
277
|
-
model()
|
|
278
|
-
], DelayFlowNode);
|
|
279
|
-
export { DelayFlowNode };
|
|
280
|
-
/**
|
|
281
|
-
* Error boundary — try/catch/finally workflow behaviour.
|
|
282
|
-
*/
|
|
283
|
-
let ErrorBoundaryFlowNode = class ErrorBoundaryFlowNode extends Model {
|
|
284
|
-
};
|
|
285
|
-
__decorate([
|
|
286
|
-
required(),
|
|
287
|
-
uielement("textarea", { label: "Input value", placeholder: "Value to guard" }),
|
|
288
|
-
input({ handle: "value" }),
|
|
289
|
-
__metadata("design:type", Object)
|
|
290
|
-
], ErrorBoundaryFlowNode.prototype, "value", void 0);
|
|
291
|
-
__decorate([
|
|
292
|
-
required(),
|
|
293
|
-
uielement("input", { label: "Result", placeholder: "Output on success" }),
|
|
294
|
-
output({ handle: "result" }),
|
|
295
|
-
__metadata("design:type", Object)
|
|
296
|
-
], ErrorBoundaryFlowNode.prototype, "result", void 0);
|
|
297
|
-
__decorate([
|
|
298
|
-
required(),
|
|
299
|
-
uielement("input", { label: "Error", placeholder: "Output on failure" }),
|
|
300
|
-
output({ handle: "error" }),
|
|
301
|
-
__metadata("design:type", Object)
|
|
302
|
-
], ErrorBoundaryFlowNode.prototype, "error", void 0);
|
|
303
|
-
ErrorBoundaryFlowNode = __decorate([
|
|
304
|
-
node("core.flow.errorBoundary", {
|
|
305
|
-
kind: "core.flow.errorBoundary",
|
|
306
|
-
category: "Flow Control",
|
|
307
|
-
color: "#ef4444",
|
|
308
|
-
icon: "ti-shield-check",
|
|
309
|
-
width: 96,
|
|
310
|
-
height: 96,
|
|
311
|
-
labels: ["flow", "error", "try-catch"],
|
|
312
|
-
metadata: {
|
|
313
|
-
title: "Error boundary",
|
|
314
|
-
description: "Wraps the input in a try/catch/finally. Emits the result on success, or the error on failure.",
|
|
315
|
-
finally: false,
|
|
316
|
-
},
|
|
317
|
-
}),
|
|
318
|
-
model()
|
|
319
|
-
], ErrorBoundaryFlowNode);
|
|
320
|
-
export { ErrorBoundaryFlowNode };
|
|
321
|
-
/**
|
|
322
|
-
* Human approval — suspends execution until a human approves or rejects.
|
|
323
|
-
*/
|
|
324
|
-
let HumanApprovalFlowNode = class HumanApprovalFlowNode extends Model {
|
|
325
|
-
};
|
|
326
|
-
__decorate([
|
|
327
|
-
required(),
|
|
328
|
-
uielement("textarea", { label: "Input value", placeholder: "Value pending approval" }),
|
|
329
|
-
input({ handle: "value" }),
|
|
330
|
-
__metadata("design:type", Object)
|
|
331
|
-
], HumanApprovalFlowNode.prototype, "value", void 0);
|
|
332
|
-
__decorate([
|
|
333
|
-
required(),
|
|
334
|
-
uielement("input", { label: "Approved", placeholder: "Output when approved" }),
|
|
335
|
-
output({ handle: "approved" }),
|
|
336
|
-
__metadata("design:type", Object)
|
|
337
|
-
], HumanApprovalFlowNode.prototype, "approved", void 0);
|
|
338
|
-
__decorate([
|
|
339
|
-
required(),
|
|
340
|
-
uielement("input", { label: "Rejected", placeholder: "Output when rejected" }),
|
|
341
|
-
output({ handle: "rejected" }),
|
|
342
|
-
__metadata("design:type", Object)
|
|
343
|
-
], HumanApprovalFlowNode.prototype, "rejected", void 0);
|
|
344
|
-
HumanApprovalFlowNode = __decorate([
|
|
345
|
-
node("core.flow.humanApproval", {
|
|
346
|
-
kind: "core.flow.humanApproval",
|
|
347
|
-
category: "Flow Control",
|
|
348
|
-
color: "#d946ef",
|
|
349
|
-
icon: "ti-user-check",
|
|
350
|
-
width: 96,
|
|
351
|
-
height: 96,
|
|
352
|
-
labels: ["flow", "approval", "suspend"],
|
|
353
|
-
metadata: {
|
|
354
|
-
title: "Human approval",
|
|
355
|
-
description: "Suspends execution until a human approves or rejects. Emits the approved value or a rejection.",
|
|
356
|
-
approvers: [],
|
|
357
|
-
timeoutMs: 86400000,
|
|
358
|
-
},
|
|
359
|
-
}),
|
|
360
|
-
model()
|
|
361
|
-
], HumanApprovalFlowNode);
|
|
362
|
-
export { HumanApprovalFlowNode };
|
|
363
|
-
/**
|
|
364
|
-
* Return — defines and normalises the final workflow output.
|
|
365
|
-
*/
|
|
366
|
-
let ReturnFlowNode = class ReturnFlowNode extends Model {
|
|
367
|
-
};
|
|
368
|
-
__decorate([
|
|
369
|
-
required(),
|
|
370
|
-
uielement("textarea", { label: "Input value", placeholder: "Value to normalise" }),
|
|
371
|
-
input({ handle: "value" }),
|
|
372
|
-
__metadata("design:type", Object)
|
|
373
|
-
], ReturnFlowNode.prototype, "value", void 0);
|
|
374
|
-
__decorate([
|
|
375
|
-
required(),
|
|
376
|
-
uielement("input", { label: "Returned output", placeholder: "Normalised output" }),
|
|
377
|
-
output({ handle: "result" }),
|
|
378
|
-
__metadata("design:type", Object)
|
|
379
|
-
], ReturnFlowNode.prototype, "result", void 0);
|
|
380
|
-
ReturnFlowNode = __decorate([
|
|
381
|
-
node("core.flow.return", {
|
|
382
|
-
kind: "core.flow.return",
|
|
383
|
-
category: "Utility",
|
|
384
|
-
color: "#22c55e",
|
|
385
|
-
icon: "ti-arrow-back-up",
|
|
386
|
-
width: 96,
|
|
387
|
-
height: 96,
|
|
388
|
-
labels: ["flow", "return", "output"],
|
|
389
|
-
metadata: {
|
|
390
|
-
title: "Return",
|
|
391
|
-
description: "Normalises the input into the final workflow output object.",
|
|
392
|
-
outputSchema: {},
|
|
393
|
-
},
|
|
394
|
-
}),
|
|
395
|
-
model()
|
|
396
|
-
], ReturnFlowNode);
|
|
397
|
-
export { ReturnFlowNode };
|
|
398
|
-
/**
|
|
399
|
-
* Code — sandboxed JS/TS code execution (ALFRED-5 §7).
|
|
400
|
-
*
|
|
401
|
-
* The engine does not implement the sandbox directly (§22.4). A future
|
|
402
|
-
* executor may wrap the `CodeSandbox` contract (ALFRED-5 §7.17) as a
|
|
403
|
-
* pluggable executor. The placeholder syntax (`{{ $input }}`, `{{ $item }}`,
|
|
404
|
-
* `{{ $index }}`, `{{ $vars }}`, `{{ $node["Name"].output }}`) is Mastra-
|
|
405
|
-
* agnostic and lives in the downstream project's `modules/core` (ALFRED-6).
|
|
406
|
-
*/
|
|
407
|
-
let CodeFlowNode = class CodeFlowNode extends Model {
|
|
408
|
-
};
|
|
409
|
-
__decorate([
|
|
410
|
-
required(),
|
|
411
|
-
uielement("textarea", { label: "Input", placeholder: "Input object (accessible as $input)" }),
|
|
412
|
-
input({ handle: "input" }),
|
|
413
|
-
__metadata("design:type", Object)
|
|
414
|
-
], CodeFlowNode.prototype, "input", void 0);
|
|
415
|
-
__decorate([
|
|
416
|
-
required(),
|
|
417
|
-
uielement("input", { label: "Result", placeholder: "Code execution result" }),
|
|
418
|
-
output({ handle: "result" }),
|
|
419
|
-
__metadata("design:type", Object)
|
|
420
|
-
], CodeFlowNode.prototype, "result", void 0);
|
|
421
|
-
CodeFlowNode = __decorate([
|
|
422
|
-
node("core.flow.code", {
|
|
423
|
-
kind: "core.flow.code",
|
|
424
|
-
category: "Utility",
|
|
425
|
-
color: "#7c3aed",
|
|
426
|
-
icon: "ti-code",
|
|
427
|
-
width: 96,
|
|
428
|
-
height: 96,
|
|
429
|
-
labels: ["flow", "code", "sandbox", "transform"],
|
|
430
|
-
metadata: {
|
|
431
|
-
title: "Code",
|
|
432
|
-
description: "Runs user-authored JS/TS in a restricted VM sandbox. Supports placeholder syntax for workflow data references.",
|
|
433
|
-
code: "",
|
|
434
|
-
language: "javascript",
|
|
435
|
-
},
|
|
436
|
-
}),
|
|
437
|
-
model()
|
|
438
|
-
], CodeFlowNode);
|
|
439
|
-
export { CodeFlowNode };
|
|
440
|
-
/**
|
|
441
|
-
* All built-in flow-control node constructors.
|
|
442
|
-
*/
|
|
443
|
-
export const GRAPH_FLOW_CONTROL_NODES = [
|
|
444
|
-
IfFlowNode,
|
|
445
|
-
SwitchFlowNode,
|
|
446
|
-
ParallelFlowNode,
|
|
447
|
-
MergeFlowNode,
|
|
448
|
-
MapFlowNode,
|
|
449
|
-
DelayFlowNode,
|
|
450
|
-
ErrorBoundaryFlowNode,
|
|
451
|
-
HumanApprovalFlowNode,
|
|
452
|
-
ReturnFlowNode,
|
|
453
|
-
CodeFlowNode,
|
|
454
|
-
];
|
|
455
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jb250cm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dyYXBoL25vZGVzL2Zsb3ctY29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7R0FXRztBQUNILE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxJQUFJLEVBQ0osTUFBTSxFQUNOLGFBQWEsR0FFZCxNQUFNLCtCQUErQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsa0JBQWU7QUFFbkM7OztHQUdHO0FBZ0JJLElBQU0sVUFBVSxHQUFoQixNQUFNLFVBQVcsU0FBUSxLQUFLO0NBZXBDLENBQUE7QUFYQztJQUhDLFFBQVEsRUFBRTtJQUNWLFNBQVMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO0lBQ2pGLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQzs7eUNBQ1g7QUFLaEI7SUFIQyxRQUFRLEVBQUU7SUFDVixTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsK0JBQStCLEVBQUUsQ0FBQztJQUNuRixNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7O3dDQUNaO0FBS2Y7SUFIQyxRQUFRLEVBQUU7SUFDVixTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsZ0NBQWdDLEVBQUUsQ0FBQztJQUNwRixNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7O3dD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SSxFQUFFLEVBQUU7WUFDUixRQUFRLEVBQUUsWUFBWTtTQUN2QjtLQUNGLENBQUM7SUFDRCxLQUFLLEVBQUU7R0FDSyxZQUFZLENBVXhCOztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDdEMsVUFBVTtJQUNWLGNBQWM7SUFDZCxnQkFBZ0I7SUFDaEIsYUFBYTtJQUNiLFdBQVc7SUFDWCxhQUFhO0lBQ2IscUJBQXFCO0lBQ3JCLHFCQUFxQjtJQUNyQixjQUFjO0lBQ2QsWUFBWTtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2dyYXBoL25vZGVzL2Zsb3ctY29udHJvbFxuICogQHN1bW1hcnkgUHJvZHVjdGlvbiBmbG93LWNvbnRyb2wgbm9kZSBraW5kIGRlY2xhcmF0aW9ucyAoREVDQUYtMzIgwqcyMi4yLjIpLlxuICogQGRlc2NyaXB0aW9uIENhbm9uaWNhbCBgQG5vZGVgLWRlY29yYXRlZCBjbGFzc2VzIGZvciB0aGUgdGVuIEFMRlJFRC01XG4gKiBmbG93LWNvbnRyb2wga2luZHMuIFRoZXNlIGFyZSBncmFwaC1sZXZlbCBtYWNyb3M6IHRoZSBlbmdpbmUncyBwbGFubmVyXG4gKiByZWNvZ25pc2VzIHRoZW0gYXMgb3JkaW5hcnkgZXhlY3V0YWJsZSBub2RlcyAowqc1LjcpIGJ1dCB0aGV5IGhhdmUgbm9cbiAqIGJ1aWx0LWluIGV4ZWN1dG9ycyDigJQgZG93bnN0cmVhbSBwcm9qZWN0cyAoZS5nLiBBTEZSRUQpIHJlZ2lzdGVyIGN1c3RvbVxuICogZXhlY3V0b3JzIG9yIGNvbXBpbGUgdGhlbSBpbnRvIE1hc3RyYSBjb21wb3NpdGlvbiBBUElzICjCpzIyLjIuMikuXG4gKlxuICogVGhlIHRocmVlIGxvb3Aga2luZHMgKGBjb3JlLmxvb3AuZm9yZWFjaC93aGlsZS91bnRpbGApIGFscmVhZHkgaGF2ZSBidWlsdC1pblxuICogZXhlY3V0b3JzICjCpzUuOSkgYW5kIGFyZSBOT1QgcmVkZWNsYXJlZCBoZXJlLlxuICovXG5pbXBvcnQgeyBNb2RlbCwgbW9kZWwsIHJlcXVpcmVkIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgdWllbGVtZW50IH0gZnJvbSBcIkBkZWNhZi10cy91aS1kZWNvcmF0b3JzXCI7XG5pbXBvcnQge1xuICBncmFwaERlZmluaXRpb25PZixcbiAgaW5wdXQsXG4gIG5vZGUsXG4gIG91dHB1dCxcbiAgUG9ydERpcmVjdGlvbixcbiAgdHlwZSBHcmFwaFBvcnREZWZpbml0aW9uLFxufSBmcm9tIFwiQGRlY2FmLXRzL3VpLWRlY29yYXRvcnMvZ3JhcGhcIjtcbmltcG9ydCB0eXBlIHsgTm9kZU1ldGFkYXRhQ2hhbmdlLCBTd2l0Y2hOb2RlTWV0YWRhdGEgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IEdyYXBoTm9kZSB9IGZyb20gXCIuL2Jhc2VcIjtcblxuLyoqXG4gKiBJZiDigJQgY29uZGl0aW9uYWwgYnJhbmNoLiBFdmFsdWF0ZXMgYSBgQ29uZGl0aW9uRXhwcmVzc2lvbmAgKMKnMjIuMykgYW5kXG4gKiByb3V0ZXMgdGhlIGlucHV0IHRvIHRoZSBgdGhlbmAgb3IgYGVsc2VgIG91dHB1dC5cbiAqL1xuQG5vZGUoXCJjb3JlLmZsb3cuaWZcIiwge1xuICBraW5kOiBcImNvcmUuZmxvdy5pZlwiLFxuICBjYXRlZ29yeTogXCJGbG93IENvbnRyb2xcIixcbiAgY29sb3I6IFwiI2Y1OWUwYlwiLFxuICBpY29uOiBcInRpLWFycm93cy1zcGxpdC0yXCIsXG4gIHdpZHRoOiA5NixcbiAgaGVpZ2h0OiA5NixcbiAgbGFiZWxzOiBbXCJmbG93XCIsIFwiY29uZGl0aW9uYWxcIiwgXCJicmFuY2hcIl0sXG4gIG1ldGFkYXRhOiB7XG4gICAgdGl0bGU6IFwiSWZcIixcbiAgICBkZXNjcmlwdGlvbjogXCJDb25kaXRpb25hbCBicmFuY2guIEV2YWx1YXRlcyB0aGUgY29uZmlndXJlZCBjb25kaXRpb24gYW5kIHJvdXRlcyB0aGUgaW5wdXQgdG8gdGhlIG1hdGNoaW5nIG91dHB1dC5cIixcbiAgICBjb25kaXRpb246IHsgb3A6IFwiZXFcIiwgbGVmdDogeyBjb25zdDogdHJ1ZSB9LCByaWdodDogeyBjb25zdDogdHJ1ZSB9IH0sXG4gIH0sXG59KVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBJZkZsb3dOb2RlIGV4dGVuZHMgTW9kZWwge1xuICBAcmVxdWlyZWQoKVxuICBAdWllbGVtZW50KFwidGV4dGFyZWFcIiwgeyBsYWJlbDogXCJJbnB1dCB2YWx1ZVwiLCBwbGFjZWhvbGRlcjogXCJWYWx1ZSB0byBldmFsdWF0ZVwiIH0pXG4gIEBpbnB1dCh7IGhhbmRsZTogXCJ2YWx1ZVwiIH0pXG4gIHZhbHVlITogdW5rbm93bjtcblxuICBAcmVxdWlyZWQoKVxuICBAdWllbGVtZW50KFwiaW5wdXRcIiwgeyBsYWJlbDogXCJUaGVuXCIsIHBsYWNlaG9sZGVyOiBcIk91dHB1dCB3aGVuIGNvbmRpdGlvbiBpcyB0cnVlXCIgfSlcbiAgQG91dHB1dCh7IGhhbmRsZTogXCJ0aGVuXCIgfSlcbiAgdGhlbiE6IHVua25vd247XG5cbiAgQHJlcXVpcmVkKClcbiAgQHVpZWxlbWVudChcImlucHV0XCIsIHsgbGFiZWw6IFwiRWxzZVwiLCBwbGFjZWhvbGRlcjogXCJPdXRwdXQgd2hlbiBjb25kaXRpb24gaXMgZmFsc2VcIiB9KVxuICBAb3V0cHV0KHsgaGFuZGxlOiBcImVsc2VcIiB9KVxuICBlbHNlITogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBTd2l0Y2gg4oCUIG11bHRpLWJyYW5jaC4gUm91dGVzIHRoZSBpbnB1dCB0byBvbmUgb2YgdGhlIGNhc2Ugb3V0cHV0IHBvcnRzXG4gKiBvciBgZGVmYXVsdGAgYmFzZWQgb24gbWF0Y2hpbmcgY29uZGl0aW9ucy4gRWFjaCBjYXNlIGRlZmluZXMgYVxuICoge0BsaW5rIFN3aXRjaENhc2VDb25kaXRpb259IChncmFwaGljYWwgb3IgY29kZSBtb2RlKSBhbmQgYSBkZWRpY2F0ZWRcbiAqIG91dHB1dCBwb3J0LiBDYXNlcyBhcmUgc3RvcmVkIGluIGBtZXRhZGF0YS5zd2l0Y2guY2FzZXNgIGFuZCB0aGVcbiAqIHJlbmRlcmVyIGNyZWF0ZXMgZHluYW1pYyBvdXRwdXQgcG9ydHMgZnJvbSB0aGVtIChERUNBRi0zMiDCpzIyLjIuMikuXG4gKlxuICogVGhlIG5vZGUgZ3Jvd3MgaW4gaGVpZ2h0IGFzIGNhc2VzIGFyZSBhZGRlZC4gRWFjaCBjYXNlIGdldHMgaXRzIG93blxuICogb3V0cHV0IHBvcnQgb24gdGhlIHJpZ2h0IHNpZGUsIGxhYmVsZWQgd2l0aCB0aGUgY2FzZSBsYWJlbC5cbiAqL1xuQG5vZGUoXCJjb3JlLmZsb3cuc3dpdGNoXCIsIHtcbiAga2luZDogXCJjb3JlLmZsb3cuc3dpdGNoXCIsXG4gIGNhdGVnb3J5OiBcIkZsb3cgQ29udHJvbFwiLFxuICBjb2xvcjogXCIjZjk3MzE2XCIsXG4gIGljb246IFwidGktYXJyb3dzLXNodWZmbGVcIixcbiAgd2lkdGg6IDEyMCxcbiAgaGVpZ2h0OiAxNDAsXG4gIGxhYmVsczogW1wiZmxvd1wiLCBcInN3aXRjaFwiLCBcIm11bHRpLWJyYW5jaFwiXSxcbiAgbWV0YWRhdGE6IHtcbiAgICB0aXRsZTogXCJTd2l0Y2hcIixcbiAgICBkZXNjcmlwdGlvbjogXCJNdWx0aS1icmFuY2ggc3dpdGNoLiBSb3V0ZXMgdGhlIGlucHV0IHRvIHRoZSBmaXJzdCBtYXRjaGluZyBjYXNlIG91dHB1dCwgb3IgdGhlIGRlZmF1bHQgb3V0cHV0LlwiLFxuICAgIHN3aXRjaDoge1xuICAgICAgY2FzZXM6IFtdLFxuICAgICAgZGVmYXVsdFBvcnQ6IFwiZGVmYXVsdFwiLFxuICAgIH0sXG4gIH0sXG59KVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBTd2l0Y2hGbG93Tm9kZSBleHRlbmRzIEdyYXBoTm9kZSB7XG4gIEByZXF1aXJlZCgpXG4gIEB1aWVsZW1lbnQoXCJ0ZXh0YXJlYVwiLCB7IGxhYmVsOiBcIklucHV0IHZhbHVlXCIsIHBsYWNlaG9sZGVyOiBcIlZhbHVlIHRvIHN3aXRjaCBvblwiIH0pXG4gIEBpbnB1dCh7IGhhbmRsZTogXCJ2YWx1ZVwiIH0pXG4gIHZhbHVlITogdW5rbm93bjtcblxuICBAcmVxdWlyZWQoKVxuICBAdWllbGVtZW50KFwiaW5wdXRcIiwgeyBsYWJlbDogXCJEZWZhdWx0XCIsIHBsYWNlaG9sZGVyOiBcIkRlZmF1bHQgb3V0cHV0IHdoZW4gbm8gY2FzZSBtYXRjaGVzXCIgfSlcbiAgQG91dHB1dCh7IGhhbmRsZTogXCJkZWZhdWx0XCIgfSlcbiAgZGVmYXVsdCE6IHVua25vd247XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIHRoZSBub2RlJ3MgcG9ydHMsIHNpemUsIGFuZCBkYXRhIHBhdGNoIGZyb20gdGhlIGdpdmVuIHN3aXRjaFxuICAgKiBtZXRhZGF0YS4gRWFjaCBjYXNlIGdldHMgaXRzIG93biBvdXRwdXQgcG9ydCBvbiB0aGUgcmlnaHQgc2lkZTsgdGhlXG4gICAqIG5vZGUgZ3Jvd3MgaW4gaGVpZ2h0IGFzIGNhc2VzIGFyZSBhZGRlZC5cbiAgICovXG4gIHN0YXRpYyBvdmVycmlkZSBhcHBseU1ldGFkYXRhKG1ldGE6IFN3aXRjaE5vZGVNZXRhZGF0YSk6IE5vZGVNZXRhZGF0YUNoYW5nZSB7XG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IGdyYXBoRGVmaW5pdGlvbk9mKHRoaXMgYXMgbmV2ZXIpO1xuICAgIGNvbnN0IGJhc2VQb3J0cyA9IGRlZmluaXRpb24ucG9ydHMuZmlsdGVyKFxuICAgICAgKHApID0+ICFtZXRhLmNhc2VzLnNvbWUoKGMpID0+IGMub3V0cHV0UG9ydCA9PT0gcC5wcm9wZXJ0eSlcbiAgICApO1xuICAgIGNvbnN0IGNhc2VQb3J0czogR3JhcGhQb3J0RGVmaW5pdGlvbltdID0gbWV0YS5jYXNlcy5tYXAoKGMpID0+ICh7XG4gICAgICBwcm9wZXJ0eTogYy5vdXRwdXRQb3J0LFxuICAgICAgbmFtZTogYy5sYWJlbCxcbiAgICAgIGRpcmVjdGlvbjogUG9ydERpcmVjdGlvbi5PVVRQVVQsXG4gICAgICBsYWJlbDogYy5sYWJlbCxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICBwYXRoOiBjLm91dHB1dFBvcnQsXG4gICAgfSkpO1xuICAgIGNvbnN0IGNhc2VDb3VudCA9IG1ldGEuY2FzZXMubGVuZ3RoO1xuICAgIHJldHVybiB7XG4gICAgICBwb3J0czogWy4uLmJhc2VQb3J0cywgLi4uY2FzZVBvcnRzXSxcbiAgICAgIHNpemU6IHtcbiAgICAgICAgd2lkdGg6IGRlZmluaXRpb24ud2lkdGggPz8gMTIwLFxuICAgICAgICBoZWlnaHQ6IGNhc2VDb3VudCA+IDAgPyAxNDAgKyBjYXNlQ291bnQgKiAyNCA6IGRlZmluaXRpb24uaGVpZ2h0ID8/IDE0MCxcbiAgICAgIH0sXG4gICAgICBkYXRhUGF0Y2g6IHsgc3dpdGNoTWV0YWRhdGE6IG1ldGEgfSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogUGFyYWxsZWwg4oCUIHNwbGl0cyBleGVjdXRpb24gaW50byBjb25jdXJyZW50IGJyYW5jaGVzLlxuICovXG5Abm9kZShcImNvcmUuZmxvdy5wYXJhbGxlbFwiLCB7XG4gIGtpbmQ6IFwiY29yZS5mbG93LnBhcmFsbGVsXCIsXG4gIGNhdGVnb3J5OiBcIkZsb3cgQ29udHJvbFwiLFxuICBjb2xvcjogXCIjMDZiNmQ0XCIsXG4gIGljb246IFwidGktYXJyb3dzLXZlcnRpY2FsXCIsXG4gIHdpZHRoOiA5NixcbiAgaGVpZ2h0OiA5NixcbiAgbGFiZWxzOiBbXCJmbG93XCIsIFwicGFyYWxsZWxcIiwgXCJjb25jdXJyZW50XCJdLFxuICBtZXRhZGF0YToge1xuICAgIHRpdGxlOiBcIlBhcmFsbGVsXCIsXG4gICAgZGVzY3JpcHRpb246IFwiU3BsaXRzIGV4ZWN1dGlvbiBpbnRvIGNvbmN1cnJlbnQgYnJhbmNoZXMuIEFsbCBicmFuY2hlcyBydW4gaW4gcGFyYWxsZWwgYW5kIG91dHB1dHMgYXJlIGNvbGxlY3RlZC5cIixcbiAgICBicmFuY2hDb3VudDogMixcbiAgfSxcbn0pXG5AbW9kZWwoKVxuZXhwb3J0IGNsYXNzIFBhcmFsbGVsRmxvd05vZGUgZXh0ZW5kcyBNb2RlbCB7XG4gIEByZXF1aXJlZCgpXG4gIEB1aWVsZW1lbnQoXCJ0ZXh0YXJlYVwiLCB7IGxhYmVsOiBcIklucHV0IHZhbHVlXCIsIHBsYWNlaG9sZGVyOiBcIlZhbHVlIHRvIGZhbiBvdXRcIiB9KVxuICBAaW5wdXQoeyBoYW5kbGU6IFwidmFsdWVcIiB9KVxuICB2YWx1ZSE6IHVua25vd247XG5cbiAgQHJlcXVpcmVkKClcbiAgQHVpZWxlbWVudChcImlucHV0XCIsIHsgbGFiZWw6IFwiQnJhbmNoZXNcIiwgcGxhY2Vob2xkZXI6IFwiQ29sbGVjdGVkIGJyYW5jaCBvdXRwdXRzXCIgfSlcbiAgQG91dHB1dCh7IGhhbmRsZTogXCJicmFuY2hlc1wiIH0pXG4gIGJyYW5jaGVzITogdW5rbm93bltdO1xufVxuXG4vKipcbiAqIE1lcmdlIOKAlCBub3JtYWxpc2VzIGJyYW5jaC9wYXJhbGxlbCBvdXRwdXRzIGludG8gYSBzaW5nbGUgb3V0cHV0LlxuICovXG5Abm9kZShcImNvcmUuZmxvdy5tZXJnZVwiLCB7XG4gIGtpbmQ6IFwiY29yZS5mbG93Lm1lcmdlXCIsXG4gIGNhdGVnb3J5OiBcIlV0aWxpdHlcIixcbiAgY29sb3I6IFwiIzBkOTQ4OFwiLFxuICBpY29uOiBcInRpLWFycm93cy1tZXJnZVwiLFxuICB3aWR0aDogOTYsXG4gIGhlaWdodDogOTYsXG4gIGxhYmVsczogW1wiZmxvd1wiLCBcIm1lcmdlXCIsIFwiam9pblwiXSxcbiAgbWV0YWRhdGE6IHtcbiAgICB0aXRsZTogXCJNZXJnZVwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIk1lcmdlcyBtdWx0aXBsZSBicmFuY2ggb3V0cHV0cyBpbnRvIGEgc2luZ2xlIG5vcm1hbGlzZWQgb3V0cHV0IG9iamVjdC5cIixcbiAgICBzdHJhdGVneTogXCJjb25jYXRcIixcbiAgfSxcbn0pXG5AbW9kZWwoKVxuZXhwb3J0IGNsYXNzIE1lcmdlRmxvd05vZGUgZXh0ZW5kcyBNb2RlbCB7XG4gIEByZXF1aXJlZCgpXG4gIEB1aWVsZW1lbnQoXCJ0ZXh0YXJlYVwiLCB7IGxhYmVsOiBcIkJyYW5jaCBvdXRwdXRzXCIsIHBsYWNlaG9sZGVyOiBcIk91dHB1dHMgdG8gbWVyZ2VcIiB9KVxuICBAaW5wdXQoeyBoYW5kbGU6IFwidmFsdWVzXCIgfSlcbiAgdmFsdWVzITogdW5rbm93bltdO1xuXG4gIEByZXF1aXJlZCgpXG4gIEB1aWVsZW1lbnQoXCJpbnB1dFwiLCB7IGxhYmVsOiBcIk1lcmdlZCBvdXRwdXRcIiwgcGxhY2Vob2xkZXI6IFwiTWVyZ2VkIHJlc3VsdFwiIH0pXG4gIEBvdXRwdXQoeyBoYW5kbGU6IFwibWVyZ2VkXCIgfSlcbiAgbWVyZ2VkITogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBNYXAg4oCUIHRyYW5zZm9ybXMgdGhlIGN1cnJlbnQgaW5wdXQgaW50byBhIG5ldyBvdXRwdXQgb2JqZWN0LlxuICovXG5Abm9kZShcImNvcmUuZmxvdy5tYXBcIiwge1xuICBraW5kOiBcImNvcmUuZmxvdy5tYXBcIixcbiAgY2F0ZWdvcnk6IFwiVXRpbGl0eVwiLFxuICBjb2xvcjogXCIjODRjYzE2XCIsXG4gIGljb246IFwidGktYXJyb3dzLXJpZ2h0LWxlZnRcIixcbiAgd2lkdGg6IDk2LFxuICBoZWlnaHQ6IDk2LFxuICBsYWJlbHM6IFtcImZsb3dcIiwgXCJtYXBcIiwgXCJ0cmFuc2Zvcm1cIl0sXG4gIG1ldGFkYXRhOiB7XG4gICAgdGl0bGU6IFwiTWFwXCIsXG4gICAgZGVzY3JpcHRpb246IFwiVHJhbnNmb3JtcyB0aGUgY3VycmVudCBpbnB1dCBpbnRvIGEgbmV3IG91dHB1dCBvYmplY3QgdXNpbmcgdGhlIGNvbmZpZ3VyZWQgbWFwcGVyLlwiLFxuICAgIG1hcHBlcjoge30sXG4gIH0sXG59KVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBNYXBGbG93Tm9kZSBleHRlbmRzIE1vZGVsIHtcbiAgQHJlcXVpcmVkKClcbiAgQHVpZWxlbWVudChcInRleHRhcmVhXCIsIHsgbGFiZWw6IFwiSW5wdXQgdmFsdWVcIiwgcGxhY2Vob2xkZXI6IFwiVmFsdWUgdG8gdHJhbnNmb3JtXCIgfSlcbiAgQGlucHV0KHsgaGFuZGxlOiBcInZhbHVlXCIgfSlcbiAgdmFsdWUhOiB1bmtub3duO1xuXG4gIEByZXF1aXJlZCgpXG4gIEB1aWVsZW1lbnQoXCJpbnB1dFwiLCB7IGxhYmVsOiBcIlRyYW5zZm9ybWVkIG91dHB1dFwiLCBwbGFjZWhvbGRlcjogXCJNYXBwZWQgcmVzdWx0XCIgfSlcbiAgQG91dHB1dCh7IGhhbmRsZTogXCJyZXN1bHRcIiB9KVxuICByZXN1bHQhOiB1bmtub3duO1xufVxuXG4vKipcbiAqIERlbGF5IOKAlCBwYXVzZXMgZXhlY3V0aW9uIGZvciBhIGNvbmZpZ3VyZWQgZHVyYXRpb24uXG4gKi9cbkBub2RlKFwiY29yZS5mbG93LmRlbGF5XCIsIHtcbiAga2luZDogXCJjb3JlLmZsb3cuZGVsYXlcIixcbiAgY2F0ZWdvcnk6IFwiVXRpbGl0eVwiLFxuICBjb2xvcjogXCIjYTNhM2EzXCIsXG4gIGljb246IFwidGktY2xvY2staG91ci00XCIsXG4gIHdpZHRoOiA5NixcbiAgaGVpZ2h0OiA5NixcbiAgbGFiZWxzOiBbXCJmbG93XCIsIFwiZGVsYXlcIiwgXCJ3YWl0XCJdLFxuICBtZXRhZGF0YToge1xuICAgIHRpdGxlOiBcIkRlbGF5XCIsXG4gICAgZGVzY3JpcHRpb246IFwiUGF1c2VzIGV4ZWN1dGlvbiBmb3IgdGhlIGNvbmZpZ3VyZWQgZHVyYXRpb24gKGluIG1pbGxpc2Vjb25kcyksIHRoZW4gZm9yd2FyZHMgdGhlIGlucHV0IHVuY2hhbmdlZC5cIixcbiAgICBkdXJhdGlvbk1zOiAxMDAwLFxuICB9LFxufSlcbkBtb2RlbCgpXG5leHBvcnQgY2xhc3MgRGVsYXlGbG93Tm9kZSBleHRlbmRzIE1vZGVsIHtcbiAgQHJlcXVpcmVkKClcbiAgQHVpZWxlbWVudChcInRleHRhcmVhXCIsIHsgbGFiZWw6IFwiSW5wdXQgdmFsdWVcIiwgcGxhY2Vob2xkZXI6IFwiVmFsdWUgdG8gZm9yd2FyZCBhZnRlciBkZWxheVwiIH0pXG4gIEBpbnB1dCh7IGhhbmRsZTogXCJ2YWx1ZVwiIH0pXG4gIHZhbHVlITogdW5rbm93bjtcblxuICBAcmVxdWlyZWQoKVxuICBAdWllbGVtZW50KFwiaW5wdXRcIiwgeyBsYWJlbDogXCJPdXRwdXQgdmFsdWVcIiwgcGxhY2Vob2xkZXI6IFwiRm9yd2FyZGVkIHZhbHVlXCIgfSlcbiAgQG91dHB1dCh7IGhhbmRsZTogXCJ2YWx1ZVwiIH0pXG4gIHZhbHVlT3V0ITogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBFcnJvciBib3VuZGFyeSDigJQgdHJ5L2NhdGNoL2ZpbmFsbHkgd29ya2Zsb3cgYmVoYXZpb3VyLlxuICovXG5Abm9kZShcImNvcmUuZmxvdy5lcnJvckJvdW5kYXJ5XCIsIHtcbiAga2luZDogXCJjb3JlLmZsb3cuZXJyb3JCb3VuZGFyeVwiLFxuICBjYXRlZ29yeTogXCJGbG93IENvbnRyb2xcIixcbiAgY29sb3I6IFwiI2VmNDQ0NFwiLFxuICBpY29uOiBcInRpLXNoaWVsZC1jaGVja1wiLFxuICB3aWR0aDogOTYsXG4gIGhlaWdodDogOTYsXG4gIGxhYmVsczogW1wiZmxvd1wiLCBcImVycm9yXCIsIFwidHJ5LWNhdGNoXCJdLFxuICBtZXRhZGF0YToge1xuICAgIHRpdGxlOiBcIkVycm9yIGJvdW5kYXJ5XCIsXG4gICAgZGVzY3JpcHRpb246IFwiV3JhcHMgdGhlIGlucHV0IGluIGEgdHJ5L2NhdGNoL2ZpbmFsbHkuIEVtaXRzIHRoZSByZXN1bHQgb24gc3VjY2Vzcywgb3IgdGhlIGVycm9yIG9uIGZhaWx1cmUuXCIsXG4gICAgZmluYWxseTogZmFsc2UsXG4gIH0sXG59KVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBFcnJvckJvdW5kYXJ5Rmxvd05vZGUgZXh0ZW5kcyBNb2RlbCB7XG4gIEByZXF1aXJlZCgpXG4gIEB1aWVsZW1lbnQoXCJ0ZXh0YXJlYVwiLCB7IGxhYmVsOiBcIklucHV0IHZhbHVlXCIsIHBsYWNlaG9sZGVyOiBcIlZhbHVlIHRvIGd1YXJkXCIgfSlcbiAgQGlucHV0KHsgaGFuZGxlOiBcInZhbHVlXCIgfSlcbiAgdmFsdWUhOiB1bmtub3duO1xuXG4gIEByZXF1aXJlZCgpXG4gIEB1aWVsZW1lbnQoXCJpbnB1dFwiLCB7IGxhYmVsOiBcIlJlc3VsdFwiLCBwbGFjZWhvbGRlcjogXCJPdXRwdXQgb24gc3VjY2Vzc1wiIH0pXG4gIEBvdXRwdXQoeyBoYW5kbGU6IFwicmVzdWx0XCIgfSlcbiAgcmVzdWx0ITogdW5rbm93bjtcblxuICBAcmVxdWlyZWQoKVxuICBAdWllbGVtZW50KFwiaW5wdXRcIiwgeyBsYWJlbDogXCJFcnJvclwiLCBwbGFjZWhvbGRlcjogXCJPdXRwdXQgb24gZmFpbHVyZVwiIH0pXG4gIEBvdXRwdXQoeyBoYW5kbGU6IFwiZXJyb3JcIiB9KVxuICBlcnJvciE6IHVua25vd247XG59XG5cbi8qKlxuICogSHVtYW4gYXBwcm92YWwg4oCUIHN1c3BlbmRzIGV4ZWN1dGlvbiB1bnRpbCBhIGh1bWFuIGFwcHJvdmVzIG9yIHJlamVjdHMuXG4gKi9cbkBub2RlKFwiY29yZS5mbG93Lmh1bWFuQXBwcm92YWxcIiwge1xuICBraW5kOiBcImNvcmUuZmxvdy5odW1hbkFwcHJvdmFsXCIsXG4gIGNhdGVnb3J5OiBcIkZsb3cgQ29udHJvbFwiLFxuICBjb2xvcjogXCIjZDk0NmVmXCIsXG4gIGljb246IFwidGktdXNlci1jaGVja1wiLFxuICB3aWR0aDogOTYsXG4gIGhlaWdodDogOTYsXG4gIGxhYmVsczogW1wiZmxvd1wiLCBcImFwcHJvdmFsXCIsIFwic3VzcGVuZFwiXSxcbiAgbWV0YWRhdGE6IHtcbiAgICB0aXRsZTogXCJIdW1hbiBhcHByb3ZhbFwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIlN1c3BlbmRzIGV4ZWN1dGlvbiB1bnRpbCBhIGh1bWFuIGFwcHJvdmVzIG9yIHJlamVjdHMuIEVtaXRzIHRoZSBhcHByb3ZlZCB2YWx1ZSBvciBhIHJlamVjdGlvbi5cIixcbiAgICBhcHByb3ZlcnM6IFtdLFxuICAgIHRpbWVvdXRNczogODY0MDAwMDAsXG4gIH0sXG59KVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBIdW1hbkFwcHJvdmFsRmxvd05vZGUgZXh0ZW5kcyBNb2RlbCB7XG4gIEByZXF1aXJlZCgpXG4gIEB1aWVsZW1lbnQoXCJ0ZXh0YXJlYVwiLCB7IGxhYmVsOiBcIklucHV0IHZhbHVlXCIsIHBsYWNlaG9sZGVyOiBcIlZhbHVlIHBlbmRpbmcgYXBwcm92YWxcIiB9KVxuICBAaW5wdXQoeyBoYW5kbGU6IFwidmFsdWVcIiB9KVxuICB2YWx1ZSE6IHVua25vd247XG5cbiAgQHJlcXVpcmVkKClcbiAgQHVpZWxlbWVudChcImlucHV0XCIsIHsgbGFiZWw6IFwiQXBwcm92ZWRcIiwgcGxhY2Vob2xkZXI6IFwiT3V0cHV0IHdoZW4gYXBwcm92ZWRcIiB9KVxuICBAb3V0cHV0KHsgaGFuZGxlOiBcImFwcHJvdmVkXCIgfSlcbiAgYXBwcm92ZWQhOiB1bmtub3duO1xuXG4gIEByZXF1aXJlZCgpXG4gIEB1aWVsZW1lbnQoXCJpbnB1dFwiLCB7IGxhYmVsOiBcIlJlamVjdGVkXCIsIHBsYWNlaG9sZGVyOiBcIk91dHB1dCB3aGVuIHJlamVjdGVkXCIgfSlcbiAgQG91dHB1dCh7IGhhbmRsZTogXCJyZWplY3RlZFwiIH0pXG4gIHJlamVjdGVkITogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBSZXR1cm4g4oCUIGRlZmluZXMgYW5kIG5vcm1hbGlzZXMgdGhlIGZpbmFsIHdvcmtmbG93IG91dHB1dC5cbiAqL1xuQG5vZGUoXCJjb3JlLmZsb3cucmV0dXJuXCIsIHtcbiAga2luZDogXCJjb3JlLmZsb3cucmV0dXJuXCIsXG4gIGNhdGVnb3J5OiBcIlV0aWxpdHlcIixcbiAgY29sb3I6IFwiIzIyYzU1ZVwiLFxuICBpY29uOiBcInRpLWFycm93LWJhY2stdXBcIixcbiAgd2lkdGg6IDk2LFxuICBoZWlnaHQ6IDk2LFxuICBsYWJlbHM6IFtcImZsb3dcIiwgXCJyZXR1cm5cIiwgXCJvdXRwdXRcIl0sXG4gIG1ldGFkYXRhOiB7XG4gICAgdGl0bGU6IFwiUmV0dXJuXCIsXG4gICAgZGVzY3JpcHRpb246IFwiTm9ybWFsaXNlcyB0aGUgaW5wdXQgaW50byB0aGUgZmluYWwgd29ya2Zsb3cgb3V0cHV0IG9iamVjdC5cIixcbiAgICBvdXRwdXRTY2hlbWE6IHt9LFxuICB9LFxufSlcbkBtb2RlbCgpXG5leHBvcnQgY2xhc3MgUmV0dXJuRmxvd05vZGUgZXh0ZW5kcyBNb2RlbCB7XG4gIEByZXF1aXJlZCgpXG4gIEB1aWVsZW1lbnQoXCJ0ZXh0YXJlYVwiLCB7IGxhYmVsOiBcIklucHV0IHZhbHVlXCIsIHBsYWNlaG9sZGVyOiBcIlZhbHVlIHRvIG5vcm1hbGlzZVwiIH0pXG4gIEBpbnB1dCh7IGhhbmRsZTogXCJ2YWx1ZVwiIH0pXG4gIHZhbHVlITogdW5rbm93bjtcblxuICBAcmVxdWlyZWQoKVxuICBAdWllbGVtZW50KFwiaW5wdXRcIiwgeyBsYWJlbDogXCJSZXR1cm5lZCBvdXRwdXRcIiwgcGxhY2Vob2xkZXI6IFwiTm9ybWFsaXNlZCBvdXRwdXRcIiB9KVxuICBAb3V0cHV0KHsgaGFuZGxlOiBcInJlc3VsdFwiIH0pXG4gIHJlc3VsdCE6IHVua25vd247XG59XG5cbi8qKlxuICogQ29kZSDigJQgc2FuZGJveGVkIEpTL1RTIGNvZGUgZXhlY3V0aW9uIChBTEZSRUQtNSDCpzcpLlxuICpcbiAqIFRoZSBlbmdpbmUgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBzYW5kYm94IGRpcmVjdGx5ICjCpzIyLjQpLiBBIGZ1dHVyZVxuICogZXhlY3V0b3IgbWF5IHdyYXAgdGhlIGBDb2RlU2FuZGJveGAgY29udHJhY3QgKEFMRlJFRC01IMKnNy4xNykgYXMgYVxuICogcGx1Z2dhYmxlIGV4ZWN1dG9yLiBUaGUgcGxhY2Vob2xkZXIgc3ludGF4IChge3sgJGlucHV0IH19YCwgYHt7ICRpdGVtIH19YCxcbiAqIGB7eyAkaW5kZXggfX1gLCBge3sgJHZhcnMgfX1gLCBge3sgJG5vZGVbXCJOYW1lXCJdLm91dHB1dCB9fWApIGlzIE1hc3RyYS1cbiAqIGFnbm9zdGljIGFuZCBsaXZlcyBpbiB0aGUgZG93bnN0cmVhbSBwcm9qZWN0J3MgYG1vZHVsZXMvY29yZWAgKEFMRlJFRC02KS5cbiAqL1xuQG5vZGUoXCJjb3JlLmZsb3cuY29kZVwiLCB7XG4gIGtpbmQ6IFwiY29yZS5mbG93LmNvZGVcIixcbiAgY2F0ZWdvcnk6IFwiVXRpbGl0eVwiLFxuICBjb2xvcjogXCIjN2MzYWVkXCIsXG4gIGljb246IFwidGktY29kZVwiLFxuICB3aWR0aDogOTYsXG4gIGhlaWdodDogOTYsXG4gIGxhYmVsczogW1wiZmxvd1wiLCBcImNvZGVcIiwgXCJzYW5kYm94XCIsIFwidHJhbnNmb3JtXCJdLFxuICBtZXRhZGF0YToge1xuICAgIHRpdGxlOiBcIkNvZGVcIixcbiAgICBkZXNjcmlwdGlvbjogXCJSdW5zIHVzZXItYXV0aG9yZWQgSlMvVFMgaW4gYSByZXN0cmljdGVkIFZNIHNhbmRib3guIFN1cHBvcnRzIHBsYWNlaG9sZGVyIHN5bnRheCBmb3Igd29ya2Zsb3cgZGF0YSByZWZlcmVuY2VzLlwiLFxuICAgIGNvZGU6IFwiXCIsXG4gICAgbGFuZ3VhZ2U6IFwiamF2YXNjcmlwdFwiLFxuICB9LFxufSlcbkBtb2RlbCgpXG5leHBvcnQgY2xhc3MgQ29kZUZsb3dOb2RlIGV4dGVuZHMgTW9kZWwge1xuICBAcmVxdWlyZWQoKVxuICBAdWllbGVtZW50KFwidGV4dGFyZWFcIiwgeyBsYWJlbDogXCJJbnB1dFwiLCBwbGFjZWhvbGRlcjogXCJJbnB1dCBvYmplY3QgKGFjY2Vzc2libGUgYXMgJGlucHV0KVwiIH0pXG4gIEBpbnB1dCh7IGhhbmRsZTogXCJpbnB1dFwiIH0pXG4gIGlucHV0ITogdW5rbm93bjtcblxuICBAcmVxdWlyZWQoKVxuICBAdWllbGVtZW50KFwiaW5wdXRcIiwgeyBsYWJlbDogXCJSZXN1bHRcIiwgcGxhY2Vob2xkZXI6IFwiQ29kZSBleGVjdXRpb24gcmVzdWx0XCIgfSlcbiAgQG91dHB1dCh7IGhhbmRsZTogXCJyZXN1bHRcIiB9KVxuICByZXN1bHQhOiB1bmtub3duO1xufVxuXG4vKipcbiAqIEFsbCBidWlsdC1pbiBmbG93LWNvbnRyb2wgbm9kZSBjb25zdHJ1Y3RvcnMuXG4gKi9cbmV4cG9ydCBjb25zdCBHUkFQSF9GTE9XX0NPTlRST0xfTk9ERVMgPSBbXG4gIElmRmxvd05vZGUsXG4gIFN3aXRjaEZsb3dOb2RlLFxuICBQYXJhbGxlbEZsb3dOb2RlLFxuICBNZXJnZUZsb3dOb2RlLFxuICBNYXBGbG93Tm9kZSxcbiAgRGVsYXlGbG93Tm9kZSxcbiAgRXJyb3JCb3VuZGFyeUZsb3dOb2RlLFxuICBIdW1hbkFwcHJvdmFsRmxvd05vZGUsXG4gIFJldHVybkZsb3dOb2RlLFxuICBDb2RlRmxvd05vZGUsXG5dIGFzIGNvbnN0O1xuIl19
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module integrations/graph/nodes
|
|
3
|
-
* @summary Production node kind declarations (DECAF-32 §22.2).
|
|
4
|
-
* @description Canonical `@node`-decorated classes for the ALFRED-5 node kind
|
|
5
|
-
* taxonomy. These are the framework's built-in node definitions — triggers
|
|
6
|
-
* (§22.2.1), flow-control/utility nodes (§22.2.2–22.2.3), and the Agent node
|
|
7
|
-
* (§21.3). The three loop kinds (`core.loop.foreach/while/until`) already have
|
|
8
|
-
* built-in executors (§5.9) and are not redeclared here.
|
|
9
|
-
*
|
|
10
|
-
* Consumers (for-angular, ALFRED, etc.) import these declarations to populate
|
|
11
|
-
* node palettes, registries, and reference snapshots.
|
|
12
|
-
*/
|
|
13
|
-
export * from "./base.js";
|
|
14
|
-
export * from "./category-styles.js";
|
|
15
|
-
export * from "./triggers.js";
|
|
16
|
-
export * from "./flow-control.js";
|
|
17
|
-
export * from "./agent.js";
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ3JhcGgvbm9kZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCwwQkFBdUI7QUFDdkIscUNBQWtDO0FBQ2xDLDhCQUEyQjtBQUMzQixrQ0FBK0I7QUFDL0IsMkJBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9ncmFwaC9ub2Rlc1xuICogQHN1bW1hcnkgUHJvZHVjdGlvbiBub2RlIGtpbmQgZGVjbGFyYXRpb25zIChERUNBRi0zMiDCpzIyLjIpLlxuICogQGRlc2NyaXB0aW9uIENhbm9uaWNhbCBgQG5vZGVgLWRlY29yYXRlZCBjbGFzc2VzIGZvciB0aGUgQUxGUkVELTUgbm9kZSBraW5kXG4gKiB0YXhvbm9teS4gVGhlc2UgYXJlIHRoZSBmcmFtZXdvcmsncyBidWlsdC1pbiBub2RlIGRlZmluaXRpb25zIOKAlCB0cmlnZ2Vyc1xuICogKMKnMjIuMi4xKSwgZmxvdy1jb250cm9sL3V0aWxpdHkgbm9kZXMgKMKnMjIuMi4y4oCTMjIuMi4zKSwgYW5kIHRoZSBBZ2VudCBub2RlXG4gKiAowqcyMS4zKS4gVGhlIHRocmVlIGxvb3Aga2luZHMgKGBjb3JlLmxvb3AuZm9yZWFjaC93aGlsZS91bnRpbGApIGFscmVhZHkgaGF2ZVxuICogYnVpbHQtaW4gZXhlY3V0b3JzICjCpzUuOSkgYW5kIGFyZSBub3QgcmVkZWNsYXJlZCBoZXJlLlxuICpcbiAqIENvbnN1bWVycyAoZm9yLWFuZ3VsYXIsIEFMRlJFRCwgZXRjLikgaW1wb3J0IHRoZXNlIGRlY2xhcmF0aW9ucyB0byBwb3B1bGF0ZVxuICogbm9kZSBwYWxldHRlcywgcmVnaXN0cmllcywgYW5kIHJlZmVyZW5jZSBzbmFwc2hvdHMuXG4gKi9cbmV4cG9ydCAqIGZyb20gXCIuL2Jhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NhdGVnb3J5LXN0eWxlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHJpZ2dlcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Zsb3ctY29udHJvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYWdlbnRcIjtcbiJdfQ==
|