@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,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module decisions-accessor
|
|
3
|
+
* @description 의사결정 섹션 접근자
|
|
4
|
+
*/
|
|
5
|
+
import type { Blackboard } from "../blackboard";
|
|
6
|
+
import type { Agenda, AgendaCreateInput, Opinion, OpinionCreateInput, Resolution, DecisionType, OpinionId, AgendaId } from "../../types";
|
|
7
|
+
import type { AgentId } from "../../types";
|
|
8
|
+
import { AgendaStatus } from "../../types";
|
|
9
|
+
/**
|
|
10
|
+
* 의사결정 섹션 접근자
|
|
11
|
+
* @description decisions 섹션에 대한 타입 안전한 접근 제공
|
|
12
|
+
*/
|
|
13
|
+
export declare class DecisionsSectionAccessor {
|
|
14
|
+
private readonly board;
|
|
15
|
+
constructor(board: Blackboard);
|
|
16
|
+
/**
|
|
17
|
+
* 의견 키 생성 (agendaId + agentId 조합)
|
|
18
|
+
* @private
|
|
19
|
+
*/
|
|
20
|
+
private getOpinionKey;
|
|
21
|
+
/**
|
|
22
|
+
* opinionId로 opinionKey 찾기
|
|
23
|
+
* @private
|
|
24
|
+
*/
|
|
25
|
+
private findOpinionKey;
|
|
26
|
+
/** 현재 안건 */
|
|
27
|
+
get current(): Agenda | null;
|
|
28
|
+
/** 대기 중인 안건들 */
|
|
29
|
+
get pending(): Agenda[];
|
|
30
|
+
/** 모든 대기 안건 */
|
|
31
|
+
get allPending(): Agenda[];
|
|
32
|
+
/** 결정 이력 전체 */
|
|
33
|
+
get history(): Resolution[];
|
|
34
|
+
/** 대기 중인 안건 수 */
|
|
35
|
+
get pendingCount(): number;
|
|
36
|
+
/** 결정 이력 수 */
|
|
37
|
+
get historyCount(): number;
|
|
38
|
+
/**
|
|
39
|
+
* 안건 제출
|
|
40
|
+
* @param agendaInput - 새 안건 입력
|
|
41
|
+
*/
|
|
42
|
+
submitAgenda(agendaInput: AgendaCreateInput): Agenda;
|
|
43
|
+
/**
|
|
44
|
+
* 안건 상태 변경
|
|
45
|
+
*/
|
|
46
|
+
updateAgendaStatus(agendaId: AgendaId, status: AgendaStatus): void;
|
|
47
|
+
/**
|
|
48
|
+
* 현재 안건 설정
|
|
49
|
+
*/
|
|
50
|
+
setCurrentAgenda(agendaId: AgendaId): void;
|
|
51
|
+
/**
|
|
52
|
+
* 안건 취소
|
|
53
|
+
*/
|
|
54
|
+
cancelAgenda(agendaId: AgendaId, reason: string): void;
|
|
55
|
+
/**
|
|
56
|
+
* 안건 조회
|
|
57
|
+
*/
|
|
58
|
+
getAgenda(agendaId: AgendaId): Agenda | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* 모든 안건 조회
|
|
61
|
+
*/
|
|
62
|
+
getAllAgendas(): Agenda[];
|
|
63
|
+
/**
|
|
64
|
+
* 의견 제출
|
|
65
|
+
* @param opinionInput - 의견 생성 입력 (agentId 포함)
|
|
66
|
+
*/
|
|
67
|
+
submitOpinion(opinionInput: OpinionCreateInput & {
|
|
68
|
+
agentId: AgentId;
|
|
69
|
+
}): Opinion;
|
|
70
|
+
/**
|
|
71
|
+
* 특정 안건의 모든 의견 조회
|
|
72
|
+
*/
|
|
73
|
+
getOpinions(agendaId: AgendaId): Opinion[];
|
|
74
|
+
/**
|
|
75
|
+
* 에이전트의 의견 조회 (agendaId 먼저)
|
|
76
|
+
* @deprecated getAgentOpinion() 사용 권장
|
|
77
|
+
*/
|
|
78
|
+
getOpinionByAgent(agendaId: AgendaId, agentId: AgentId): Opinion | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* 에이전트의 의견 조회
|
|
81
|
+
* @param agentId - 에이전트 ID
|
|
82
|
+
* @param agendaId - 안건 ID (필수)
|
|
83
|
+
*/
|
|
84
|
+
getAgentOpinion(agentId: AgentId, agendaId: AgendaId): Opinion | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* 의견 요약
|
|
87
|
+
*/
|
|
88
|
+
summarizeOpinions(agendaId: AgendaId): {
|
|
89
|
+
total: number;
|
|
90
|
+
approve: number;
|
|
91
|
+
reject: number;
|
|
92
|
+
conditional: number;
|
|
93
|
+
abstain: number;
|
|
94
|
+
approvalRate: number;
|
|
95
|
+
quorumReached: boolean;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* 모든 의견 초기화 (재투표 시)
|
|
99
|
+
*/
|
|
100
|
+
clearOpinions(agendaId: AgendaId): void;
|
|
101
|
+
/**
|
|
102
|
+
* 의견 업데이트
|
|
103
|
+
*/
|
|
104
|
+
updateOpinion(opinionId: OpinionId, updates: Partial<Omit<Opinion, "id" | "createdAt">>): void;
|
|
105
|
+
/**
|
|
106
|
+
* 의견 삭제
|
|
107
|
+
*/
|
|
108
|
+
removeOpinion(opinionId: OpinionId): void;
|
|
109
|
+
/**
|
|
110
|
+
* 결정 기록 (안건 제거)
|
|
111
|
+
* @description 새 결정을 기록하고 관련 안건을 제거합니다.
|
|
112
|
+
* @warning closeAgenda()를 사용하면 안건이 RESOLVED 상태로 유지됩니다.
|
|
113
|
+
* 이 메서드는 안건을 완전히 제거합니다.
|
|
114
|
+
*/
|
|
115
|
+
recordResolution(resolutionInput: Omit<Resolution, "id" | "createdAt" | "updatedAt">): Resolution;
|
|
116
|
+
/**
|
|
117
|
+
* 결정 기록 (안건 유지)
|
|
118
|
+
* @description 안건을 제거하지 않고 결정만 기록합니다.
|
|
119
|
+
* @private
|
|
120
|
+
*/
|
|
121
|
+
private recordResolutionKeepAgenda;
|
|
122
|
+
/**
|
|
123
|
+
* 결정 이력 조회
|
|
124
|
+
*/
|
|
125
|
+
getHistory(filter?: {
|
|
126
|
+
agendaId?: AgendaId;
|
|
127
|
+
decision?: DecisionType;
|
|
128
|
+
}): Resolution[];
|
|
129
|
+
/**
|
|
130
|
+
* 최근 N개 결정 조회
|
|
131
|
+
*/
|
|
132
|
+
getRecentResolutions(count: number): Resolution[];
|
|
133
|
+
/**
|
|
134
|
+
* 결정 조회
|
|
135
|
+
*/
|
|
136
|
+
getResolution(resolutionId: string): Resolution | undefined;
|
|
137
|
+
/**
|
|
138
|
+
* 안건에 대한 결정 조회
|
|
139
|
+
*/
|
|
140
|
+
getResolutionByAgenda(agendaId: AgendaId): Resolution | undefined;
|
|
141
|
+
/**
|
|
142
|
+
* 결정 수 조회
|
|
143
|
+
*/
|
|
144
|
+
getResolutionCount(): number;
|
|
145
|
+
/**
|
|
146
|
+
* 안건 수 조회
|
|
147
|
+
*/
|
|
148
|
+
getAgendaCount(): number;
|
|
149
|
+
/**
|
|
150
|
+
* 의견 수 조회
|
|
151
|
+
*/
|
|
152
|
+
getOpinionCount(): number;
|
|
153
|
+
/**
|
|
154
|
+
* 투표 결과 확인
|
|
155
|
+
* @note conditional은 승인으로 카운트됩니다 (찬성 = approve + conditional)
|
|
156
|
+
*/
|
|
157
|
+
checkVotingResult(agendaId: AgendaId): {
|
|
158
|
+
passed: boolean;
|
|
159
|
+
method: "majority" | "unanimous" | "weighted" | "supermajority";
|
|
160
|
+
summary: {
|
|
161
|
+
total: number;
|
|
162
|
+
approve: number;
|
|
163
|
+
reject: number;
|
|
164
|
+
conditional: number;
|
|
165
|
+
abstain: number;
|
|
166
|
+
approvalRate: number;
|
|
167
|
+
quorumReached: boolean;
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
/**
|
|
171
|
+
* 안건 종료 (결정 기록)
|
|
172
|
+
* @description 안건을 RESOLVED 상태로 변경하고 결정을 기록합니다.
|
|
173
|
+
*
|
|
174
|
+
* **정책:** 안건은 RESOLVED 상태로 변경 후에도 pending/current에 유지됩니다.
|
|
175
|
+
* 이는 결정 이력 추적 및 후속 조치 관리를 위함입니다.
|
|
176
|
+
* 안건을 완전히 제거하려면 {@link recordResolution()}을 직접 호출하세요.
|
|
177
|
+
*
|
|
178
|
+
* @param agendaId - 종료할 안건 ID
|
|
179
|
+
* @param decision - 결정 유형 (기본: approved)
|
|
180
|
+
*/
|
|
181
|
+
closeAgenda(agendaId: AgendaId, decision?: "approved" | "rejected" | "deferred"): void;
|
|
182
|
+
/**
|
|
183
|
+
* 안건 업데이트
|
|
184
|
+
*/
|
|
185
|
+
updateAgenda(agendaId: AgendaId, updates: Partial<Omit<Agenda, "id" | "createdAt">>): Agenda;
|
|
186
|
+
/**
|
|
187
|
+
* 모든 결정 초기화
|
|
188
|
+
*/
|
|
189
|
+
clearAll(): void;
|
|
190
|
+
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module knowledge-accessor
|
|
3
|
+
* @description 지식 섹션 접근자
|
|
4
|
+
*/
|
|
5
|
+
import type { Blackboard } from '../blackboard';
|
|
6
|
+
import type { Fact, FactCreateInput, Inference, InferenceCreateInput, Pattern, PatternCreateInput, KnowledgeQuery, InferenceQuery, PatternQuery } from '../../types';
|
|
7
|
+
import type { AgentId } from '../../types';
|
|
8
|
+
/**
|
|
9
|
+
* 지식 섹션 접근자
|
|
10
|
+
* @description knowledge 섹션에 대한 타입 안전한 접근 제공
|
|
11
|
+
*/
|
|
12
|
+
export declare class KnowledgeSectionAccessor {
|
|
13
|
+
private readonly board;
|
|
14
|
+
constructor(board: Blackboard);
|
|
15
|
+
/**
|
|
16
|
+
* confidence 값 검증
|
|
17
|
+
* @private
|
|
18
|
+
*/
|
|
19
|
+
private validateConfidence;
|
|
20
|
+
/**
|
|
21
|
+
* 전체 사실 목록
|
|
22
|
+
*/
|
|
23
|
+
get facts(): Fact[];
|
|
24
|
+
/**
|
|
25
|
+
* 전체 추론 목록
|
|
26
|
+
*/
|
|
27
|
+
get inferences(): Inference[];
|
|
28
|
+
/**
|
|
29
|
+
* 전체 패턴 목록
|
|
30
|
+
*/
|
|
31
|
+
get patterns(): Pattern[];
|
|
32
|
+
/**
|
|
33
|
+
* 사실 수
|
|
34
|
+
*/
|
|
35
|
+
get factCount(): number;
|
|
36
|
+
/**
|
|
37
|
+
* 추론 수
|
|
38
|
+
*/
|
|
39
|
+
get inferenceCount(): number;
|
|
40
|
+
/**
|
|
41
|
+
* 패턴 수
|
|
42
|
+
*/
|
|
43
|
+
get patternCount(): number;
|
|
44
|
+
/**
|
|
45
|
+
* 사실 추가
|
|
46
|
+
* @param factInput - 새 사실 입력
|
|
47
|
+
*/
|
|
48
|
+
addFact(factInput: FactCreateInput): Fact;
|
|
49
|
+
/**
|
|
50
|
+
* 사실 조회
|
|
51
|
+
*/
|
|
52
|
+
getFact(factId: string): Fact | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* 사실 업데이트
|
|
55
|
+
*/
|
|
56
|
+
updateFact(factId: string, updates: Partial<Omit<Fact, 'id' | 'createdAt'>>): Fact | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* 사실 검색
|
|
59
|
+
*/
|
|
60
|
+
findFacts(query: KnowledgeQuery): Fact[];
|
|
61
|
+
/**
|
|
62
|
+
* 만료된 사실 정리
|
|
63
|
+
*/
|
|
64
|
+
cleanupExpiredFacts(): number;
|
|
65
|
+
/**
|
|
66
|
+
* 사실 삭제
|
|
67
|
+
*/
|
|
68
|
+
removeFact(factId: string): void;
|
|
69
|
+
/**
|
|
70
|
+
* 사실 수 조회 (deprecated: factCount getter 사용)
|
|
71
|
+
*/
|
|
72
|
+
getFactCount(): number;
|
|
73
|
+
/**
|
|
74
|
+
* 추론 추가
|
|
75
|
+
*/
|
|
76
|
+
addInference(inferenceInput: InferenceCreateInput): Inference;
|
|
77
|
+
/**
|
|
78
|
+
* 추론 조회
|
|
79
|
+
*/
|
|
80
|
+
getInference(inferenceId: string): Inference | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* 추론 업데이트
|
|
83
|
+
*/
|
|
84
|
+
updateInference(inferenceId: string, updates: Partial<Omit<Inference, 'id' | 'createdAt'>>): Inference | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* 추론 검색
|
|
87
|
+
*/
|
|
88
|
+
findInferences(query: InferenceQuery): Inference[];
|
|
89
|
+
/**
|
|
90
|
+
* 특정 사실을 전제로 하는 추론 찾기
|
|
91
|
+
*/
|
|
92
|
+
findInferencesByPremise(factId: string): Inference[];
|
|
93
|
+
/**
|
|
94
|
+
* 에이전트별 추론 조회
|
|
95
|
+
*/
|
|
96
|
+
findInferencesByAgent(agentId: AgentId): Inference[];
|
|
97
|
+
/**
|
|
98
|
+
* 추론 삭제
|
|
99
|
+
*/
|
|
100
|
+
removeInference(inferenceId: string): void;
|
|
101
|
+
/**
|
|
102
|
+
* 추론 수 조회 (deprecated: inferenceCount getter 사용)
|
|
103
|
+
*/
|
|
104
|
+
getInferenceCount(): number;
|
|
105
|
+
/**
|
|
106
|
+
* 패턴 추가
|
|
107
|
+
*/
|
|
108
|
+
addPattern(patternInput: PatternCreateInput): Pattern;
|
|
109
|
+
/**
|
|
110
|
+
* 패턴 추가/업데이트
|
|
111
|
+
*/
|
|
112
|
+
upsertPattern(patternInput: PatternCreateInput): Pattern;
|
|
113
|
+
/**
|
|
114
|
+
* 패턴 조회
|
|
115
|
+
*/
|
|
116
|
+
getPattern(patternId: string): Pattern | undefined;
|
|
117
|
+
/**
|
|
118
|
+
* 패턴 업데이트
|
|
119
|
+
*/
|
|
120
|
+
updatePattern(patternId: string, updates: Partial<Omit<Pattern, 'id' | 'createdAt'>>): Pattern | undefined;
|
|
121
|
+
/**
|
|
122
|
+
* 패턴 검색
|
|
123
|
+
*/
|
|
124
|
+
findPatterns(query: PatternQuery): Pattern[];
|
|
125
|
+
/**
|
|
126
|
+
* 에이전트가 발견한 패턴 조회
|
|
127
|
+
*/
|
|
128
|
+
findPatternsByAgent(agentId: AgentId): Pattern[];
|
|
129
|
+
/**
|
|
130
|
+
* 패턴 사용 기록
|
|
131
|
+
*/
|
|
132
|
+
recordPatternUsage(patternId: string, success: boolean): void;
|
|
133
|
+
/**
|
|
134
|
+
* 패턴 삭제
|
|
135
|
+
*/
|
|
136
|
+
removePattern(patternId: string): void;
|
|
137
|
+
/**
|
|
138
|
+
* 패턴 수 조회 (deprecated: patternCount getter 사용)
|
|
139
|
+
*/
|
|
140
|
+
getPatternCount(): number;
|
|
141
|
+
/**
|
|
142
|
+
* 모든 지식 초기화
|
|
143
|
+
*/
|
|
144
|
+
clearAll(): void;
|
|
145
|
+
/**
|
|
146
|
+
* 지식 섹션 통계
|
|
147
|
+
*/
|
|
148
|
+
getStats(): {
|
|
149
|
+
facts: number;
|
|
150
|
+
inferences: number;
|
|
151
|
+
patterns: number;
|
|
152
|
+
expiredFacts: number;
|
|
153
|
+
};
|
|
154
|
+
}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module state-accessor
|
|
3
|
+
* @description 상태 섹션 접근자
|
|
4
|
+
*/
|
|
5
|
+
import type { Blackboard } from "../blackboard";
|
|
6
|
+
import type { BoardPhase } from "../../types";
|
|
7
|
+
import type { AgentStatus, AgentRole } from "../../types";
|
|
8
|
+
import { AgentStatusEnum } from "../../types";
|
|
9
|
+
import type { Task, TaskId, TaskError } from "../../types";
|
|
10
|
+
import { TaskStatus, TaskPriority } from "../../types";
|
|
11
|
+
import type { AgentId } from "../../types";
|
|
12
|
+
/**
|
|
13
|
+
* 상태 섹션 접근자
|
|
14
|
+
* @description state 섹션에 대한 타입 안전한 접근 제공
|
|
15
|
+
*/
|
|
16
|
+
export declare class StateSectionAccessor {
|
|
17
|
+
private readonly board;
|
|
18
|
+
constructor(board: Blackboard);
|
|
19
|
+
/** 현재 단계 */
|
|
20
|
+
get phase(): BoardPhase;
|
|
21
|
+
set phase(value: BoardPhase);
|
|
22
|
+
/** 컨텍스트 데이터 */
|
|
23
|
+
get context(): Record<string, unknown>;
|
|
24
|
+
setContext(key: string, value: unknown): void;
|
|
25
|
+
/**
|
|
26
|
+
* 컨텍스트 값 조회 (기본값 포함)
|
|
27
|
+
*/
|
|
28
|
+
getContext<T>(key: string, defaultValue?: T): T | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* 컨텍스트 값 조회 (기본값 포함) - 별칭 메서드
|
|
31
|
+
*/
|
|
32
|
+
getContextValue<T>(key: string, defaultValue?: T): T | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* 컨텍스트 항목 삭제
|
|
35
|
+
*/
|
|
36
|
+
deleteContext(key: string): void;
|
|
37
|
+
/**
|
|
38
|
+
* 컨텍스트 병합
|
|
39
|
+
*/
|
|
40
|
+
mergeContext(partial: Record<string, unknown>): void;
|
|
41
|
+
/**
|
|
42
|
+
* 컨텍스트 초기화
|
|
43
|
+
*/
|
|
44
|
+
clearContext(): void;
|
|
45
|
+
/**
|
|
46
|
+
* 에이전트 등록
|
|
47
|
+
* @param agent - 에이전트 상태 정보
|
|
48
|
+
*/
|
|
49
|
+
registerAgent(agent: AgentStatus): void;
|
|
50
|
+
/**
|
|
51
|
+
* 에이전트 상태 업데이트
|
|
52
|
+
* @param agentId - 에이전트 ID
|
|
53
|
+
* @param updates - 업데이트할 필드
|
|
54
|
+
*/
|
|
55
|
+
updateAgent(agentId: AgentId, updates: Partial<AgentStatus>): void;
|
|
56
|
+
/**
|
|
57
|
+
* 에이전트 제거
|
|
58
|
+
* @param agentId - 에이전트 ID
|
|
59
|
+
*/
|
|
60
|
+
removeAgent(agentId: AgentId): void;
|
|
61
|
+
/**
|
|
62
|
+
* 에이전트 조회
|
|
63
|
+
* @param agentId - 에이전트 ID
|
|
64
|
+
*/
|
|
65
|
+
getAgent(agentId: AgentId): AgentStatus | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* 모든 에이전트 조회
|
|
68
|
+
* @param filter - 필터 조건
|
|
69
|
+
*/
|
|
70
|
+
getAgents(filter?: {
|
|
71
|
+
role?: AgentRole;
|
|
72
|
+
status?: AgentStatusEnum;
|
|
73
|
+
}): AgentStatus[];
|
|
74
|
+
/**
|
|
75
|
+
* 에이전트 수 조회 (getter)
|
|
76
|
+
*/
|
|
77
|
+
get agentCount(): number;
|
|
78
|
+
/**
|
|
79
|
+
* 에이전트 수 조회 (호환성 메서드)
|
|
80
|
+
*/
|
|
81
|
+
getAgentCount(): number;
|
|
82
|
+
/**
|
|
83
|
+
* 에이전트 존재 여부 확인
|
|
84
|
+
*/
|
|
85
|
+
hasAgent(id: AgentId): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* 에이전트 하트비트 업데이트
|
|
88
|
+
*/
|
|
89
|
+
updateAgentHeartbeat(id: AgentId): void;
|
|
90
|
+
/**
|
|
91
|
+
* 활성 에이전트 수 조회 (BUSY 상태 에이전트)
|
|
92
|
+
* @description 현재 작업을 수행 중인(BUSY 상태) 에이전트의 수를 반환합니다.
|
|
93
|
+
* @deprecated 이름이 혼동스러울 수 있으므로 {@link getBusyAgentCount()} 사용 권장
|
|
94
|
+
*/
|
|
95
|
+
getActiveAgentCount(): number;
|
|
96
|
+
/**
|
|
97
|
+
* BUSY 상태 에이전트 수 조회
|
|
98
|
+
* @description 현재 작업을 수행 중인(BUSY 상태) 에이전트의 수를 반환합니다.
|
|
99
|
+
*/
|
|
100
|
+
getBusyAgentCount(): number;
|
|
101
|
+
/**
|
|
102
|
+
* 작업 추가
|
|
103
|
+
*/
|
|
104
|
+
addTask(task: Task): void;
|
|
105
|
+
/**
|
|
106
|
+
* 작업 업데이트
|
|
107
|
+
*/
|
|
108
|
+
updateTask(taskId: TaskId, updates: Partial<Task>): void;
|
|
109
|
+
/**
|
|
110
|
+
* 작업 조회
|
|
111
|
+
*/
|
|
112
|
+
getTask(taskId: TaskId): Task | undefined;
|
|
113
|
+
/**
|
|
114
|
+
* 작업 목록 조회
|
|
115
|
+
*/
|
|
116
|
+
getTasks(filter?: {
|
|
117
|
+
status?: TaskStatus;
|
|
118
|
+
assignedTo?: AgentId;
|
|
119
|
+
priority?: TaskPriority;
|
|
120
|
+
}): Task[];
|
|
121
|
+
/**
|
|
122
|
+
* 작업 삭제
|
|
123
|
+
*/
|
|
124
|
+
removeTask(taskId: TaskId): void;
|
|
125
|
+
/**
|
|
126
|
+
* 다음 실행 가능한 작업들
|
|
127
|
+
* @param completedTasks - 완료된 작업 ID 목록
|
|
128
|
+
*/
|
|
129
|
+
getNextTasks(completedTasks?: Set<TaskId>): Task[];
|
|
130
|
+
/**
|
|
131
|
+
* 에이전트의 현재 작업 조회
|
|
132
|
+
*/
|
|
133
|
+
getAgentCurrentTask(agentId: AgentId): Task | undefined;
|
|
134
|
+
/**
|
|
135
|
+
* 작업 수 조회 (getter)
|
|
136
|
+
*/
|
|
137
|
+
get taskCount(): number;
|
|
138
|
+
/**
|
|
139
|
+
* 작업 수 조회 (호환성 메서드)
|
|
140
|
+
*/
|
|
141
|
+
getTaskCount(): number;
|
|
142
|
+
/**
|
|
143
|
+
* 작업 존재 여부 확인
|
|
144
|
+
*/
|
|
145
|
+
hasTask(id: TaskId): boolean;
|
|
146
|
+
/**
|
|
147
|
+
* 작업 할당
|
|
148
|
+
* @description 에이전트 존재 여부와 상태를 검증 후 작업을 할당합니다.
|
|
149
|
+
* @param taskId - 할당할 작업 ID
|
|
150
|
+
* @param agentId - 할당받을 에이전트 ID
|
|
151
|
+
*/
|
|
152
|
+
assignTask(taskId: TaskId, agentId: AgentId): void;
|
|
153
|
+
/**
|
|
154
|
+
* 작업 할당 해제
|
|
155
|
+
*/
|
|
156
|
+
unassignTask(taskId: TaskId): void;
|
|
157
|
+
/**
|
|
158
|
+
* 작업 완료 처리
|
|
159
|
+
*/
|
|
160
|
+
completeTask(taskId: TaskId, outputs: Record<string, unknown>): void;
|
|
161
|
+
/**
|
|
162
|
+
* 작업 실패 처리
|
|
163
|
+
*/
|
|
164
|
+
failTask(taskId: TaskId, error: TaskError): void;
|
|
165
|
+
/**
|
|
166
|
+
* 실행 중인 작업 수 조회
|
|
167
|
+
*/
|
|
168
|
+
getRunningTaskCount(): number;
|
|
169
|
+
/**
|
|
170
|
+
* 대기 중인 작업 수 조회
|
|
171
|
+
*/
|
|
172
|
+
getPendingTaskCount(): number;
|
|
173
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module blackboard-events
|
|
3
|
+
* @description EventAwareBlackboard - 이벤트 발행 기능이 통합된 Blackboard
|
|
4
|
+
*/
|
|
5
|
+
import { Blackboard, type BlackboardOptions } from "./blackboard";
|
|
6
|
+
import { EventBus, type EventBusOptions } from "../events/event-bus";
|
|
7
|
+
import { EventFactory } from "../events/event-factory";
|
|
8
|
+
import type { Event as BBEvent } from "../events/types";
|
|
9
|
+
import type { AgentStatus, Task, Agenda, OpinionCreateInput, Resolution, Fact, Inference, Pattern, BoardPhase, AgentId, TaskId, AgendaId, FactCreateInput, InferenceCreateInput, PatternCreateInput, AgendaCreateInput } from "../types";
|
|
10
|
+
/**
|
|
11
|
+
* 이벤트 발행 기능이 통합된 Blackboard 옵션
|
|
12
|
+
*/
|
|
13
|
+
export interface EventAwareBlackboardOptions extends BlackboardOptions {
|
|
14
|
+
/** Event Bus 옵션 */
|
|
15
|
+
eventBusOptions?: EventBusOptions;
|
|
16
|
+
/** 자동 이벤트 발행 활성화 여부 (기본: true) */
|
|
17
|
+
autoEmitEvents?: boolean;
|
|
18
|
+
/** 이벤트 발행 실패 시 throw 여부 (기본: false) */
|
|
19
|
+
throwOnEventError?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 이벤트 발행 기능이 통합된 Blackboard
|
|
23
|
+
* @description Blackboard의 상태 변경 시 자동으로 이벤트 발행
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* import { EventAwareBlackboard, createSessionId, createAgentId } from '@obora-kit/blackboard';
|
|
28
|
+
*
|
|
29
|
+
* const board = new EventAwareBlackboard({
|
|
30
|
+
* sessionId: createSessionId('session-001'),
|
|
31
|
+
* eventBusOptions: { historySize: 1000 },
|
|
32
|
+
* });
|
|
33
|
+
*
|
|
34
|
+
* // 작업 관련 모든 이벤트 구독 (와일드카드)
|
|
35
|
+
* board.events.subscribe('task.*', (event) => {
|
|
36
|
+
* console.log(`Task event: ${event.type}`);
|
|
37
|
+
* });
|
|
38
|
+
*
|
|
39
|
+
* // 특정 이벤트 구독
|
|
40
|
+
* board.events.subscribe('decision.consensus.reached', (event) => {
|
|
41
|
+
* console.log(`Consensus reached`);
|
|
42
|
+
* });
|
|
43
|
+
*
|
|
44
|
+
* // 상태 변경 시 자동으로 이벤트 발행됨
|
|
45
|
+
* board.setPhase('discussion'); // → PhaseChangedEvent 발행
|
|
46
|
+
* board.submitAgenda({...}); // → AgendaSubmittedEvent 발행
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare class EventAwareBlackboard extends Blackboard {
|
|
50
|
+
/** Event Bus 인스턴스 */
|
|
51
|
+
readonly events: EventBus;
|
|
52
|
+
/** Event Factory 인스턴스 */
|
|
53
|
+
readonly eventFactory: EventFactory;
|
|
54
|
+
private _autoEmitEvents;
|
|
55
|
+
private readonly _throwOnEventError;
|
|
56
|
+
constructor(options?: EventAwareBlackboardOptions);
|
|
57
|
+
private generateEventId;
|
|
58
|
+
private emitEvent;
|
|
59
|
+
/** 자동 이벤트 발행 활성화/비활성화 */
|
|
60
|
+
setAutoEmit(enabled: boolean): void;
|
|
61
|
+
/** 수동 이벤트 발행 */
|
|
62
|
+
emitCustomEvent<T extends BBEvent>(event: T): void;
|
|
63
|
+
/** 수동 비동기 이벤트 발행 */
|
|
64
|
+
emitCustomEventAsync<T extends BBEvent>(event: T): Promise<void>;
|
|
65
|
+
/** 단계 설정 */
|
|
66
|
+
setPhase(newPhase: BoardPhase): void;
|
|
67
|
+
/** 컨텍스트 설정 */
|
|
68
|
+
setContext(key: string, value: unknown): void;
|
|
69
|
+
/** 에이전트 등록 */
|
|
70
|
+
registerAgent(agent: AgentStatus): void;
|
|
71
|
+
/** 에이전트 업데이트 */
|
|
72
|
+
updateAgent(agentId: AgentId, updates: Partial<AgentStatus>): void;
|
|
73
|
+
/** 에이전트 제거 */
|
|
74
|
+
removeAgent(agentId: AgentId, reason?: string): void;
|
|
75
|
+
/** 작업 추가 */
|
|
76
|
+
addTask(task: Task): void;
|
|
77
|
+
/** 작업 업데이트 */
|
|
78
|
+
updateTask(taskId: TaskId, updates: Partial<Task>): void;
|
|
79
|
+
/** 사실 추가 */
|
|
80
|
+
addFact(factInput: FactCreateInput): Fact;
|
|
81
|
+
/** 추론 추가 */
|
|
82
|
+
addInference(inferenceInput: InferenceCreateInput): Inference;
|
|
83
|
+
/** 패턴 추가/업데이트 */
|
|
84
|
+
upsertPattern(patternInput: PatternCreateInput): Pattern;
|
|
85
|
+
/** 안건 제출 */
|
|
86
|
+
submitAgenda(agendaInput: AgendaCreateInput): Agenda;
|
|
87
|
+
/** 현재 안건 설정 */
|
|
88
|
+
setCurrentAgenda(agendaId: AgendaId): void;
|
|
89
|
+
/** 안건 취소 */
|
|
90
|
+
cancelAgenda(agendaId: AgendaId, reason: string): void;
|
|
91
|
+
/** 의견 제출 */
|
|
92
|
+
submitOpinion(opinionInput: OpinionCreateInput & {
|
|
93
|
+
agentId: AgentId;
|
|
94
|
+
}): void;
|
|
95
|
+
/** 결정 기록 */
|
|
96
|
+
recordResolution(resolutionInput: Omit<Resolution, "id" | "createdAt" | "updatedAt">): Resolution;
|
|
97
|
+
/** 스냅샷 생성 이벤트 발행 */
|
|
98
|
+
emitSnapshotCreated(snapshotId: string): void;
|
|
99
|
+
/** 스냅샷 복원 이벤트 발행 */
|
|
100
|
+
emitSnapshotRestored(snapshotId: string): void;
|
|
101
|
+
/** 시스템 에러 이벤트 발행 */
|
|
102
|
+
emitSystemError(code: string, message: string, details?: unknown): void;
|
|
103
|
+
/** 버전 충돌 이벤트 발행 */
|
|
104
|
+
emitVersionConflict(path: string, expectedVersion: number, actualVersion: number): void;
|
|
105
|
+
}
|