@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,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';
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module knowledge
|
|
3
|
+
* @description 지식 관련 타입 정의 - Fact, Inference, Pattern
|
|
4
|
+
*/
|
|
5
|
+
import type { Identifiable, Timestamped } from './base';
|
|
6
|
+
import type { AgentId } from './base';
|
|
7
|
+
/**
|
|
8
|
+
* 추론 방법
|
|
9
|
+
* @description 사실로부터 결론을 도출하는 방법
|
|
10
|
+
*/
|
|
11
|
+
export type InferenceMethod = 'deduction' | 'induction' | 'abduction';
|
|
12
|
+
/**
|
|
13
|
+
* 사실 (Fact)
|
|
14
|
+
* @description 검증된 정보
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const fact: Fact = {
|
|
19
|
+
* id: 'fact-001',
|
|
20
|
+
* content: '2025년 Q4 매출이 전년 대비 20% 증가',
|
|
21
|
+
* source: createAgentId('analyst-agent'),
|
|
22
|
+
* confidence: 0.95,
|
|
23
|
+
* category: 'finance',
|
|
24
|
+
* tags: ['revenue', 'growth'],
|
|
25
|
+
* expiresAt: null,
|
|
26
|
+
* createdAt: new Date(),
|
|
27
|
+
* updatedAt: new Date(),
|
|
28
|
+
* };
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export interface Fact extends Identifiable, Timestamped {
|
|
32
|
+
/** 사실 내용 */
|
|
33
|
+
content: string;
|
|
34
|
+
/** 출처 에이전트 */
|
|
35
|
+
source: AgentId;
|
|
36
|
+
/** 신뢰도 (0.0 - 1.0) */
|
|
37
|
+
confidence: number;
|
|
38
|
+
/** 카테고리 */
|
|
39
|
+
category: string;
|
|
40
|
+
/** 태그 */
|
|
41
|
+
tags: string[];
|
|
42
|
+
/** 유효 기간 (만료 시간, null이면 영구) */
|
|
43
|
+
expiresAt: Date | null;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 추론 (Inference)
|
|
47
|
+
* @description 사실들로부터 도출된 결론
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* const inference: Inference = {
|
|
52
|
+
* id: 'inference-001',
|
|
53
|
+
* conclusion: '고객 만족도가 매출 증가와 상관관계가 있음',
|
|
54
|
+
* premises: ['fact-001', 'fact-002'],
|
|
55
|
+
* source: createAgentId('analyst-agent'),
|
|
56
|
+
* confidence: 0.8,
|
|
57
|
+
* tags: ['correlation'],
|
|
58
|
+
* createdAt: new Date(),
|
|
59
|
+
* updatedAt: new Date(),
|
|
60
|
+
* };
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export interface Inference extends Identifiable, Timestamped {
|
|
64
|
+
/** 결론 */
|
|
65
|
+
conclusion: string;
|
|
66
|
+
/** 전제 (참조하는 Fact ID들) */
|
|
67
|
+
premises: string[];
|
|
68
|
+
/** 추론한 에이전트 (deprecated: source 사용) */
|
|
69
|
+
derivedBy?: AgentId;
|
|
70
|
+
/** 출처 에이전트 */
|
|
71
|
+
source: AgentId;
|
|
72
|
+
/** 추론 방법 */
|
|
73
|
+
method?: InferenceMethod;
|
|
74
|
+
/** 신뢰도 */
|
|
75
|
+
confidence: number;
|
|
76
|
+
/** 태그 */
|
|
77
|
+
tags: string[];
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* 패턴 조건/결과 항목
|
|
81
|
+
*/
|
|
82
|
+
export interface PatternCondition {
|
|
83
|
+
type: string;
|
|
84
|
+
value: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* 패턴 (Pattern)
|
|
88
|
+
* @description 학습된 패턴
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```typescript
|
|
92
|
+
* const pattern: Pattern = {
|
|
93
|
+
* id: 'pattern-001',
|
|
94
|
+
* name: '매출 증가 패턴',
|
|
95
|
+
* description: '고객 만족도 상승 후 2달 내 매출 증가',
|
|
96
|
+
* conditions: [{ type: 'trigger', value: 'satisfaction_up' }],
|
|
97
|
+
* consequences: [{ type: 'result', value: 'revenue_increase' }],
|
|
98
|
+
* confidence: 0.85,
|
|
99
|
+
* tags: ['finance'],
|
|
100
|
+
* createdAt: new Date(),
|
|
101
|
+
* updatedAt: new Date(),
|
|
102
|
+
* };
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
export interface Pattern extends Identifiable, Timestamped {
|
|
106
|
+
/** 패턴 이름 */
|
|
107
|
+
name: string;
|
|
108
|
+
/** 패턴 설명 */
|
|
109
|
+
description: string;
|
|
110
|
+
/** 패턴 조건 */
|
|
111
|
+
conditions: PatternCondition[];
|
|
112
|
+
/** 패턴 결과 */
|
|
113
|
+
consequences: PatternCondition[];
|
|
114
|
+
/** 신뢰도 */
|
|
115
|
+
confidence: number;
|
|
116
|
+
/** 태그 */
|
|
117
|
+
tags: string[];
|
|
118
|
+
/** 발견한 에이전트 (optional) */
|
|
119
|
+
discoveredBy?: AgentId;
|
|
120
|
+
/** 적용 횟수 */
|
|
121
|
+
usageCount?: number;
|
|
122
|
+
/** 성공률 */
|
|
123
|
+
successRate?: number;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* 사실 생성 옵션
|
|
127
|
+
* @description 새 사실 생성 시 필요한 필드
|
|
128
|
+
*/
|
|
129
|
+
export interface FactCreateInput {
|
|
130
|
+
/** 사실 내용 */
|
|
131
|
+
content: string;
|
|
132
|
+
/** 출처 에이전트 */
|
|
133
|
+
source: AgentId;
|
|
134
|
+
/** 신뢰도 */
|
|
135
|
+
confidence: number;
|
|
136
|
+
/** 카테고리 */
|
|
137
|
+
category: string;
|
|
138
|
+
/** 태그 */
|
|
139
|
+
tags?: string[];
|
|
140
|
+
/** 유효 기간 (선택) */
|
|
141
|
+
expiresAt?: Date | null;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* 추론 생성 옵션
|
|
145
|
+
* @description 새 추론 생성 시 필요한 필드
|
|
146
|
+
*/
|
|
147
|
+
export interface InferenceCreateInput {
|
|
148
|
+
/** 결론 */
|
|
149
|
+
conclusion: string;
|
|
150
|
+
/** 전제 (참조하는 Fact ID들) */
|
|
151
|
+
premises: string[];
|
|
152
|
+
/** 출처 에이전트 */
|
|
153
|
+
source: AgentId;
|
|
154
|
+
/** 추론 방법 (optional) */
|
|
155
|
+
method?: InferenceMethod;
|
|
156
|
+
/** 신뢰도 */
|
|
157
|
+
confidence: number;
|
|
158
|
+
/** 태그 */
|
|
159
|
+
tags?: string[];
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* 패턴 생성 옵션
|
|
163
|
+
* @description 새 패턴 생성 시 필요한 필드
|
|
164
|
+
*/
|
|
165
|
+
export interface PatternCreateInput {
|
|
166
|
+
/** 패턴 이름 */
|
|
167
|
+
name: string;
|
|
168
|
+
/** 패턴 설명 */
|
|
169
|
+
description: string;
|
|
170
|
+
/** 패턴 조건 */
|
|
171
|
+
conditions: PatternCondition[];
|
|
172
|
+
/** 패턴 결과 */
|
|
173
|
+
consequences: PatternCondition[];
|
|
174
|
+
/** 신뢰도 */
|
|
175
|
+
confidence: number;
|
|
176
|
+
/** 태그 */
|
|
177
|
+
tags?: string[];
|
|
178
|
+
/** 발견한 에이전트 (optional) */
|
|
179
|
+
discoveredBy?: AgentId;
|
|
180
|
+
/** 초기 적용 횟수 */
|
|
181
|
+
usageCount?: number;
|
|
182
|
+
/** 초기 성공률 */
|
|
183
|
+
successRate?: number;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* 지식 검색 쿼리
|
|
187
|
+
* @description 지식 섹션에서 검색하기 위한 쿼리 옵션
|
|
188
|
+
*/
|
|
189
|
+
export interface KnowledgeQuery {
|
|
190
|
+
/** 검색할 카테고리 */
|
|
191
|
+
category?: string;
|
|
192
|
+
/** 검색할 태그 (복수) */
|
|
193
|
+
tags?: string[];
|
|
194
|
+
/** 검색할 태그 (단일) */
|
|
195
|
+
tag?: string;
|
|
196
|
+
/** 최소 신뢰도 */
|
|
197
|
+
minConfidence?: number;
|
|
198
|
+
/** 만료되지 않은 것만 검색 */
|
|
199
|
+
validOnly?: boolean;
|
|
200
|
+
/** 출처 에이전트 ID */
|
|
201
|
+
source?: AgentId;
|
|
202
|
+
/** 검색 텍스트 */
|
|
203
|
+
text?: string;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* 추론 검색 쿼리
|
|
207
|
+
*/
|
|
208
|
+
export interface InferenceQuery {
|
|
209
|
+
/** 출처 에이전트 */
|
|
210
|
+
source?: AgentId;
|
|
211
|
+
/** 전제 포함 */
|
|
212
|
+
premises?: string[];
|
|
213
|
+
/** 최소 신뢰도 */
|
|
214
|
+
minConfidence?: number;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* 패턴 검색 쿼리
|
|
218
|
+
*/
|
|
219
|
+
export interface PatternQuery {
|
|
220
|
+
/** 태그 */
|
|
221
|
+
tag?: string;
|
|
222
|
+
/** 최소 신뢰도 */
|
|
223
|
+
minConfidence?: number;
|
|
224
|
+
}
|