@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,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module base
|
|
3
|
+
* @description 기본 타입 정의 - ID 타입, 공통 인터페이스
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 고유 식별자 타입들
|
|
7
|
+
* @description 브랜드 타입을 사용하여 타입 안전성을 확보
|
|
8
|
+
*/
|
|
9
|
+
/** 에이전트 고유 ID 타입 */
|
|
10
|
+
export type AgentId = string & {
|
|
11
|
+
readonly __brand: 'AgentId';
|
|
12
|
+
};
|
|
13
|
+
/** 작업 고유 ID 타입 */
|
|
14
|
+
export type TaskId = string & {
|
|
15
|
+
readonly __brand: 'TaskId';
|
|
16
|
+
};
|
|
17
|
+
/** 안건 고유 ID 타입 */
|
|
18
|
+
export type AgendaId = string & {
|
|
19
|
+
readonly __brand: 'AgendaId';
|
|
20
|
+
};
|
|
21
|
+
/** 세션 고유 ID 타입 */
|
|
22
|
+
export type SessionId = string & {
|
|
23
|
+
readonly __brand: 'SessionId';
|
|
24
|
+
};
|
|
25
|
+
/** 사실 고유 ID 타입 */
|
|
26
|
+
export type FactId = string & {
|
|
27
|
+
readonly __brand: 'FactId';
|
|
28
|
+
};
|
|
29
|
+
/** 추론 고유 ID 타입 */
|
|
30
|
+
export type InferenceId = string & {
|
|
31
|
+
readonly __brand: 'InferenceId';
|
|
32
|
+
};
|
|
33
|
+
/** 패턴 고유 ID 타입 */
|
|
34
|
+
export type PatternId = string & {
|
|
35
|
+
readonly __brand: 'PatternId';
|
|
36
|
+
};
|
|
37
|
+
/** 의견 고유 ID 타입 */
|
|
38
|
+
export type OpinionId = string & {
|
|
39
|
+
readonly __brand: 'OpinionId';
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* 타입 가드 및 생성 함수
|
|
43
|
+
*/
|
|
44
|
+
/**
|
|
45
|
+
* 에이전트 ID 생성 함수
|
|
46
|
+
* @param id - 원본 문자열 ID
|
|
47
|
+
* @returns 브랜드 타입이 적용된 AgentId
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const agentId = createAgentId('agent-001');
|
|
51
|
+
* // 타입: AgentId
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export declare function createAgentId(id: string): AgentId;
|
|
55
|
+
/**
|
|
56
|
+
* 작업 ID 생성 함수
|
|
57
|
+
* @param id - 원본 문자열 ID
|
|
58
|
+
* @returns 브랜드 타입이 적용된 TaskId
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* const taskId = createTaskId('task-001');
|
|
62
|
+
* // 타입: TaskId
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export declare function createTaskId(id: string): TaskId;
|
|
66
|
+
/**
|
|
67
|
+
* 안건 ID 생성 함수
|
|
68
|
+
* @param id - 원본 문자열 ID
|
|
69
|
+
* @returns 브랜드 타입이 적용된 AgendaId
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* const agendaId = createAgendaId('agenda-001');
|
|
73
|
+
* // 타입: AgendaId
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export declare function createAgendaId(id: string): AgendaId;
|
|
77
|
+
/**
|
|
78
|
+
* 세션 ID 생성 함수
|
|
79
|
+
* @param id - 원본 문자열 ID
|
|
80
|
+
* @returns 브랜드 타입이 적용된 SessionId
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* const sessionId = createSessionId('session-001');
|
|
84
|
+
* // 타입: SessionId
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
export declare function createSessionId(id: string): SessionId;
|
|
88
|
+
/**
|
|
89
|
+
* 사실 ID 생성 함수
|
|
90
|
+
* @param id - 원본 문자열 ID
|
|
91
|
+
* @returns 브랜드 타입이 적용된 FactId
|
|
92
|
+
* @example
|
|
93
|
+
* ```typescript
|
|
94
|
+
* const factId = createFactId('fact-001');
|
|
95
|
+
* // 타입: FactId
|
|
96
|
+
* ```
|
|
97
|
+
*/
|
|
98
|
+
export declare function createFactId(id: string): FactId;
|
|
99
|
+
/**
|
|
100
|
+
* 추론 ID 생성 함수
|
|
101
|
+
* @param id - 원본 문자열 ID
|
|
102
|
+
* @returns 브랜드 타입이 적용된 InferenceId
|
|
103
|
+
* @example
|
|
104
|
+
* ```typescript
|
|
105
|
+
* const inferenceId = createInferenceId('inference-001');
|
|
106
|
+
* // 타입: InferenceId
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
export declare function createInferenceId(id: string): InferenceId;
|
|
110
|
+
/**
|
|
111
|
+
* 패턴 ID 생성 함수
|
|
112
|
+
* @param id - 원본 문자열 ID
|
|
113
|
+
* @returns 브랜드 타입이 적용된 PatternId
|
|
114
|
+
* @example
|
|
115
|
+
* ```typescript
|
|
116
|
+
* const patternId = createPatternId('pattern-001');
|
|
117
|
+
* // 타입: PatternId
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
export declare function createPatternId(id: string): PatternId;
|
|
121
|
+
/**
|
|
122
|
+
* 의견 ID 생성 함수
|
|
123
|
+
* @param id - 원본 문자열 ID
|
|
124
|
+
* @returns 브랜드 타입이 적용된 OpinionId
|
|
125
|
+
* @example
|
|
126
|
+
* ```typescript
|
|
127
|
+
* const opinionId = createOpinionId('opinion-001');
|
|
128
|
+
* // 타입: OpinionId
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
export declare function createOpinionId(id: string): OpinionId;
|
|
132
|
+
/**
|
|
133
|
+
* 에이전트 ID 타입 가드
|
|
134
|
+
* @param value - 확인할 값
|
|
135
|
+
* @returns AgentId 여부
|
|
136
|
+
* @example
|
|
137
|
+
* ```typescript
|
|
138
|
+
* const value = 'agent-001';
|
|
139
|
+
* if (isAgentId(value)) {
|
|
140
|
+
* // value는 AgentId로 취급됨
|
|
141
|
+
* }
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
export declare function isAgentId(value: unknown): value is AgentId;
|
|
145
|
+
/**
|
|
146
|
+
* 작업 ID 타입 가드
|
|
147
|
+
* @param value - 확인할 값
|
|
148
|
+
* @returns TaskId 여부
|
|
149
|
+
* @example
|
|
150
|
+
* ```typescript
|
|
151
|
+
* const value = 'task-001';
|
|
152
|
+
* if (isTaskId(value)) {
|
|
153
|
+
* // value는 TaskId로 취급됨
|
|
154
|
+
* }
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
export declare function isTaskId(value: unknown): value is TaskId;
|
|
158
|
+
/**
|
|
159
|
+
* 안건 ID 타입 가드
|
|
160
|
+
* @param value - 확인할 값
|
|
161
|
+
* @returns AgendaId 여부
|
|
162
|
+
* @example
|
|
163
|
+
* ```typescript
|
|
164
|
+
* const value = 'agenda-001';
|
|
165
|
+
* if (isAgendaId(value)) {
|
|
166
|
+
* // value는 AgendaId로 취급됨
|
|
167
|
+
* }
|
|
168
|
+
* ```
|
|
169
|
+
*/
|
|
170
|
+
export declare function isAgendaId(value: unknown): value is AgendaId;
|
|
171
|
+
/**
|
|
172
|
+
* 세션 ID 타입 가드
|
|
173
|
+
* @param value - 확인할 값
|
|
174
|
+
* @returns SessionId 여부
|
|
175
|
+
* @example
|
|
176
|
+
* ```typescript
|
|
177
|
+
* const value = 'session-001';
|
|
178
|
+
* if (isSessionId(value)) {
|
|
179
|
+
* // value는 SessionId로 취급됨
|
|
180
|
+
* }
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
export declare function isSessionId(value: unknown): value is SessionId;
|
|
184
|
+
/**
|
|
185
|
+
* 공통 인터페이스
|
|
186
|
+
*/
|
|
187
|
+
/**
|
|
188
|
+
* 타임스탬프가 포함된 기본 엔티티
|
|
189
|
+
* @description 생성 및 수정 시간을 추적하는 엔티티
|
|
190
|
+
*/
|
|
191
|
+
export interface Timestamped {
|
|
192
|
+
/** 생성 시간 */
|
|
193
|
+
readonly createdAt: Date;
|
|
194
|
+
/** 마지막 수정 시간 */
|
|
195
|
+
readonly updatedAt: Date;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* 버전 관리가 포함된 엔티티
|
|
199
|
+
* @description optimistic locking 및 변경 이력 추적용 버전 필드
|
|
200
|
+
*/
|
|
201
|
+
export interface Versioned {
|
|
202
|
+
/** 버전 번호 */
|
|
203
|
+
readonly version: number;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* 식별 가능한 엔티티
|
|
207
|
+
* @description 고유 ID를 가진 엔티티
|
|
208
|
+
* @typeParam T - ID 타입 (기본값: string)
|
|
209
|
+
*/
|
|
210
|
+
export interface Identifiable<T extends string = string> {
|
|
211
|
+
/** 고유 식별자 */
|
|
212
|
+
readonly id: T;
|
|
213
|
+
}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module blackboard
|
|
3
|
+
* @description Blackboard 상태 스키마 정의 - 전체 시스템 상태
|
|
4
|
+
*/
|
|
5
|
+
import type { AgentId, TaskId, SessionId } from './base';
|
|
6
|
+
import type { AgentStatus } from './agent';
|
|
7
|
+
import type { Task } from './task';
|
|
8
|
+
import type { Agenda, Opinion, Resolution } from './decision';
|
|
9
|
+
import type { Fact, Inference, Pattern } from './knowledge';
|
|
10
|
+
/**
|
|
11
|
+
* 이사회 회의 단계
|
|
12
|
+
* @description 이사회(Blackboard)의 현재 진행 단계
|
|
13
|
+
*/
|
|
14
|
+
export type BoardPhase = 'idle' | 'agenda_setting' | 'discussion' | 'debate' | 'voting' | 'resolved';
|
|
15
|
+
/**
|
|
16
|
+
* Blackboard 메타데이터
|
|
17
|
+
* @description Blackboard 상태의 메타데이터
|
|
18
|
+
*/
|
|
19
|
+
export interface BlackboardMeta {
|
|
20
|
+
/** 상태 버전 (optimistic locking용) */
|
|
21
|
+
version: number;
|
|
22
|
+
/** 마지막 업데이트 시간 */
|
|
23
|
+
lastUpdated: Date;
|
|
24
|
+
/** 현재 세션 ID */
|
|
25
|
+
sessionId: SessionId;
|
|
26
|
+
/** 생성 시간 */
|
|
27
|
+
createdAt: Date;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 상태 섹션
|
|
31
|
+
* @description 현재 시스템 상태를 담는 섹션
|
|
32
|
+
*/
|
|
33
|
+
export interface StateSection {
|
|
34
|
+
/** 현재 단계 */
|
|
35
|
+
phase: BoardPhase;
|
|
36
|
+
/** 컨텍스트 데이터 */
|
|
37
|
+
context: Record<string, unknown>;
|
|
38
|
+
/** 에이전트 상태 맵 */
|
|
39
|
+
agents: Map<AgentId, AgentStatus>;
|
|
40
|
+
/** 작업 맵 */
|
|
41
|
+
tasks: Map<TaskId, Task>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 지식 섹션
|
|
45
|
+
* @description 축적된 지식을 담는 섹션
|
|
46
|
+
*/
|
|
47
|
+
export interface KnowledgeSection {
|
|
48
|
+
/** 사실 목록 */
|
|
49
|
+
facts: Fact[];
|
|
50
|
+
/** 추론 목록 */
|
|
51
|
+
inferences: Inference[];
|
|
52
|
+
/** 패턴 목록 */
|
|
53
|
+
patterns: Pattern[];
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* 의사결정 섹션
|
|
57
|
+
* @description 안건 및 결정을 담는 섹션
|
|
58
|
+
*/
|
|
59
|
+
export interface DecisionsSection {
|
|
60
|
+
/** 현재 논의 중인 안건 */
|
|
61
|
+
current: Agenda | null;
|
|
62
|
+
/** 대기 중인 안건들 */
|
|
63
|
+
pending: Agenda[];
|
|
64
|
+
/** 의견 맵 (키: agendaId:agentId) */
|
|
65
|
+
opinions: Map<string, Opinion>;
|
|
66
|
+
/** 결정 이력 */
|
|
67
|
+
history: Resolution[];
|
|
68
|
+
/** 투표 세션 맵 (키: sessionId 또는 agendaId) */
|
|
69
|
+
voting: Record<string, VotingSession>;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* 투표 세션
|
|
73
|
+
* @description DirectorAgent.startVotingSession/tallyVotes 지원
|
|
74
|
+
*/
|
|
75
|
+
export interface VotingSession {
|
|
76
|
+
/** 시작 시간 */
|
|
77
|
+
started: Date;
|
|
78
|
+
/** 참여자 목록 */
|
|
79
|
+
participants: string[];
|
|
80
|
+
/** 투표 기록 */
|
|
81
|
+
votes: Record<string, unknown>;
|
|
82
|
+
/** 세션 상태 */
|
|
83
|
+
status: 'in-progress' | 'completed' | 'cancelled';
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 전체 Blackboard 상태
|
|
87
|
+
* @description 시스템의 단일 진실 소스 (SSOT)
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* import { createSessionId } from './base';
|
|
92
|
+
*
|
|
93
|
+
* const blackboardState: BlackboardState = {
|
|
94
|
+
* meta: {
|
|
95
|
+
* version: 1,
|
|
96
|
+
* lastUpdated: new Date(),
|
|
97
|
+
* sessionId: createSessionId('session-001'),
|
|
98
|
+
* createdAt: new Date(),
|
|
99
|
+
* },
|
|
100
|
+
* state: {
|
|
101
|
+
* phase: 'idle',
|
|
102
|
+
* context: {},
|
|
103
|
+
* agents: new Map(),
|
|
104
|
+
* tasks: new Map(),
|
|
105
|
+
* },
|
|
106
|
+
* knowledge: {
|
|
107
|
+
* facts: [],
|
|
108
|
+
* inferences: [],
|
|
109
|
+
* patterns: [],
|
|
110
|
+
* },
|
|
111
|
+
* decisions: {
|
|
112
|
+
* current: null,
|
|
113
|
+
* pending: [],
|
|
114
|
+
* opinions: new Map(),
|
|
115
|
+
* history: [],
|
|
116
|
+
* },
|
|
117
|
+
* };
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
export interface BlackboardState {
|
|
121
|
+
/** 메타데이터 */
|
|
122
|
+
meta: BlackboardMeta;
|
|
123
|
+
/** 상태 섹션 */
|
|
124
|
+
state: StateSection;
|
|
125
|
+
/** 지식 섹션 */
|
|
126
|
+
knowledge: KnowledgeSection;
|
|
127
|
+
/** 의사결정 섹션 */
|
|
128
|
+
decisions: DecisionsSection;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Blackboard 초기 상태 생성 옵션
|
|
132
|
+
* @description 새 Blackboard 인스턴스 생성 시 필요한 옵션
|
|
133
|
+
*/
|
|
134
|
+
export interface BlackboardCreateOptions {
|
|
135
|
+
/** 세션 ID (없으면 자동 생성) */
|
|
136
|
+
sessionId?: SessionId;
|
|
137
|
+
/** 초기 단계 (기본: idle) */
|
|
138
|
+
initialPhase?: BoardPhase;
|
|
139
|
+
/** 초기 컨텍스트 데이터 */
|
|
140
|
+
initialContext?: Record<string, unknown>;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* 상태 업데이트 요청
|
|
144
|
+
* @description Blackboard 상태 업데이트를 위한 요청
|
|
145
|
+
*/
|
|
146
|
+
export interface StateUpdateRequest {
|
|
147
|
+
/** 업데이트할 섹션 */
|
|
148
|
+
section: 'state' | 'knowledge' | 'decisions';
|
|
149
|
+
/** 업데이트 유형 */
|
|
150
|
+
type: 'create' | 'update' | 'delete';
|
|
151
|
+
/** 업데이트할 경로 */
|
|
152
|
+
path: string;
|
|
153
|
+
/** 새 데이터 (create/update 시) */
|
|
154
|
+
data?: unknown;
|
|
155
|
+
/** 기대 버전 (optimistic locking용) */
|
|
156
|
+
expectedVersion?: number;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* 상태 업데이트 결과
|
|
160
|
+
* @description 상태 업데이트 작업의 결과
|
|
161
|
+
*/
|
|
162
|
+
export interface StateUpdateResult {
|
|
163
|
+
/** 성공 여부 */
|
|
164
|
+
success: boolean;
|
|
165
|
+
/** 새 버전 */
|
|
166
|
+
version: number;
|
|
167
|
+
/** 업데이트 시간 */
|
|
168
|
+
updatedAt: Date;
|
|
169
|
+
/** 에러 정보 (실패 시) */
|
|
170
|
+
error?: {
|
|
171
|
+
code: string;
|
|
172
|
+
message: string;
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Blackboard 이벤트 타입
|
|
177
|
+
* @description Blackboard에서 발생하는 이벤트의 종류
|
|
178
|
+
*/
|
|
179
|
+
export type BlackboardEventType = 'phase_changed' | 'agent_joined' | 'agent_left' | 'agent_status_changed' | 'task_created' | 'task_updated' | 'task_completed' | 'agenda_submitted' | 'agenda_updated' | 'opinion_added' | 'resolution_created';
|
|
180
|
+
/**
|
|
181
|
+
* Blackboard 이벤트
|
|
182
|
+
* @description Blackboard에서 발생하는 이벤트 정보
|
|
183
|
+
*/
|
|
184
|
+
export interface BlackboardEvent {
|
|
185
|
+
/** 이벤트 타입 */
|
|
186
|
+
type: BlackboardEventType;
|
|
187
|
+
/** 이벤트 발생 시간 */
|
|
188
|
+
timestamp: Date;
|
|
189
|
+
/** 이벤트 데이터 */
|
|
190
|
+
data: unknown;
|
|
191
|
+
/** 관련 엔티티 ID (있는 경우) */
|
|
192
|
+
entityId?: string;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Blackboard 통계
|
|
196
|
+
* @description Blackboard의 현재 상태 통계
|
|
197
|
+
*/
|
|
198
|
+
export interface BlackboardStats {
|
|
199
|
+
/** 현재 단계 */
|
|
200
|
+
phase: BoardPhase;
|
|
201
|
+
/** 참여 중인 에이전트 수 */
|
|
202
|
+
activeAgents: number;
|
|
203
|
+
/** 총 작업 수 */
|
|
204
|
+
totalTasks: number;
|
|
205
|
+
/** 실행 중인 작업 수 */
|
|
206
|
+
runningTasks: number;
|
|
207
|
+
/** 대기 중인 안건 수 */
|
|
208
|
+
pendingAgendas: number;
|
|
209
|
+
/** 총 사실 수 */
|
|
210
|
+
totalFacts: number;
|
|
211
|
+
/** 총 추론 수 */
|
|
212
|
+
totalInferences: number;
|
|
213
|
+
/** 총 패턴 수 */
|
|
214
|
+
totalPatterns: number;
|
|
215
|
+
/** 총 결정 수 */
|
|
216
|
+
totalResolutions: number;
|
|
217
|
+
}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module decision
|
|
3
|
+
* @description 의사결정 관련 타입 정의 - Agenda, Opinion, Resolution
|
|
4
|
+
*/
|
|
5
|
+
import type { Identifiable, Timestamped, Versioned } from "./base";
|
|
6
|
+
import type { AgentId, AgendaId, OpinionId } from "./base";
|
|
7
|
+
/**
|
|
8
|
+
* 투표 방식
|
|
9
|
+
* @description 안건 결정을 위한 투표 방식
|
|
10
|
+
*/
|
|
11
|
+
export type VotingMethod = "majority" | "unanimous" | "weighted" | "supermajority";
|
|
12
|
+
/**
|
|
13
|
+
* 안건 상태
|
|
14
|
+
* @description 안건의 현재 진행 상태
|
|
15
|
+
*/
|
|
16
|
+
export declare enum AgendaStatus {
|
|
17
|
+
/** 초안 - 아직 제출되지 않음 */
|
|
18
|
+
DRAFT = "draft",
|
|
19
|
+
/** 제출됨 - 논의 대기 */
|
|
20
|
+
SUBMITTED = "submitted",
|
|
21
|
+
/** 논의 중 */
|
|
22
|
+
DISCUSSING = "discussing",
|
|
23
|
+
/** 토론 중 */
|
|
24
|
+
DEBATING = "debating",
|
|
25
|
+
/** 투표 중 */
|
|
26
|
+
VOTING = "voting",
|
|
27
|
+
/** 결정됨 */
|
|
28
|
+
RESOLVED = "resolved",
|
|
29
|
+
/** 연기됨 */
|
|
30
|
+
DEFERRED = "deferred",
|
|
31
|
+
/** 취소됨 */
|
|
32
|
+
CANCELLED = "cancelled"
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* 입장 (스탠스)
|
|
36
|
+
* @description 의견 제출자의 입장
|
|
37
|
+
*/
|
|
38
|
+
export type Stance = "approve" | "reject" | "conditional" | "abstain";
|
|
39
|
+
/**
|
|
40
|
+
* 최종 결정 유형
|
|
41
|
+
* @description 안건에 대한 최종 결정의 유형
|
|
42
|
+
*/
|
|
43
|
+
export type DecisionType = "approved" | "rejected" | "deferred" | "amended";
|
|
44
|
+
/**
|
|
45
|
+
* 첨부 자료
|
|
46
|
+
* @description 안건에 첨부된 문서, 데이터 등
|
|
47
|
+
*/
|
|
48
|
+
export interface Attachment {
|
|
49
|
+
/** 파일명 */
|
|
50
|
+
name: string;
|
|
51
|
+
/** MIME 타입 */
|
|
52
|
+
mimeType: string;
|
|
53
|
+
/** URL 또는 데이터 참조 */
|
|
54
|
+
url: string;
|
|
55
|
+
/** 크기 (바이트) */
|
|
56
|
+
size: number;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* 안건 (의제)
|
|
60
|
+
* @description AI 이사회에서 논의할 주제
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* const agenda: Agenda = {
|
|
65
|
+
* id: createAgendaId('agenda-001'),
|
|
66
|
+
* title: '신규 서비스 출시 검토',
|
|
67
|
+
* description: 'Q2에 출시 예정인 신규 서비스의 적합성 검토',
|
|
68
|
+
* proposer: createAgentId('ceo-agent'),
|
|
69
|
+
* status: AgendaStatus.SUBMITTED,
|
|
70
|
+
* deadline: new Date('2026-02-10'),
|
|
71
|
+
* requiredQuorum: 3,
|
|
72
|
+
* votingMethod: 'majority',
|
|
73
|
+
* priority: 1,
|
|
74
|
+
* tags: ['business', 'strategy'],
|
|
75
|
+
* attachments: [],
|
|
76
|
+
* createdAt: new Date(),
|
|
77
|
+
* updatedAt: new Date(),
|
|
78
|
+
* version: 1,
|
|
79
|
+
* };
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export interface Agenda extends Identifiable<AgendaId>, Timestamped, Versioned {
|
|
83
|
+
/** 안건 제목 */
|
|
84
|
+
title: string;
|
|
85
|
+
/** 안건 상세 설명 */
|
|
86
|
+
description: string;
|
|
87
|
+
/** 제안자 에이전트 ID */
|
|
88
|
+
proposer: AgentId;
|
|
89
|
+
/** 현재 상태 */
|
|
90
|
+
status: AgendaStatus;
|
|
91
|
+
/** 마감 기한 (선택) */
|
|
92
|
+
deadline: Date | null;
|
|
93
|
+
/** 필요 정족수 */
|
|
94
|
+
requiredQuorum: number;
|
|
95
|
+
/** 투표 방식 */
|
|
96
|
+
votingMethod: VotingMethod;
|
|
97
|
+
/** 우선순위 (0-10, 높을수록 중요) */
|
|
98
|
+
priority: number;
|
|
99
|
+
/** 태그 */
|
|
100
|
+
tags: string[];
|
|
101
|
+
/** 첨부 자료 */
|
|
102
|
+
attachments: Attachment[];
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* 의견
|
|
106
|
+
* @description 에이전트가 안건에 대해 제출하는 의견
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* const opinion: Opinion = {
|
|
111
|
+
* id: createOpinionId('opinion-001'),
|
|
112
|
+
* agentId: createAgentId('agent-001'),
|
|
113
|
+
* agendaId: createAgendaId('agenda-001'),
|
|
114
|
+
* stance: 'approve',
|
|
115
|
+
* reason: '시장 조사 결과가 긍정적임',
|
|
116
|
+
* conditions: ['마케팅 예산 확보 필요'],
|
|
117
|
+
* confidence: 0.85,
|
|
118
|
+
* references: ['fact-001', 'inference-002'],
|
|
119
|
+
* createdAt: new Date(),
|
|
120
|
+
* updatedAt: new Date(),
|
|
121
|
+
* };
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
export interface Opinion extends Identifiable<OpinionId>, Timestamped {
|
|
125
|
+
/** 의견 제출자 */
|
|
126
|
+
agentId: AgentId;
|
|
127
|
+
/** 관련 안건 ID */
|
|
128
|
+
agendaId: AgendaId;
|
|
129
|
+
/** 입장 */
|
|
130
|
+
stance: Stance;
|
|
131
|
+
/** 의견 내용 (근거) */
|
|
132
|
+
reason: string;
|
|
133
|
+
/** 조건 (conditional일 경우) */
|
|
134
|
+
conditions: string[];
|
|
135
|
+
/** 확신도 (0.0 - 1.0) */
|
|
136
|
+
confidence: number;
|
|
137
|
+
/** 참조한 사실/추론 ID 목록 */
|
|
138
|
+
references: string[];
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* 투표 요약
|
|
142
|
+
* @description 투표 결과의 요약 통계
|
|
143
|
+
*/
|
|
144
|
+
export interface VoteSummary {
|
|
145
|
+
/** 찬성 수 */
|
|
146
|
+
approve: number;
|
|
147
|
+
/** 반대 수 */
|
|
148
|
+
reject: number;
|
|
149
|
+
/** 기권 수 */
|
|
150
|
+
abstain: number;
|
|
151
|
+
/** 조건부 찬성 수 */
|
|
152
|
+
conditional: number;
|
|
153
|
+
/** 총 투표 수 */
|
|
154
|
+
total: number;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* 다음 단계 행동
|
|
158
|
+
* @description 결정 후 이행할 행동 항목
|
|
159
|
+
*/
|
|
160
|
+
export interface NextAction {
|
|
161
|
+
/** 행동 설명 */
|
|
162
|
+
description: string;
|
|
163
|
+
/** 담당자 */
|
|
164
|
+
assignee: AgentId | null;
|
|
165
|
+
/** 기한 */
|
|
166
|
+
dueDate: Date | null;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* 결정 (해결)
|
|
170
|
+
* @description 안건에 대한 최종 결정 기록
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```typescript
|
|
174
|
+
* const resolution: Resolution = {
|
|
175
|
+
* id: 'res-001',
|
|
176
|
+
* agendaId: createAgendaId('agenda-001'),
|
|
177
|
+
* decision: 'approved',
|
|
178
|
+
* summary: '신규 서비스 출시 승인',
|
|
179
|
+
* voteSummary: {
|
|
180
|
+
* approve: 3,
|
|
181
|
+
* reject: 1,
|
|
182
|
+
* abstain: 0,
|
|
183
|
+
* conditional: 0,
|
|
184
|
+
* total: 4,
|
|
185
|
+
* },
|
|
186
|
+
* conditions: ['Q2 내 출시'],
|
|
187
|
+
* dissent: ['보안 검토 필요'],
|
|
188
|
+
* decidedBy: createAgentId('director-agent'),
|
|
189
|
+
* nextActions: [
|
|
190
|
+
* {
|
|
191
|
+
* description: '출시 계획 수립',
|
|
192
|
+
* assignee: createAgentId('pm-agent'),
|
|
193
|
+
* dueDate: new Date('2026-02-15'),
|
|
194
|
+
* },
|
|
195
|
+
* ],
|
|
196
|
+
* createdAt: new Date(),
|
|
197
|
+
* updatedAt: new Date(),
|
|
198
|
+
* };
|
|
199
|
+
* ```
|
|
200
|
+
*/
|
|
201
|
+
export interface Resolution extends Identifiable, Timestamped {
|
|
202
|
+
/** 관련 안건 ID */
|
|
203
|
+
agendaId: AgendaId;
|
|
204
|
+
/** 결정 유형 */
|
|
205
|
+
decision: DecisionType;
|
|
206
|
+
/** 결정 요약 */
|
|
207
|
+
summary: string;
|
|
208
|
+
/** 투표 결과 요약 */
|
|
209
|
+
voteSummary: VoteSummary;
|
|
210
|
+
/** 이행 조건 (있는 경우) */
|
|
211
|
+
conditions: string[];
|
|
212
|
+
/** 반대 의견 요약 (있는 경우) */
|
|
213
|
+
dissent: string[];
|
|
214
|
+
/** 결정 주체 (director) */
|
|
215
|
+
decidedBy: AgentId;
|
|
216
|
+
/** 다음 단계 행동 */
|
|
217
|
+
nextActions: NextAction[];
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* 안건 생성 옵션
|
|
221
|
+
* @description 새 안건 생성 시 필요한 필드
|
|
222
|
+
*/
|
|
223
|
+
export interface AgendaCreateInput {
|
|
224
|
+
/** 안건 제목 */
|
|
225
|
+
title: string;
|
|
226
|
+
/** 안건 상세 설명 */
|
|
227
|
+
description: string;
|
|
228
|
+
/** 제안자 에이전트 ID */
|
|
229
|
+
proposer: AgentId;
|
|
230
|
+
/** 마감 기한 (선택) */
|
|
231
|
+
deadline?: Date | null;
|
|
232
|
+
/** 필요 정족수 (기본: 3) */
|
|
233
|
+
requiredQuorum?: number;
|
|
234
|
+
/** 투표 방식 (기본: majority) */
|
|
235
|
+
votingMethod?: VotingMethod;
|
|
236
|
+
/** 우선순위 (기본: 1) */
|
|
237
|
+
priority?: number;
|
|
238
|
+
/** 태그 */
|
|
239
|
+
tags?: string[];
|
|
240
|
+
/** 첨부 자료 */
|
|
241
|
+
attachments?: Attachment[];
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* 의견 생성 옵션
|
|
245
|
+
* @description 새 의견 제출 시 필요한 필드
|
|
246
|
+
*/
|
|
247
|
+
export interface OpinionCreateInput {
|
|
248
|
+
/** 관련 안건 ID */
|
|
249
|
+
agendaId: AgendaId;
|
|
250
|
+
/** 입장 */
|
|
251
|
+
stance: Stance;
|
|
252
|
+
/** 의견 내용 (근거) */
|
|
253
|
+
reason: string;
|
|
254
|
+
/** 조건 (conditional일 경우) */
|
|
255
|
+
conditions?: string[];
|
|
256
|
+
/** 확신도 (기본: 1.0) */
|
|
257
|
+
confidence?: number;
|
|
258
|
+
/** 참조한 사실/추론 ID 목록 */
|
|
259
|
+
references?: string[];
|
|
260
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module index
|
|
3
|
+
* @description 메인 export - 모든 타입의 진입점
|
|
4
|
+
*/
|
|
5
|
+
export * from './base';
|
|
6
|
+
export * from './agent';
|
|
7
|
+
export * from './task';
|
|
8
|
+
export * from './decision';
|
|
9
|
+
export * from './knowledge';
|
|
10
|
+
export * from './message';
|
|
11
|
+
export * from './blackboard';
|
|
12
|
+
export * from './tkg';
|