@obora/runtime 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +183 -0
- package/dist/_legacy/actor/base/BaseActor.d.ts +87 -0
- package/dist/_legacy/actor/pool/ActorPool.d.ts +194 -0
- package/dist/_legacy/actor/pool/NoOpMessageBus.d.ts +16 -0
- package/dist/_legacy/actor/pool/PoolManager.d.ts +76 -0
- package/dist/_legacy/actor/pool/index.d.ts +3 -0
- package/dist/_legacy/actor/runtime/ActorRunner.d.ts +54 -0
- package/dist/_legacy/actor/runtime/ActorRuntime.d.ts +161 -0
- package/dist/_legacy/actor/runtime/DefaultActorFactory.d.ts +44 -0
- package/dist/_legacy/actor/runtime/types.d.ts +41 -0
- package/dist/_legacy/actor/runtime/utils/delay.d.ts +7 -0
- package/dist/_legacy/actor/supervision/Supervisor.d.ts +102 -0
- package/dist/_legacy/actor/supervision/SupervisorTree.d.ts +54 -0
- package/dist/_legacy/actor/supervision/types.d.ts +130 -0
- package/dist/_legacy/actor/types/action.d.ts +65 -0
- package/dist/_legacy/actor/types/actor.d.ts +251 -0
- package/dist/_legacy/actor/types/blackboard.d.ts +46 -0
- package/dist/_legacy/actor/types/crypto.d.ts +6 -0
- package/dist/_legacy/actor/types/message.d.ts +209 -0
- package/dist/_legacy/actor/types/metrics.d.ts +43 -0
- package/dist/_legacy/actor/types/observation.d.ts +45 -0
- package/dist/_legacy/actor/types/result.d.ts +110 -0
- package/dist/_legacy/agents/roles/analyst-agent.d.ts +18 -0
- package/dist/_legacy/agents/roles/base-agent.d.ts +320 -0
- package/dist/_legacy/agents/roles/director-agent.d.ts +26 -0
- package/dist/_legacy/agents/roles/executor-agent.d.ts +26 -0
- package/dist/_legacy/agents/roles/factory.d.ts +30 -0
- package/dist/_legacy/agents/roles/index.d.ts +6 -0
- package/dist/_legacy/agents/roles/verifier-agent.d.ts +18 -0
- package/dist/_legacy/blackboard/core/accessors/decisions-accessor.d.ts +190 -0
- package/dist/_legacy/blackboard/core/accessors/index.d.ts +7 -0
- package/dist/_legacy/blackboard/core/accessors/knowledge-accessor.d.ts +154 -0
- package/dist/_legacy/blackboard/core/accessors/state-accessor.d.ts +173 -0
- package/dist/_legacy/blackboard/core/blackboard-events.d.ts +105 -0
- package/dist/_legacy/blackboard/core/blackboard.d.ts +286 -0
- package/dist/_legacy/blackboard/core/id-generator.d.ts +53 -0
- package/dist/_legacy/blackboard/core/immutable.d.ts +45 -0
- package/dist/_legacy/blackboard/core/index.d.ts +13 -0
- package/dist/_legacy/blackboard/core/path-utils.d.ts +75 -0
- package/dist/_legacy/blackboard/core/tkg.d.ts +50 -0
- package/dist/_legacy/blackboard/core/versioning.d.ts +80 -0
- package/dist/_legacy/blackboard/domains/agenda/AgendaStore.d.ts +34 -0
- package/dist/_legacy/blackboard/domains/agenda/events.d.ts +12 -0
- package/dist/_legacy/blackboard/domains/agenda/index.d.ts +6 -0
- package/dist/_legacy/blackboard/domains/agenda/types.d.ts +26 -0
- package/dist/_legacy/blackboard/domains/consensus/ConsensusRuleEngine.d.ts +10 -0
- package/dist/_legacy/blackboard/domains/consensus/index.d.ts +4 -0
- package/dist/_legacy/blackboard/domains/consensus/types.d.ts +27 -0
- package/dist/_legacy/blackboard/domains/tkg/InMemoryTKG.d.ts +38 -0
- package/dist/_legacy/blackboard/domains/tkg/JsonFileReflectorStateStore.d.ts +9 -0
- package/dist/_legacy/blackboard/domains/tkg/ObserverReflector.d.ts +114 -0
- package/dist/_legacy/blackboard/domains/tkg/index.d.ts +4 -0
- package/dist/_legacy/blackboard/domains/voting/VotingSessionStore.d.ts +14 -0
- package/dist/_legacy/blackboard/domains/voting/index.d.ts +3 -0
- package/dist/_legacy/blackboard/domains/voting/types.d.ts +32 -0
- package/dist/_legacy/blackboard/events/event-bus.d.ts +254 -0
- package/dist/_legacy/blackboard/events/event-factory.d.ts +80 -0
- package/dist/_legacy/blackboard/events/index.d.ts +17 -0
- package/dist/_legacy/blackboard/events/types.d.ts +554 -0
- package/dist/_legacy/blackboard/snapshot/compression.d.ts +170 -0
- package/dist/_legacy/blackboard/snapshot/id-utils.d.ts +20 -0
- package/dist/_legacy/blackboard/snapshot/index.d.ts +21 -0
- package/dist/_legacy/blackboard/snapshot/serializer.d.ts +123 -0
- package/dist/_legacy/blackboard/snapshot/snapshot-comparer.d.ts +102 -0
- package/dist/_legacy/blackboard/snapshot/snapshot-creator.d.ts +49 -0
- package/dist/_legacy/blackboard/snapshot/snapshot-manager.d.ts +253 -0
- package/dist/_legacy/blackboard/snapshot/snapshot-restorer.d.ts +54 -0
- package/dist/_legacy/blackboard/snapshot/snapshot-serializer.d.ts +45 -0
- package/dist/_legacy/blackboard/snapshot/snapshot-validator.d.ts +55 -0
- package/dist/_legacy/blackboard/snapshot/type-guards.d.ts +12 -0
- package/dist/_legacy/blackboard/snapshot/types.d.ts +151 -0
- package/dist/_legacy/blackboard/snapshot/utils.d.ts +20 -0
- package/dist/_legacy/blackboard/types/agent.d.ts +89 -0
- package/dist/_legacy/blackboard/types/base.d.ts +213 -0
- package/dist/_legacy/blackboard/types/blackboard.d.ts +217 -0
- package/dist/_legacy/blackboard/types/decision.d.ts +260 -0
- package/dist/_legacy/blackboard/types/index.d.ts +12 -0
- package/dist/_legacy/blackboard/types/knowledge.d.ts +224 -0
- package/dist/_legacy/blackboard/types/message.d.ts +162 -0
- package/dist/_legacy/blackboard/types/task.d.ts +154 -0
- package/dist/_legacy/blackboard/types/tkg.d.ts +189 -0
- package/dist/_legacy/blackboard/workflow/meeting-state-machine/MeetingStateMachine.d.ts +22 -0
- package/dist/_legacy/blackboard/workflow/meeting-state-machine/types.d.ts +30 -0
- package/dist/_legacy/cli-runtime/runtime/agent-registry.d.ts +33 -0
- package/dist/_legacy/cli-runtime/runtime/blackboard.d.ts +41 -0
- package/dist/_legacy/cli-runtime/runtime/context-builder.d.ts +88 -0
- package/dist/_legacy/cli-runtime/runtime/retry-policy.d.ts +8 -0
- package/dist/_legacy/cli-runtime/runtime/step-executor.d.ts +33 -0
- package/dist/_legacy/cli-runtime/runtime/types.d.ts +12 -0
- package/dist/_legacy/cli-runtime/runtime/utils.d.ts +2 -0
- package/dist/_legacy/database/src/duckdb-client.d.ts +178 -0
- package/dist/_legacy/workflow/errors/diagnosis.d.ts +32 -0
- package/dist/_legacy/workflow/errors/index.d.ts +52 -0
- package/dist/_legacy/workflow/graph/index.d.ts +57 -0
- package/dist/_legacy/workflow/index.d.ts +9 -0
- package/dist/_legacy/workflow/parser/workflow-parser.d.ts +13 -0
- package/dist/_legacy/workflow/resolver/dependency-resolver.d.ts +83 -0
- package/dist/_legacy/workflow/types/workflow.d.ts +173 -0
- package/dist/_legacy/workflow/utils.d.ts +2 -0
- package/dist/_legacy/workflow/validator/workflow-validator.d.ts +71 -0
- package/dist/artifacts/index.d.ts +2 -0
- package/dist/artifacts/local-file-artifact-store.d.ts +22 -0
- package/dist/artifacts/types.d.ts +19 -0
- package/dist/audit/AuditReplay.d.ts +4 -0
- package/dist/audit/AuditStore.d.ts +13 -0
- package/dist/audit/AuditTrail.d.ts +28 -0
- package/dist/audit/DefaultAuditRecorder.d.ts +10 -0
- package/dist/audit/EventBusAdapter.d.ts +12 -0
- package/dist/audit/InMemoryAuditStore.d.ts +9 -0
- package/dist/audit/ReExecutionDiffReport.d.ts +24 -0
- package/dist/audit/ReExecutionPlanner.d.ts +30 -0
- package/dist/audit/ReExecutionRuntime.d.ts +35 -0
- package/dist/audit/database-api.d.ts +32 -0
- package/dist/audit/database-index.d.ts +5 -0
- package/dist/audit/event-bus.d.ts +1 -0
- package/dist/audit/event-factory.d.ts +1 -0
- package/dist/audit/index.d.ts +12 -0
- package/dist/audit/testing.d.ts +15 -0
- package/dist/audit/tkg/InMemoryTKG.d.ts +1 -0
- package/dist/audit/tkg/JsonFileReflectorStateStore.d.ts +1 -0
- package/dist/audit/tkg/ObserverReflector.d.ts +1 -0
- package/dist/audit/tkg/index.d.ts +1 -0
- package/dist/audit/types.d.ts +23 -0
- package/dist/blackboard/core/accessors/decisions-accessor.d.ts +190 -0
- package/dist/blackboard/core/accessors/index.d.ts +7 -0
- package/dist/blackboard/core/accessors/knowledge-accessor.d.ts +154 -0
- package/dist/blackboard/core/accessors/state-accessor.d.ts +173 -0
- package/dist/blackboard/core/blackboard-events.d.ts +105 -0
- package/dist/blackboard/core/blackboard.d.ts +286 -0
- package/dist/blackboard/core/id-generator.d.ts +53 -0
- package/dist/blackboard/core/immutable.d.ts +45 -0
- package/dist/blackboard/core/index.d.ts +13 -0
- package/dist/blackboard/core/path-utils.d.ts +75 -0
- package/dist/blackboard/core/tkg.d.ts +50 -0
- package/dist/blackboard/core/versioning.d.ts +80 -0
- package/dist/blackboard/events/event-bus.d.ts +254 -0
- package/dist/blackboard/events/event-factory.d.ts +80 -0
- package/dist/blackboard/events/index.d.ts +17 -0
- package/dist/blackboard/events/types.d.ts +554 -0
- package/dist/blackboard/index.d.ts +20 -0
- package/dist/blackboard/observer-reflector.d.ts +114 -0
- package/dist/blackboard/snapshot/compression.d.ts +170 -0
- package/dist/blackboard/snapshot/id-utils.d.ts +20 -0
- package/dist/blackboard/snapshot/index.d.ts +21 -0
- package/dist/blackboard/snapshot/serializer.d.ts +123 -0
- package/dist/blackboard/snapshot/snapshot-comparer.d.ts +102 -0
- package/dist/blackboard/snapshot/snapshot-creator.d.ts +49 -0
- package/dist/blackboard/snapshot/snapshot-manager.d.ts +253 -0
- package/dist/blackboard/snapshot/snapshot-restorer.d.ts +54 -0
- package/dist/blackboard/snapshot/snapshot-serializer.d.ts +45 -0
- package/dist/blackboard/snapshot/snapshot-validator.d.ts +55 -0
- package/dist/blackboard/snapshot/type-guards.d.ts +12 -0
- package/dist/blackboard/snapshot/types.d.ts +151 -0
- package/dist/blackboard/snapshot/utils.d.ts +20 -0
- package/dist/blackboard/types/agent.d.ts +89 -0
- package/dist/blackboard/types/base.d.ts +213 -0
- package/dist/blackboard/types/blackboard.d.ts +217 -0
- package/dist/blackboard/types/decision.d.ts +260 -0
- package/dist/blackboard/types/index.d.ts +12 -0
- package/dist/blackboard/types/knowledge.d.ts +224 -0
- package/dist/blackboard/types/message.d.ts +162 -0
- package/dist/blackboard/types/task.d.ts +154 -0
- package/dist/blackboard/types/tkg.d.ts +189 -0
- package/dist/cell/ActorPool.d.ts +1 -0
- package/dist/cell/AgentFactory.d.ts +1 -0
- package/dist/cell/AgentRegistry.d.ts +1 -0
- package/dist/cell/BaseActor.d.ts +1 -0
- package/dist/cell/CellContext.d.ts +39 -0
- package/dist/cell/CellManager.d.ts +80 -0
- package/dist/cell/ExecutionCell.d.ts +44 -0
- package/dist/cell/PoolManager.d.ts +1 -0
- package/dist/cell/actor-types/action.d.ts +65 -0
- package/dist/cell/actor-types/actor.d.ts +251 -0
- package/dist/cell/actor-types/blackboard.d.ts +46 -0
- package/dist/cell/actor-types/crypto.d.ts +6 -0
- package/dist/cell/actor-types/index.d.ts +12 -0
- package/dist/cell/actor-types/message.d.ts +209 -0
- package/dist/cell/actor-types/metrics.d.ts +43 -0
- package/dist/cell/actor-types/observation.d.ts +45 -0
- package/dist/cell/actor-types/result.d.ts +110 -0
- package/dist/cell/agents/AnalystCellAgent.d.ts +2 -0
- package/dist/cell/agents/BaseRuntimeAgent.d.ts +2 -0
- package/dist/cell/agents/DirectorCellAgent.d.ts +2 -0
- package/dist/cell/agents/ExecutorCellAgent.d.ts +2 -0
- package/dist/cell/agents/VerifierCellAgent.d.ts +2 -0
- package/dist/cell/agents/index.d.ts +5 -0
- package/dist/cell/index.d.ts +9 -0
- package/dist/cell/internal/ActorRunnerAdapter.d.ts +2 -0
- package/dist/cell/internal/CellActorFactory.d.ts +2 -0
- package/dist/cell/internal/NoOpRuntimeBus.d.ts +2 -0
- package/dist/cell/internal/delay.d.ts +1 -0
- package/dist/cell/pool-index.d.ts +1 -0
- package/dist/cell/types.d.ts +47 -0
- package/dist/checkpoint/CheckpointFactoryRegistry.d.ts +16 -0
- package/dist/checkpoint/CheckpointManager.d.ts +41 -0
- package/dist/checkpoint/index.d.ts +5 -0
- package/dist/checkpoint/policy-hash.d.ts +11 -0
- package/dist/consensus/ConsensusGate.d.ts +83 -0
- package/dist/consensus/ConsensusRuleEngine.d.ts +1 -0
- package/dist/consensus/agenda/AgendaStore.d.ts +1 -0
- package/dist/consensus/agenda/events.d.ts +1 -0
- package/dist/consensus/agenda/index.d.ts +1 -0
- package/dist/consensus/agenda/types.d.ts +1 -0
- package/dist/consensus/index.d.ts +2 -0
- package/dist/consensus/types.d.ts +1 -0
- package/dist/consensus/voting/VotingSessionStore.d.ts +1 -0
- package/dist/consensus/voting/index.d.ts +1 -0
- package/dist/consensus/voting/types.d.ts +1 -0
- package/dist/errors/OboraErrorCode.d.ts +28 -0
- package/dist/errors/index.d.ts +1 -0
- package/dist/gates/GateAssignment.d.ts +28 -0
- package/dist/gates/MultiStageApproval.d.ts +74 -0
- package/dist/gates/SLAManager.d.ts +21 -0
- package/dist/gates/index.d.ts +4 -0
- package/dist/gates/types.d.ts +19 -0
- package/dist/index.cjs +26588 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.js +26330 -0
- package/dist/index.js.map +1 -0
- package/dist/judgment/JudgmentEngine.d.ts +24 -0
- package/dist/judgment/JudgmentNormalizer.d.ts +37 -0
- package/dist/judgment/JudgmentPolicy.d.ts +74 -0
- package/dist/judgment/JudgmentReporter.d.ts +70 -0
- package/dist/judgment/OperationalLogger.d.ts +68 -0
- package/dist/judgment/index.d.ts +6 -0
- package/dist/judgment/types.d.ts +42 -0
- package/dist/orchestrator/ExecutionContextBuilder.d.ts +1 -0
- package/dist/orchestrator/RuntimeOrchestrator.d.ts +94 -0
- package/dist/orchestrator/StepScheduler.d.ts +2 -0
- package/dist/orchestrator/index.d.ts +4 -0
- package/dist/orchestrator/types.d.ts +80 -0
- package/dist/orchestrator/utils.d.ts +1 -0
- package/dist/patterns/CustomPatternAPI.d.ts +10 -0
- package/dist/patterns/PatternRegistry.d.ts +19 -0
- package/dist/patterns/builtin/BrainstormPattern.d.ts +13 -0
- package/dist/patterns/builtin/CompositePattern.d.ts +11 -0
- package/dist/patterns/builtin/ConsensusPattern.d.ts +17 -0
- package/dist/patterns/builtin/DiscussionPattern.d.ts +13 -0
- package/dist/patterns/builtin/FanOutFanInPattern.d.ts +21 -0
- package/dist/patterns/builtin/PeerReviewPattern.d.ts +40 -0
- package/dist/patterns/builtin/PipelinePattern.d.ts +6 -0
- package/dist/patterns/builtin/RedBluePattern.d.ts +13 -0
- package/dist/patterns/builtin/SupervisorPattern.d.ts +13 -0
- package/dist/patterns/builtin/discussion/MeetingStateMachine.d.ts +1 -0
- package/dist/patterns/builtin/discussion/index.d.ts +2 -0
- package/dist/patterns/builtin/discussion/types.d.ts +1 -0
- package/dist/patterns/examples/OxfordDebatePattern.d.ts +11 -0
- package/dist/patterns/examples/index.d.ts +1 -0
- package/dist/patterns/index.d.ts +14 -0
- package/dist/patterns/resolveCustomPattern.d.ts +22 -0
- package/dist/patterns/types.d.ts +252 -0
- package/dist/plugins/PluginLoader.d.ts +16 -0
- package/dist/plugins/PluginRegistry.d.ts +15 -0
- package/dist/plugins/builtins.d.ts +137 -0
- package/dist/plugins/index.d.ts +5 -0
- package/dist/plugins/types.d.ts +52 -0
- package/dist/plugins/validator.d.ts +3 -0
- package/dist/policy/DefaultPolicyEngine.d.ts +43 -0
- package/dist/policy/DynamicPolicyContext.d.ts +21 -0
- package/dist/policy/DynamicQuotaEvaluator.d.ts +9 -0
- package/dist/policy/DynamicToolPolicy.d.ts +10 -0
- package/dist/policy/PolicyEngine.d.ts +14 -0
- package/dist/policy/PolicyLoader.d.ts +3 -0
- package/dist/policy/expressions/ExpressionEvaluator.d.ts +37 -0
- package/dist/policy/expressions/ExpressionParser.d.ts +35 -0
- package/dist/policy/expressions/constants.d.ts +5 -0
- package/dist/policy/expressions/index.d.ts +2 -0
- package/dist/policy/index.d.ts +9 -0
- package/dist/policy/rules/GateRule.d.ts +7 -0
- package/dist/policy/rules/ResourceRule.d.ts +7 -0
- package/dist/policy/rules/SandboxRule.d.ts +7 -0
- package/dist/policy/rules/ToolRule.d.ts +23 -0
- package/dist/policy/rules/index.d.ts +4 -0
- package/dist/policy/types.d.ts +156 -0
- package/dist/recovery/RecoveryEngine.d.ts +11 -0
- package/dist/recovery/RetryStrategy.d.ts +2 -0
- package/dist/recovery/SupervisionTree.d.ts +1 -0
- package/dist/recovery/index.d.ts +4 -0
- package/dist/recovery/types.d.ts +103 -0
- package/dist/state/RuntimeBlackboardCompat.d.ts +1 -0
- package/dist/state/StateBinder.d.ts +40 -0
- package/dist/state/StateManager.d.ts +1 -0
- package/dist/state/accessors/decisions-accessor.d.ts +1 -0
- package/dist/state/accessors/index.d.ts +1 -0
- package/dist/state/accessors/knowledge-accessor.d.ts +1 -0
- package/dist/state/accessors/state-accessor.d.ts +1 -0
- package/dist/state/blackboard-events.d.ts +1 -0
- package/dist/state/core-index.d.ts +1 -0
- package/dist/state/id-generator.d.ts +1 -0
- package/dist/state/immutable.d.ts +1 -0
- package/dist/state/index.d.ts +6 -0
- package/dist/state/path-utils.d.ts +1 -0
- package/dist/state/snapshot/compression.d.ts +1 -0
- package/dist/state/snapshot/id-utils.d.ts +1 -0
- package/dist/state/snapshot/index.d.ts +1 -0
- package/dist/state/snapshot/serializer.d.ts +1 -0
- package/dist/state/snapshot/snapshot-comparer.d.ts +1 -0
- package/dist/state/snapshot/snapshot-creator.d.ts +1 -0
- package/dist/state/snapshot/snapshot-manager.d.ts +1 -0
- package/dist/state/snapshot/snapshot-restorer.d.ts +1 -0
- package/dist/state/snapshot/snapshot-serializer.d.ts +1 -0
- package/dist/state/snapshot/snapshot-validator.d.ts +1 -0
- package/dist/state/snapshot/type-guards.d.ts +1 -0
- package/dist/state/snapshot/types.d.ts +1 -0
- package/dist/state/snapshot/utils.d.ts +1 -0
- package/dist/state/tkg.d.ts +1 -0
- package/dist/state/types/agent.d.ts +1 -0
- package/dist/state/types/base.d.ts +1 -0
- package/dist/state/types/blackboard.d.ts +1 -0
- package/dist/state/types/decision.d.ts +1 -0
- package/dist/state/types/index.d.ts +1 -0
- package/dist/state/types/knowledge.d.ts +1 -0
- package/dist/state/types/message.d.ts +1 -0
- package/dist/state/types/task.d.ts +1 -0
- package/dist/state/types/tkg.d.ts +1 -0
- package/dist/state/versioning.d.ts +1 -0
- package/dist/storage/index.d.ts +3 -0
- package/dist/storage/inmemory-adapter.d.ts +27 -0
- package/dist/storage/sqlite-adapter.d.ts +43 -0
- package/dist/storage/types.d.ts +129 -0
- package/package.json +76 -0
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module events/event-bus
|
|
3
|
+
* @description Event Bus 구현 - Pub/Sub 패턴, 와일드카드 구독, 이벤트 필터링 지원
|
|
4
|
+
*/
|
|
5
|
+
import type { Event, EventType, EventByType, EventCategory } from "./types";
|
|
6
|
+
import type { AgentId } from "../types";
|
|
7
|
+
/**
|
|
8
|
+
* 이벤트 핸들러 타입
|
|
9
|
+
*/
|
|
10
|
+
export type EventHandler<T extends Event = Event> = (event: T) => void | Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* 구독 해제 함수
|
|
13
|
+
*/
|
|
14
|
+
export type Unsubscribe = () => void;
|
|
15
|
+
/**
|
|
16
|
+
* 이벤트 필터 조건
|
|
17
|
+
*/
|
|
18
|
+
export interface EventFilter {
|
|
19
|
+
/** 소스 에이전트 ID */
|
|
20
|
+
source?: AgentId | "system";
|
|
21
|
+
/** 상관 ID */
|
|
22
|
+
correlationId?: string;
|
|
23
|
+
/** 커스텀 필터 함수 */
|
|
24
|
+
predicate?: (event: Event) => boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Event Bus 설정
|
|
28
|
+
*/
|
|
29
|
+
export interface EventBusOptions {
|
|
30
|
+
/** 최대 리스너 수 (기본: 100) */
|
|
31
|
+
maxListeners?: number;
|
|
32
|
+
/** 비동기 핸들러 에러 시 throw 여부 (기본: false) */
|
|
33
|
+
throwOnAsyncError?: boolean;
|
|
34
|
+
/** 비동기 핸들러 에러 시 에러 이벤트 발행 여부 (기본: true) */
|
|
35
|
+
emitErrorEvent?: boolean;
|
|
36
|
+
/** 이벤트 히스토리 유지 개수 (기본: 0 = 유지 안함) */
|
|
37
|
+
historySize?: number;
|
|
38
|
+
/** 디버그 모드 */
|
|
39
|
+
debug?: boolean;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Event Bus 통계
|
|
43
|
+
*/
|
|
44
|
+
export interface EventBusStats {
|
|
45
|
+
/** 총 발행된 이벤트 수 */
|
|
46
|
+
totalEmitted: number;
|
|
47
|
+
/** 타입별 발행 수 */
|
|
48
|
+
emittedByType: Map<string, number>;
|
|
49
|
+
/** 현재 구독자 수 */
|
|
50
|
+
subscriberCount: number;
|
|
51
|
+
/** 타입별 구독자 수 */
|
|
52
|
+
subscribersByType: Map<string, number>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 이벤트 대기용 타임아웃 에러
|
|
56
|
+
*/
|
|
57
|
+
export declare class EventTimeoutError extends Error {
|
|
58
|
+
constructor(eventType: string, timeout: number);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Event Bus
|
|
62
|
+
* @description Blackboard 이벤트를 위한 Pub/Sub 시스템
|
|
63
|
+
* @description EventEmitter 상속하지 않고 자체 구현 (브라우저 호환)
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```typescript
|
|
67
|
+
* const bus = new EventBus({ historySize: 100 });
|
|
68
|
+
*
|
|
69
|
+
* // 특정 이벤트 구독
|
|
70
|
+
* const unsub = bus.subscribe('task.completed', (event) => {
|
|
71
|
+
* console.log('Task completed:', event.payload.taskId);
|
|
72
|
+
* });
|
|
73
|
+
*
|
|
74
|
+
* // 와일드카드 구독
|
|
75
|
+
* bus.subscribe('task.*', (event) => {
|
|
76
|
+
* console.log('Task event:', event.type);
|
|
77
|
+
* });
|
|
78
|
+
*
|
|
79
|
+
* // 모든 이벤트 구독
|
|
80
|
+
* bus.subscribe('*', (event) => {
|
|
81
|
+
* console.log('Any event:', event.type);
|
|
82
|
+
* });
|
|
83
|
+
*
|
|
84
|
+
* // 필터와 함께 구독
|
|
85
|
+
* bus.subscribeWithFilter('decision.*',
|
|
86
|
+
* { source: createAgentId('ceo') },
|
|
87
|
+
* (event) => console.log('CEO decision event')
|
|
88
|
+
* );
|
|
89
|
+
*
|
|
90
|
+
* // 이벤트 발행
|
|
91
|
+
* bus.emit({
|
|
92
|
+
* id: generateId(),
|
|
93
|
+
* type: 'task.completed',
|
|
94
|
+
* timestamp: new Date(),
|
|
95
|
+
* source: 'system',
|
|
96
|
+
* payload: { taskId: createTaskId('task-1'), result: {}, duration: 5000 }
|
|
97
|
+
* });
|
|
98
|
+
*
|
|
99
|
+
* // 구독 해제
|
|
100
|
+
* unsub();
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
export declare class EventBus {
|
|
104
|
+
private readonly options;
|
|
105
|
+
private history;
|
|
106
|
+
private stats;
|
|
107
|
+
private subscriptions;
|
|
108
|
+
private nextSubscriptionId;
|
|
109
|
+
/** 에러 이벤트 발행 중인지 체크 (재귀 방지) */
|
|
110
|
+
private isEmittingError;
|
|
111
|
+
constructor(options?: EventBusOptions);
|
|
112
|
+
/**
|
|
113
|
+
* 이벤트 구독
|
|
114
|
+
* @param eventType - 이벤트 타입 (와일드카드 지원: 'task.*', '*')
|
|
115
|
+
* @param handler - 이벤트 핸들러
|
|
116
|
+
* @returns 구독 해제 함수
|
|
117
|
+
*/
|
|
118
|
+
subscribe<T extends EventType>(eventType: T | `${EventCategory}.*` | "*", handler: EventHandler<EventByType<T>>): Unsubscribe;
|
|
119
|
+
/**
|
|
120
|
+
* 필터와 함께 구독
|
|
121
|
+
* @param eventType - 이벤트 타입
|
|
122
|
+
* @param filter - 필터 조건
|
|
123
|
+
* @param handler - 이벤트 핸들러
|
|
124
|
+
* @returns 구독 해제 함수
|
|
125
|
+
*/
|
|
126
|
+
subscribeWithFilter<T extends EventType>(eventType: T | `${EventCategory}.*` | "*", filter: EventFilter, handler: EventHandler<EventByType<T>>): Unsubscribe;
|
|
127
|
+
/**
|
|
128
|
+
* 일회성 구독
|
|
129
|
+
* @param eventType - 이벤트 타입
|
|
130
|
+
* @param handler - 이벤트 핸들러
|
|
131
|
+
* @returns 구독 해제 함수
|
|
132
|
+
*/
|
|
133
|
+
subscribeOnce<T extends EventType>(eventType: T, handler: EventHandler<EventByType<T>>): Unsubscribe;
|
|
134
|
+
/**
|
|
135
|
+
* 구독 해제
|
|
136
|
+
* @param eventType - 이벤트 타입
|
|
137
|
+
* @param handler - 제거할 핸들러
|
|
138
|
+
*/
|
|
139
|
+
unsubscribe<T extends EventType>(eventType: T | `${EventCategory}.*` | "*", handler: EventHandler<EventByType<T>>): void;
|
|
140
|
+
/**
|
|
141
|
+
* 모든 구독 해제
|
|
142
|
+
* @param eventType - 특정 이벤트 타입만 해제 (선택)
|
|
143
|
+
*/
|
|
144
|
+
unsubscribeAll<T extends EventType>(eventType?: T | `${EventCategory}.*` | "*"): void;
|
|
145
|
+
/**
|
|
146
|
+
* 이벤트 버스 초기화 (히스토리만 지움, 구독자는 유지)
|
|
147
|
+
*/
|
|
148
|
+
clear(): void;
|
|
149
|
+
/**
|
|
150
|
+
* 이벤트 발행
|
|
151
|
+
* @param event - 발행할 이벤트
|
|
152
|
+
*/
|
|
153
|
+
emit<T extends Event>(event: T): void;
|
|
154
|
+
/**
|
|
155
|
+
* 이벤트 발행 (비동기 핸들러 완료 대기)
|
|
156
|
+
* @param event - 발행할 이벤트
|
|
157
|
+
* @returns 모든 핸들러 완료 시 resolve
|
|
158
|
+
*/
|
|
159
|
+
emitAsync<T extends Event>(event: T): Promise<void>;
|
|
160
|
+
/**
|
|
161
|
+
* 배치 이벤트 발행
|
|
162
|
+
* @param events - 발행할 이벤트 목록
|
|
163
|
+
*/
|
|
164
|
+
emitBatch(events: Event[]): void;
|
|
165
|
+
/**
|
|
166
|
+
* 이벤트 히스토리 조회
|
|
167
|
+
* @param filter - 필터 조건
|
|
168
|
+
* @param limit - 최대 개수
|
|
169
|
+
* @returns 필터링된 이벤트 목록
|
|
170
|
+
*/
|
|
171
|
+
getHistory(filter?: {
|
|
172
|
+
type?: EventType | `${EventCategory}.*`;
|
|
173
|
+
source?: AgentId | "system";
|
|
174
|
+
since?: Date;
|
|
175
|
+
until?: Date;
|
|
176
|
+
limit?: number;
|
|
177
|
+
}, limitArg?: number): Event[];
|
|
178
|
+
/**
|
|
179
|
+
* 히스토리 재생
|
|
180
|
+
* @description 지정된 이벤트들을 다시 발행
|
|
181
|
+
* @param events - 재생할 이벤트 목록
|
|
182
|
+
*/
|
|
183
|
+
replay(events: Event[]): void;
|
|
184
|
+
/**
|
|
185
|
+
* 히스토리 클리어
|
|
186
|
+
*/
|
|
187
|
+
clearHistory(): void;
|
|
188
|
+
/**
|
|
189
|
+
* 통계 조회
|
|
190
|
+
*/
|
|
191
|
+
getStats(): Readonly<EventBusStats> & {
|
|
192
|
+
eventsByType: Record<string, number>;
|
|
193
|
+
};
|
|
194
|
+
/**
|
|
195
|
+
* 모든 구독 해제
|
|
196
|
+
*/
|
|
197
|
+
removeAllSubscribers(): void;
|
|
198
|
+
/**
|
|
199
|
+
* 특정 타입의 모든 구독 해제
|
|
200
|
+
*/
|
|
201
|
+
removeSubscribersForType(eventType: EventType | `${EventCategory}.*` | "*"): void;
|
|
202
|
+
/**
|
|
203
|
+
* 이벤트 대기 (Promise 기반)
|
|
204
|
+
* @param eventType - 대기할 이벤트 타입
|
|
205
|
+
* @param timeout - 타임아웃 (ms)
|
|
206
|
+
* @returns 발생한 이벤트
|
|
207
|
+
*/
|
|
208
|
+
waitFor<T extends EventType>(eventType: T, timeout?: number, predicate?: (event: EventByType<T>) => boolean): Promise<EventByType<T>>;
|
|
209
|
+
/**
|
|
210
|
+
* 이벤트 대기 (조건 충족 시)
|
|
211
|
+
* @param eventType - 대기할 이벤트 타입
|
|
212
|
+
* @param predicate - 조건 함수
|
|
213
|
+
* @param timeout - 타임아웃 (ms)
|
|
214
|
+
*/
|
|
215
|
+
waitForCondition<T extends EventType>(eventType: T, predicate: (event: EventByType<T>) => boolean, timeout?: number): Promise<EventByType<T>>;
|
|
216
|
+
/**
|
|
217
|
+
* 에러 이벤트 발행
|
|
218
|
+
* @description 핸들러 에러 발생 시 시스템 에러 이벤트 발행
|
|
219
|
+
* @private
|
|
220
|
+
*/
|
|
221
|
+
private emitError;
|
|
222
|
+
/**
|
|
223
|
+
* 와일드카드 패턴 매칭
|
|
224
|
+
* @param pattern - 패턴 (예: 'task.*')
|
|
225
|
+
* @param eventType - 실제 이벤트 타입
|
|
226
|
+
*/
|
|
227
|
+
private matchesPattern;
|
|
228
|
+
/**
|
|
229
|
+
* 필터 적용
|
|
230
|
+
* @param event - 이벤트
|
|
231
|
+
* @param filter - 필터 조건
|
|
232
|
+
*/
|
|
233
|
+
private applyFilter;
|
|
234
|
+
/**
|
|
235
|
+
* 히스토리에 이벤트 추가
|
|
236
|
+
*/
|
|
237
|
+
private addToHistory;
|
|
238
|
+
/**
|
|
239
|
+
* 통계 업데이트
|
|
240
|
+
*/
|
|
241
|
+
private updateStats;
|
|
242
|
+
/**
|
|
243
|
+
* 구독자 통계 업데이트
|
|
244
|
+
*/
|
|
245
|
+
private updateSubscriberStats;
|
|
246
|
+
/**
|
|
247
|
+
* 초기 통계 생성
|
|
248
|
+
*/
|
|
249
|
+
private createInitialStats;
|
|
250
|
+
/**
|
|
251
|
+
* 디버그 로그
|
|
252
|
+
*/
|
|
253
|
+
private debugLog;
|
|
254
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module events/event-factory
|
|
3
|
+
* @description 이벤트 팩토리 - 타입 안전한 이벤트 생성
|
|
4
|
+
*/
|
|
5
|
+
import type { AgentId, TaskId, AgendaId } from "../types";
|
|
6
|
+
import type { PhaseChangedEvent, ContextUpdatedEvent, StateAgentRegisteredEvent, StateAgentUpdatedEvent, StateTaskCreatedEvent, StateTaskAssignedEvent, StateTaskCompletedEvent, StateTaskFailedEvent, AgentRegisteredEvent, AgentStatusChangedEvent, AgentUpdatedEvent, AgentRemovedEvent, TaskCreatedEvent, TaskAssignedEvent, TaskStartedEvent, TaskStatusChangedEvent, TaskCompletedEvent, TaskFailedEvent, TaskCancelledEvent, DecisionsAgendaCreatedEvent, DecisionsAgendaStartedEvent, DecisionsOpinionSubmittedEvent, DecisionsVotingStartedEvent, DecisionsVoteSubmittedEvent, DecisionsVotingEndedEvent, DecisionsConsensusReachedEvent, DecisionsAgendaResolvedEvent, AgendaSubmittedEvent, AgendaStatusChangedEvent, OpinionSubmittedEvent, VoteRequestedEvent, ConsensusReachedEvent, VotingCompletedEvent, FactAddedEvent, FactUpdatedEvent, FactRemovedEvent, InferenceAddedEvent, KnowledgePatternLearnedEvent, PatternAddedEvent, SystemSnapshotCreatedEvent, SystemSnapshotRestoredEvent, SystemErrorEvent, VersionConflictEvent, StateInitializedEvent, SnapshotCreatedEvent, SnapshotRestoredEvent, BoardPhase, AgentStatus, TaskStatus, AgendaStatus, Task, Agenda, Opinion, Resolution, Fact, Inference, Pattern, TaskError } from "./types";
|
|
7
|
+
/**
|
|
8
|
+
* 이벤트 생성 옵션
|
|
9
|
+
*/
|
|
10
|
+
export interface CreateEventOptions {
|
|
11
|
+
/** 상관 ID */
|
|
12
|
+
correlationId?: string;
|
|
13
|
+
/** 소스 (기본: 'system') */
|
|
14
|
+
source?: AgentId | "system";
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* 이벤트 팩토리
|
|
18
|
+
* @description 타입 안전한 이벤트 생성
|
|
19
|
+
*/
|
|
20
|
+
export declare class EventFactory {
|
|
21
|
+
private idGenerator;
|
|
22
|
+
constructor(idGenerator?: () => string);
|
|
23
|
+
createPhaseChanged(previousPhase: BoardPhase, newPhase: BoardPhase, optionsOrSource?: CreateEventOptions | AgentId | "system"): PhaseChangedEvent;
|
|
24
|
+
createContextUpdated(key: string, previousValue: unknown, newValue: unknown, options?: CreateEventOptions): ContextUpdatedEvent;
|
|
25
|
+
createStateAgentRegistered(agent: AgentStatus, options?: CreateEventOptions): StateAgentRegisteredEvent;
|
|
26
|
+
createStateAgentUpdated(agentId: AgentId, previousStatus: AgentStatus, newStatus: AgentStatus, options?: CreateEventOptions): StateAgentUpdatedEvent;
|
|
27
|
+
createStateTaskCreated(task: Task, options?: CreateEventOptions): StateTaskCreatedEvent;
|
|
28
|
+
createStateTaskAssigned(taskId: TaskId, assignedTo: AgentId, options?: CreateEventOptions): StateTaskAssignedEvent;
|
|
29
|
+
createStateTaskCompleted(taskId: TaskId, result: unknown, duration: number, options?: CreateEventOptions): StateTaskCompletedEvent;
|
|
30
|
+
createStateTaskFailed(taskId: TaskId, error: TaskError, retryable: boolean, options?: CreateEventOptions): StateTaskFailedEvent;
|
|
31
|
+
createAgentRegistered(agent: AgentStatus, options?: CreateEventOptions): AgentRegisteredEvent;
|
|
32
|
+
createAgentStatusChanged(agentId: AgentId, previousStatus: AgentStatus, newStatus: AgentStatus, options?: CreateEventOptions): AgentStatusChangedEvent;
|
|
33
|
+
createAgentRemoved(agentId: AgentId, reason: string, options?: CreateEventOptions): AgentRemovedEvent;
|
|
34
|
+
createAgentUpdated(agentId: AgentId, changes: Partial<AgentStatus>, previousValues: Partial<AgentStatus>, options?: CreateEventOptions): AgentUpdatedEvent;
|
|
35
|
+
createTaskCreated(task: Task, options?: CreateEventOptions): TaskCreatedEvent;
|
|
36
|
+
createTaskAssigned(taskId: TaskId, agentId: AgentId, options?: CreateEventOptions): TaskAssignedEvent;
|
|
37
|
+
createTaskStatusChanged(taskId: TaskId, previousStatus: TaskStatus, newStatus: TaskStatus, options?: CreateEventOptions): TaskStatusChangedEvent;
|
|
38
|
+
createTaskCompleted(taskId: TaskId, outputs: unknown, duration: number, options?: CreateEventOptions): TaskCompletedEvent;
|
|
39
|
+
createTaskFailed(taskId: TaskId, error: TaskError, duration: number, options?: CreateEventOptions): TaskFailedEvent;
|
|
40
|
+
createTaskStarted(taskId: TaskId, agentId: AgentId, options?: CreateEventOptions): TaskStartedEvent;
|
|
41
|
+
createTaskCancelled(taskId: TaskId, reason: string, options?: CreateEventOptions): TaskCancelledEvent;
|
|
42
|
+
createDecisionsAgendaCreated(agenda: Agenda, options?: CreateEventOptions): DecisionsAgendaCreatedEvent;
|
|
43
|
+
createDecisionsAgendaStarted(agendaId: AgendaId, options?: CreateEventOptions): DecisionsAgendaStartedEvent;
|
|
44
|
+
createDecisionsOpinionSubmitted(opinion: Opinion, options?: CreateEventOptions): DecisionsOpinionSubmittedEvent;
|
|
45
|
+
createDecisionsVotingStarted(agendaId: AgendaId, deadline: Date, options?: CreateEventOptions): DecisionsVotingStartedEvent;
|
|
46
|
+
createDecisionsVoteSubmitted(agendaId: AgendaId, agentId: AgentId, vote: "approve" | "reject" | "abstain", options?: CreateEventOptions): DecisionsVoteSubmittedEvent;
|
|
47
|
+
createDecisionsVotingEnded(agendaId: AgendaId, result: Resolution, options?: CreateEventOptions): DecisionsVotingEndedEvent;
|
|
48
|
+
createDecisionsConsensusReached(resolution: Resolution, options?: CreateEventOptions): DecisionsConsensusReachedEvent;
|
|
49
|
+
createDecisionsAgendaResolved(agendaId: AgendaId, resolution: Resolution, options?: CreateEventOptions): DecisionsAgendaResolvedEvent;
|
|
50
|
+
createAgendaSubmitted(agenda: Agenda, options?: CreateEventOptions): AgendaSubmittedEvent;
|
|
51
|
+
createAgendaStatusChanged(agendaId: AgendaId, previousStatus: AgendaStatus, newStatus: AgendaStatus, options?: CreateEventOptions): AgendaStatusChangedEvent;
|
|
52
|
+
createOpinionSubmitted(opinion: Opinion, options?: CreateEventOptions): OpinionSubmittedEvent;
|
|
53
|
+
createVoteRequested(agendaId: AgendaId, deadline: Date, requiredVoters: AgentId[], options?: CreateEventOptions): VoteRequestedEvent;
|
|
54
|
+
createConsensusReached(resolution: Resolution, options?: CreateEventOptions): ConsensusReachedEvent;
|
|
55
|
+
createVotingCompleted(agendaId: AgendaId, result: {
|
|
56
|
+
passed: boolean;
|
|
57
|
+
method: string;
|
|
58
|
+
summary: {
|
|
59
|
+
total: number;
|
|
60
|
+
approve: number;
|
|
61
|
+
reject: number;
|
|
62
|
+
abstain: number;
|
|
63
|
+
approvalRate: number;
|
|
64
|
+
quorumReached: boolean;
|
|
65
|
+
};
|
|
66
|
+
}, options?: CreateEventOptions): VotingCompletedEvent;
|
|
67
|
+
createFactAdded(fact: Fact, options?: CreateEventOptions): FactAddedEvent;
|
|
68
|
+
createInferenceAdded(inference: Inference, options?: CreateEventOptions): InferenceAddedEvent;
|
|
69
|
+
createKnowledgePatternLearned(pattern: Pattern, options?: CreateEventOptions): KnowledgePatternLearnedEvent;
|
|
70
|
+
createFactUpdated(factId: string, changes: Partial<Fact>, previousValues?: Partial<Fact>, options?: CreateEventOptions): FactUpdatedEvent;
|
|
71
|
+
createFactRemoved(factId: string, reason: string, options?: CreateEventOptions): FactRemovedEvent;
|
|
72
|
+
createPatternAdded(pattern: Pattern, options?: CreateEventOptions): PatternAddedEvent;
|
|
73
|
+
createSystemSnapshotCreated(snapshotId: string, timestamp: Date, options?: CreateEventOptions): SystemSnapshotCreatedEvent;
|
|
74
|
+
createSystemSnapshotRestored(snapshotId: string, timestamp: Date, options?: CreateEventOptions): SystemSnapshotRestoredEvent;
|
|
75
|
+
createSystemError(code: string, message: string, details?: unknown, options?: CreateEventOptions): SystemErrorEvent;
|
|
76
|
+
createVersionConflict(path: string, expectedVersion: number, actualVersion: number, options?: CreateEventOptions): VersionConflictEvent;
|
|
77
|
+
createStateInitialized(sessionId: string, options?: CreateEventOptions): StateInitializedEvent;
|
|
78
|
+
createSnapshotCreated(snapshotId: string, version: number, options?: CreateEventOptions): SnapshotCreatedEvent;
|
|
79
|
+
createSnapshotRestored(snapshotId: string, previousVersion: number, restoredVersion: number, options?: CreateEventOptions): SnapshotRestoredEvent;
|
|
80
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module events/index
|
|
3
|
+
* @description 이벤트 모듈 exports
|
|
4
|
+
*/
|
|
5
|
+
export type { EventCategory, BaseEvent, EventType, EventByType, Event, } from './types';
|
|
6
|
+
export type { Event as BusEvent } from './types';
|
|
7
|
+
export type { PhaseChangedEvent, ContextUpdatedEvent, StateAgentRegisteredEvent, StateAgentUpdatedEvent, StateTaskCreatedEvent, StateTaskAssignedEvent, StateTaskCompletedEvent, StateTaskFailedEvent, } from './types';
|
|
8
|
+
export type { AgentRegisteredEvent, AgentStatusChangedEvent, AgentRemovedEvent, } from './types';
|
|
9
|
+
export type { TaskCreatedEvent, TaskAssignedEvent, TaskStatusChangedEvent, TaskCompletedEvent, TaskFailedEvent, } from './types';
|
|
10
|
+
export type { DecisionsAgendaCreatedEvent, DecisionsAgendaStartedEvent, DecisionsOpinionSubmittedEvent, DecisionsVotingStartedEvent, DecisionsVoteSubmittedEvent, DecisionsVotingEndedEvent, DecisionsConsensusReachedEvent, DecisionsAgendaResolvedEvent, AgendaSubmittedEvent, AgendaStatusChangedEvent, OpinionSubmittedEvent, VoteRequestedEvent, ConsensusReachedEvent, } from './types';
|
|
11
|
+
export type { AgendaCreatedDomainEvent, AgendaUpdatedDomainEvent, AgendaStatusChangedDomainEvent, AgendaDeletedDomainEvent, } from './types';
|
|
12
|
+
export type { FactAddedEvent, InferenceAddedEvent, KnowledgePatternLearnedEvent, } from './types';
|
|
13
|
+
export type { SystemSnapshotCreatedEvent, SystemSnapshotRestoredEvent, SystemErrorEvent, VersionConflictEvent, } from './types';
|
|
14
|
+
export { EventBus, EventTimeoutError } from './event-bus';
|
|
15
|
+
export type { EventHandler, Unsubscribe, EventFilter, EventBusOptions, EventBusStats, } from './event-bus';
|
|
16
|
+
export { EventFactory } from './event-factory';
|
|
17
|
+
export type { CreateEventOptions } from './event-factory';
|