@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,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module types/tkg
|
|
3
|
+
* @description Temporal Knowledge Graph(TKG) 타입/계약 (spec/12 정렬)
|
|
4
|
+
*/
|
|
5
|
+
import type { AgentId } from './base';
|
|
6
|
+
/** TKG 노드 ID */
|
|
7
|
+
export type NodeId = string & {
|
|
8
|
+
readonly __brand: 'NodeId';
|
|
9
|
+
};
|
|
10
|
+
/** TKG 엣지 ID */
|
|
11
|
+
export type EdgeId = string & {
|
|
12
|
+
readonly __brand: 'EdgeId';
|
|
13
|
+
};
|
|
14
|
+
/** 노드 ID 생성기 */
|
|
15
|
+
export declare function createNodeId(id: string): NodeId;
|
|
16
|
+
/** 엣지 ID 생성기 */
|
|
17
|
+
export declare function createEdgeId(id: string): EdgeId;
|
|
18
|
+
/** 노드 종류 */
|
|
19
|
+
export type TemporalNodeType = 'entity' | 'fact' | 'decision' | 'task' | 'pattern';
|
|
20
|
+
/** 엣지 종류 */
|
|
21
|
+
export type EdgeType = 'relates_to' | 'part_of' | 'contains' | 'supports' | 'contradicts' | 'explains' | 'based_on' | 'decided_by' | 'decided_on' | 'leads_to' | 'assigned_to' | 'depends_on' | 'blocks' | 'precedes' | 'exemplifies' | 'generalizes' | 'specializes';
|
|
22
|
+
export interface EntityData {
|
|
23
|
+
readonly name: string;
|
|
24
|
+
readonly entityType: 'agent' | 'task' | 'resource' | 'concept';
|
|
25
|
+
readonly attributes: Readonly<Record<string, unknown>>;
|
|
26
|
+
}
|
|
27
|
+
export interface FactData {
|
|
28
|
+
readonly statement: string;
|
|
29
|
+
readonly context?: string;
|
|
30
|
+
readonly evidence?: readonly NodeId[];
|
|
31
|
+
readonly verified: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface DecisionData {
|
|
34
|
+
readonly agendaId: string;
|
|
35
|
+
readonly outcome: 'approve' | 'reject' | 'deferred';
|
|
36
|
+
readonly reason: string;
|
|
37
|
+
readonly participants: readonly AgentId[];
|
|
38
|
+
}
|
|
39
|
+
export interface TaskData {
|
|
40
|
+
readonly description: string;
|
|
41
|
+
readonly status: 'pending' | 'running' | 'completed' | 'failed';
|
|
42
|
+
readonly assignedTo?: AgentId;
|
|
43
|
+
readonly result?: unknown;
|
|
44
|
+
}
|
|
45
|
+
export interface PatternData {
|
|
46
|
+
readonly description: string;
|
|
47
|
+
readonly frequency: number;
|
|
48
|
+
readonly examples: readonly string[];
|
|
49
|
+
readonly accuracy?: number;
|
|
50
|
+
}
|
|
51
|
+
export type NodeData = EntityData | FactData | DecisionData | TaskData | PatternData;
|
|
52
|
+
/**
|
|
53
|
+
* 시간축을 가진 TKG 노드
|
|
54
|
+
*/
|
|
55
|
+
export interface TemporalNode {
|
|
56
|
+
readonly id: NodeId;
|
|
57
|
+
readonly type: TemporalNodeType;
|
|
58
|
+
readonly valid_from: Date;
|
|
59
|
+
readonly valid_to?: Date;
|
|
60
|
+
readonly observed_at: Date;
|
|
61
|
+
readonly updated_at: Date;
|
|
62
|
+
readonly confidence: number;
|
|
63
|
+
readonly source: AgentId;
|
|
64
|
+
readonly version: number;
|
|
65
|
+
readonly tags?: readonly string[];
|
|
66
|
+
readonly data: NodeData;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* 시간축을 가진 TKG 엣지
|
|
70
|
+
*/
|
|
71
|
+
export interface TemporalEdge {
|
|
72
|
+
readonly id: EdgeId;
|
|
73
|
+
readonly from: NodeId;
|
|
74
|
+
readonly to: NodeId;
|
|
75
|
+
readonly type: EdgeType;
|
|
76
|
+
readonly valid_from: Date;
|
|
77
|
+
readonly valid_to?: Date;
|
|
78
|
+
readonly observed_at: Date;
|
|
79
|
+
readonly confidence: number;
|
|
80
|
+
readonly source: AgentId;
|
|
81
|
+
readonly weight?: number;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* TKG 조회 쿼리
|
|
85
|
+
*/
|
|
86
|
+
export interface GraphQuery {
|
|
87
|
+
readonly nodeTypes?: readonly TemporalNodeType[];
|
|
88
|
+
readonly nodeIds?: readonly NodeId[];
|
|
89
|
+
readonly tags?: readonly string[];
|
|
90
|
+
readonly minConfidence?: number;
|
|
91
|
+
readonly edgeTypes?: readonly EdgeType[];
|
|
92
|
+
readonly from?: NodeId;
|
|
93
|
+
readonly to?: NodeId;
|
|
94
|
+
readonly depth?: number;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* TKG 조회 결과
|
|
98
|
+
*/
|
|
99
|
+
export interface QueryResult {
|
|
100
|
+
readonly nodes: readonly TemporalNode[];
|
|
101
|
+
readonly edges: readonly TemporalEdge[];
|
|
102
|
+
readonly metadata: {
|
|
103
|
+
readonly queryTime: Date;
|
|
104
|
+
readonly resultCount: number;
|
|
105
|
+
readonly confidenceRange: readonly [number, number];
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
export interface ValidationError {
|
|
109
|
+
readonly field: string;
|
|
110
|
+
readonly message: string;
|
|
111
|
+
readonly code: string;
|
|
112
|
+
}
|
|
113
|
+
export interface ValidationWarning {
|
|
114
|
+
readonly field: string;
|
|
115
|
+
readonly message: string;
|
|
116
|
+
readonly code: string;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* 유효성 검사 결과
|
|
120
|
+
*/
|
|
121
|
+
export interface ValidationResult {
|
|
122
|
+
readonly valid: boolean;
|
|
123
|
+
readonly errors: readonly ValidationError[];
|
|
124
|
+
readonly warnings: readonly ValidationWarning[];
|
|
125
|
+
}
|
|
126
|
+
export type ConflictResolution = 'pending' | 'supersedes' | 'higher_confidence' | 'merge' | 'discard' | 'soft_delete';
|
|
127
|
+
export interface Conflict {
|
|
128
|
+
readonly id: string;
|
|
129
|
+
readonly type: 'version' | 'contradiction' | 'supersedes' | 'confidence';
|
|
130
|
+
readonly nodes: readonly [TemporalNode, TemporalNode];
|
|
131
|
+
readonly detectedAt: Date;
|
|
132
|
+
readonly status: 'pending' | 'resolved' | 'deferred';
|
|
133
|
+
readonly resolution?: ConflictResolution;
|
|
134
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* 승격(Promotion) 메타데이터
|
|
138
|
+
*/
|
|
139
|
+
export interface PromotionMeta {
|
|
140
|
+
readonly promotedBy?: string;
|
|
141
|
+
readonly reason?: string;
|
|
142
|
+
readonly promotedAt?: Date;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* 개별 승격 결과
|
|
146
|
+
*/
|
|
147
|
+
export interface PromotionResult {
|
|
148
|
+
readonly nodeId: NodeId;
|
|
149
|
+
readonly success: boolean;
|
|
150
|
+
readonly timestamp: Date;
|
|
151
|
+
readonly reason?: string;
|
|
152
|
+
readonly conflict?: Conflict;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* 병합 옵션
|
|
156
|
+
*/
|
|
157
|
+
export interface ReflectionOptions {
|
|
158
|
+
readonly minConfidence?: number;
|
|
159
|
+
readonly resolveConflicts?: boolean;
|
|
160
|
+
readonly softDeleteOnConflict?: boolean;
|
|
161
|
+
readonly maxAge?: number;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Staging/Production 병합 결과
|
|
165
|
+
*/
|
|
166
|
+
export interface MergeResult {
|
|
167
|
+
readonly mergeId: string;
|
|
168
|
+
readonly timestamp: Date;
|
|
169
|
+
readonly nodesPromoted: number;
|
|
170
|
+
readonly nodesSkipped: number;
|
|
171
|
+
readonly nodesFailed: number;
|
|
172
|
+
readonly edgesPromoted: number;
|
|
173
|
+
readonly edgesSkipped: number;
|
|
174
|
+
readonly conflicts: readonly Conflict[];
|
|
175
|
+
readonly duration: number;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Production 승격 전용 Port 계약.
|
|
179
|
+
* Reflector는 ProductionTKG 내부 맵에 직접 쓰지 않고 반드시 이 포트를 사용해야 합니다.
|
|
180
|
+
*/
|
|
181
|
+
export interface IProductionPromotionPort {
|
|
182
|
+
promoteNode(node: TemporalNode, meta?: PromotionMeta): PromotionResult;
|
|
183
|
+
promoteEdge(edge: TemporalEdge, meta?: PromotionMeta): PromotionResult;
|
|
184
|
+
promoteBatch(payload: {
|
|
185
|
+
nodes: readonly TemporalNode[];
|
|
186
|
+
edges: readonly TemporalEdge[];
|
|
187
|
+
meta?: PromotionMeta;
|
|
188
|
+
}): MergeResult;
|
|
189
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../_legacy/actor/pool/ActorPool.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../_legacy/agents/roles/factory.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../_legacy/cli-runtime/runtime/agent-registry.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { BaseActor } from "../_legacy/actor/base/BaseActor.js";
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { CellConfig, CellId, Task } from "./types.js";
|
|
2
|
+
export interface StateAccessor {
|
|
3
|
+
read(path: string): unknown;
|
|
4
|
+
write(path: string, value: unknown): void;
|
|
5
|
+
}
|
|
6
|
+
export interface ToolSet {
|
|
7
|
+
invoke(toolName: string, params: unknown): Promise<unknown>;
|
|
8
|
+
}
|
|
9
|
+
export interface AuditRecorder {
|
|
10
|
+
record(eventType: string, data: Record<string, unknown>): Promise<void> | void;
|
|
11
|
+
}
|
|
12
|
+
export interface ToolCallPreHookInput {
|
|
13
|
+
cellId: CellId;
|
|
14
|
+
toolName: string;
|
|
15
|
+
params: unknown;
|
|
16
|
+
task: Task;
|
|
17
|
+
}
|
|
18
|
+
export interface ToolCallPostHookInput extends ToolCallPreHookInput {
|
|
19
|
+
durationMs: number;
|
|
20
|
+
result?: unknown;
|
|
21
|
+
error?: Error;
|
|
22
|
+
}
|
|
23
|
+
export interface CellPolicyHooks {
|
|
24
|
+
beforeExecute?(task: Task): Promise<void> | void;
|
|
25
|
+
afterExecute?(task: Task, outcome: {
|
|
26
|
+
success: boolean;
|
|
27
|
+
output: unknown;
|
|
28
|
+
}): Promise<void> | void;
|
|
29
|
+
beforeToolCall?(input: ToolCallPreHookInput): Promise<void> | void;
|
|
30
|
+
afterToolCall?(input: ToolCallPostHookInput): Promise<void> | void;
|
|
31
|
+
}
|
|
32
|
+
export interface CellContext {
|
|
33
|
+
cellId: CellId;
|
|
34
|
+
blackboard: StateAccessor;
|
|
35
|
+
tools: ToolSet;
|
|
36
|
+
audit: AuditRecorder;
|
|
37
|
+
policy?: CellPolicyHooks;
|
|
38
|
+
config: CellConfig;
|
|
39
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { ActorRuntime, ActorStopTimeoutError } from "../_legacy/actor/runtime/ActorRuntime.js";
|
|
2
|
+
import type { CellContext } from "./CellContext.js";
|
|
3
|
+
import type { CellConfig, CellId, CellResult, CellStatus, Task } from "./types.js";
|
|
4
|
+
export type CellDispatchStrategy = "fifo" | "priority";
|
|
5
|
+
export interface CellRegistrationOptions {
|
|
6
|
+
id?: CellId;
|
|
7
|
+
config?: CellConfig;
|
|
8
|
+
context?: CellContext;
|
|
9
|
+
runTask?: (task: Task, context: CellContext) => Promise<unknown>;
|
|
10
|
+
}
|
|
11
|
+
export interface CellManagerTaskOptions {
|
|
12
|
+
priority?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface CellManagerConfig {
|
|
15
|
+
maxConcurrentExecutions?: number;
|
|
16
|
+
maxQueuedExecutions?: number;
|
|
17
|
+
dispatchStrategy?: CellDispatchStrategy;
|
|
18
|
+
defaultCellConfig?: CellConfig;
|
|
19
|
+
createCellContext: (cellId: CellId, config: CellConfig) => CellContext;
|
|
20
|
+
createCell?: (options: {
|
|
21
|
+
id: CellId;
|
|
22
|
+
context: CellContext;
|
|
23
|
+
config: CellConfig;
|
|
24
|
+
runTask?: (task: Task, context: CellContext) => Promise<unknown>;
|
|
25
|
+
}) => {
|
|
26
|
+
readonly id: CellId;
|
|
27
|
+
readonly status: CellStatus;
|
|
28
|
+
execute(task: Task): Promise<CellResult>;
|
|
29
|
+
suspend(): Promise<void>;
|
|
30
|
+
resume(): Promise<void>;
|
|
31
|
+
abort(reason: string): Promise<void>;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export interface CellSnapshot {
|
|
35
|
+
id: CellId;
|
|
36
|
+
status: CellStatus;
|
|
37
|
+
config: CellConfig;
|
|
38
|
+
}
|
|
39
|
+
export declare class CellManager {
|
|
40
|
+
private readonly config;
|
|
41
|
+
private readonly cells;
|
|
42
|
+
private readonly queue;
|
|
43
|
+
private readonly inFlight;
|
|
44
|
+
private readonly maxConcurrentExecutions;
|
|
45
|
+
private readonly maxQueuedExecutions;
|
|
46
|
+
private readonly dispatchStrategy;
|
|
47
|
+
private readonly defaultCellConfig;
|
|
48
|
+
constructor(config: CellManagerConfig);
|
|
49
|
+
createCell(options?: CellRegistrationOptions): CellId;
|
|
50
|
+
getCell(id: CellId): {
|
|
51
|
+
readonly id: CellId;
|
|
52
|
+
readonly status: CellStatus;
|
|
53
|
+
execute(task: Task): Promise<CellResult>;
|
|
54
|
+
suspend(): Promise<void>;
|
|
55
|
+
resume(): Promise<void>;
|
|
56
|
+
abort(reason: string): Promise<void>;
|
|
57
|
+
} | undefined;
|
|
58
|
+
getCellSnapshot(id: CellId): CellSnapshot | undefined;
|
|
59
|
+
listCells(): CellSnapshot[];
|
|
60
|
+
execute(cellId: CellId, task: Task, options?: CellManagerTaskOptions): Promise<CellResult>;
|
|
61
|
+
suspendCell(id: CellId): Promise<void>;
|
|
62
|
+
resumeCell(id: CellId): Promise<void>;
|
|
63
|
+
stopCell(id: CellId, reason?: string): Promise<void>;
|
|
64
|
+
stopAll(reason?: string): Promise<void>;
|
|
65
|
+
getQueueSize(): number;
|
|
66
|
+
getRunningCount(): number;
|
|
67
|
+
getStatus(): {
|
|
68
|
+
totalCells: number;
|
|
69
|
+
running: number;
|
|
70
|
+
queued: number;
|
|
71
|
+
};
|
|
72
|
+
private processQueue;
|
|
73
|
+
private pickNext;
|
|
74
|
+
private runQueueItem;
|
|
75
|
+
private requireCell;
|
|
76
|
+
private rejectQueuedTasksForCell;
|
|
77
|
+
private validateConfig;
|
|
78
|
+
}
|
|
79
|
+
export { ActorRuntime, ActorStopTimeoutError };
|
|
80
|
+
export * from "../_legacy/actor/runtime/ActorRuntime.js";
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { ActorRole } from "../_legacy/actor/types/actor.js";
|
|
2
|
+
import type { CellId, CellResult, CellStatus, Task } from "./types.js";
|
|
3
|
+
import type { CellContext } from "./CellContext.js";
|
|
4
|
+
export interface ExecutionCell {
|
|
5
|
+
readonly id: CellId;
|
|
6
|
+
readonly status: CellStatus;
|
|
7
|
+
execute(task: Task): Promise<CellResult>;
|
|
8
|
+
suspend(): Promise<void>;
|
|
9
|
+
resume(): Promise<void>;
|
|
10
|
+
abort(reason: string): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
interface DefaultExecutionCellOptions {
|
|
13
|
+
id: CellId;
|
|
14
|
+
context: CellContext;
|
|
15
|
+
runTask?: (task: Task, context: CellContext) => Promise<unknown>;
|
|
16
|
+
actorRole?: ActorRole;
|
|
17
|
+
actorName?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare class DefaultExecutionCell implements ExecutionCell {
|
|
20
|
+
readonly id: CellId;
|
|
21
|
+
private readonly actor;
|
|
22
|
+
private readonly rawContext;
|
|
23
|
+
private readonly defaultRunner;
|
|
24
|
+
private readonly stateChanges;
|
|
25
|
+
private readonly toolCalls;
|
|
26
|
+
private statusValue;
|
|
27
|
+
private abortReason;
|
|
28
|
+
private suspendedResolver;
|
|
29
|
+
private suspendedWaiter;
|
|
30
|
+
constructor(options: DefaultExecutionCellOptions);
|
|
31
|
+
get status(): CellStatus;
|
|
32
|
+
execute(task: Task): Promise<CellResult>;
|
|
33
|
+
suspend(): Promise<void>;
|
|
34
|
+
resume(): Promise<void>;
|
|
35
|
+
abort(reason: string): Promise<void>;
|
|
36
|
+
private buildInstrumentedContext;
|
|
37
|
+
private wrapBlackboard;
|
|
38
|
+
private wrapTools;
|
|
39
|
+
private withTimeout;
|
|
40
|
+
private waitIfSuspended;
|
|
41
|
+
private throwIfAborted;
|
|
42
|
+
private recordAudit;
|
|
43
|
+
}
|
|
44
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../_legacy/actor/pool/PoolManager.js";
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module action
|
|
3
|
+
* @description Action 타입 정의 - 액터가 수행하는 행동
|
|
4
|
+
*/
|
|
5
|
+
import type { ActorId } from "./actor";
|
|
6
|
+
/**
|
|
7
|
+
* Action 고유 ID 타입
|
|
8
|
+
* @description 브랜드 타입을 사용하여 타입 안전성을 확보
|
|
9
|
+
*/
|
|
10
|
+
export type ActionId = string & {
|
|
11
|
+
readonly __brand: "ActionId";
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Action 유형
|
|
15
|
+
* @description 액터가 수행할 수 있는 행동의 종류
|
|
16
|
+
*/
|
|
17
|
+
export type ActionType = "analyze" | "execute" | "verify" | "coordinate" | "submit_opinion" | "submit_vote" | "create_agenda" | "unknown";
|
|
18
|
+
/**
|
|
19
|
+
* Action 인터페이스
|
|
20
|
+
* @description 액터가 수행하는 행동의 정의
|
|
21
|
+
*/
|
|
22
|
+
export interface Action {
|
|
23
|
+
/** 고유 식별자 */
|
|
24
|
+
readonly id: ActionId;
|
|
25
|
+
/** 행동을 수행하는 액터 ID */
|
|
26
|
+
actorId: ActorId;
|
|
27
|
+
/** 행동 유형 */
|
|
28
|
+
type: ActionType;
|
|
29
|
+
/** 행동 생성 시간 */
|
|
30
|
+
timestamp: Date;
|
|
31
|
+
/** 행동 파라미터 (선택적) */
|
|
32
|
+
params?: Record<string, unknown>;
|
|
33
|
+
/** 관련 작업 ID (선택적) */
|
|
34
|
+
taskId?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Action ID 생성 함수
|
|
38
|
+
* @param id - 원본 문자열 ID
|
|
39
|
+
* @returns 브랜드 타입이 적용된 ActionId
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const actionId = createActionId('action-001');
|
|
43
|
+
* // 타입: ActionId
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare function createActionId(id: string): ActionId;
|
|
47
|
+
/**
|
|
48
|
+
* Action ID 유효성 검사
|
|
49
|
+
* @param value - 확인할 값
|
|
50
|
+
* @returns 유효한 ActionId 여부
|
|
51
|
+
*/
|
|
52
|
+
export declare function isValidActionId(value: unknown): value is ActionId;
|
|
53
|
+
/**
|
|
54
|
+
* Action 생성 함수
|
|
55
|
+
* @param actorId - 액터 ID
|
|
56
|
+
* @param type - 행동 유형
|
|
57
|
+
* @param params - 행동 파라미터 (선택적)
|
|
58
|
+
* @param taskId - 관련 작업 ID (선택적)
|
|
59
|
+
* @returns 생성된 Action 객체
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* const action = createAction('actor-001', 'analyze', { target: 'data-001' });
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export declare function createAction(actorId: ActorId, type: ActionType, params?: Record<string, unknown>, taskId?: string): Action;
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module actor
|
|
3
|
+
* @description Actor 타입 정의 - 액터의 기본 인터페이스와 상태 관리
|
|
4
|
+
*/
|
|
5
|
+
import type { Action } from "./action";
|
|
6
|
+
import type { IBlackboard } from "./blackboard";
|
|
7
|
+
import type { Message } from "./message";
|
|
8
|
+
import type { IMessageBus } from "./message";
|
|
9
|
+
import type { ActorMetrics } from "./metrics";
|
|
10
|
+
import type { Observation } from "./observation";
|
|
11
|
+
import type { Result } from "./result";
|
|
12
|
+
/**
|
|
13
|
+
* Actor 고유 ID 타입
|
|
14
|
+
* @description 브랜드 타입을 사용하여 타입 안전성을 확보
|
|
15
|
+
*
|
|
16
|
+
* 형식: `<role>-<uuid>`
|
|
17
|
+
* 예: analyst-550e8400-e29b-41d4-a716-446655440000
|
|
18
|
+
*/
|
|
19
|
+
export type ActorId = string & {
|
|
20
|
+
readonly __brand: "ActorId";
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Task 고유 ID 타입
|
|
24
|
+
* @description 브랜드 타입을 사용하여 타입 안전성을 확보
|
|
25
|
+
*/
|
|
26
|
+
export type TaskId = string & {
|
|
27
|
+
readonly __brand: "TaskId";
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Actor 역할 타입
|
|
31
|
+
* @description 액터가 수행하는 역할을 정의
|
|
32
|
+
*/
|
|
33
|
+
export type ActorRole = "analyst" | "executor" | "verifier" | "director";
|
|
34
|
+
/**
|
|
35
|
+
* Actor 역할 설명
|
|
36
|
+
* @description 각 역할의 설명 정의
|
|
37
|
+
*/
|
|
38
|
+
export declare const ActorRoleDescription: Record<ActorRole, string>;
|
|
39
|
+
/**
|
|
40
|
+
* Actor 역할별 권한 레벨
|
|
41
|
+
* @description 각 역할의 권한 레벨 정의
|
|
42
|
+
*/
|
|
43
|
+
export declare const ActorRoleLevel: Record<ActorRole, number>;
|
|
44
|
+
/**
|
|
45
|
+
* Actor 생명주기 상태 열거형
|
|
46
|
+
* @description 액터의 현재 실행 상태를 나타냄
|
|
47
|
+
*/
|
|
48
|
+
export declare enum ActorLifecycleStatus {
|
|
49
|
+
/** 생성됨 - 초기화 완료, 시작 대기 */
|
|
50
|
+
CREATED = "created",
|
|
51
|
+
/** 시작 중 - 초기화 및 리소스 로딩 중 */
|
|
52
|
+
STARTING = "starting",
|
|
53
|
+
/** 실행 중 - 정상적으로 동작 중 */
|
|
54
|
+
RUNNING = "running",
|
|
55
|
+
/** 유휴 상태 - 대기 중, 작업 수행 가능 */
|
|
56
|
+
IDLE = "idle",
|
|
57
|
+
/** 바쁨 - 현재 작업 수행 중 */
|
|
58
|
+
BUSY = "busy",
|
|
59
|
+
/** 중지 중 - 종료 처리 중 */
|
|
60
|
+
STOPPING = "stopping",
|
|
61
|
+
/** 중지됨 - 완전히 종료됨 */
|
|
62
|
+
STOPPED = "stopped",
|
|
63
|
+
/** 재시작 중 - 재시작 처리 중 */
|
|
64
|
+
RESTARTING = "restarting",
|
|
65
|
+
/** 오류 상태 - 오류 발생으로 중단됨 */
|
|
66
|
+
ERROR = "error"
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Actor 상태 인터페이스
|
|
70
|
+
* @description 액터의 현재 상태 정보
|
|
71
|
+
*/
|
|
72
|
+
export interface ActorStatus {
|
|
73
|
+
/** Actor ID */
|
|
74
|
+
id: ActorId;
|
|
75
|
+
/** Actor 이름 */
|
|
76
|
+
name: string;
|
|
77
|
+
/** Actor 역할 */
|
|
78
|
+
role: ActorRole;
|
|
79
|
+
/** 생명주기 상태 */
|
|
80
|
+
status: ActorLifecycleStatus;
|
|
81
|
+
/** 메시지 큐 상태 */
|
|
82
|
+
messageQueue: {
|
|
83
|
+
pending: number;
|
|
84
|
+
processing: boolean;
|
|
85
|
+
};
|
|
86
|
+
/** 현재 작업 */
|
|
87
|
+
currentTask?: {
|
|
88
|
+
id: TaskId;
|
|
89
|
+
type: string;
|
|
90
|
+
startedAt: Date;
|
|
91
|
+
};
|
|
92
|
+
/** 성능 메트릭 */
|
|
93
|
+
metrics: {
|
|
94
|
+
totalMessagesProcessed: number;
|
|
95
|
+
totalActionsExecuted: number;
|
|
96
|
+
totalErrors: number;
|
|
97
|
+
averageResponseTime: number;
|
|
98
|
+
uptime: number;
|
|
99
|
+
};
|
|
100
|
+
/** 마지막 활동 시간 */
|
|
101
|
+
lastSeen: Date;
|
|
102
|
+
/** 마지막 활동 유형 */
|
|
103
|
+
lastActivity?: "message_received" | "action_executed" | "error_occurred";
|
|
104
|
+
/** 에러 카운트 */
|
|
105
|
+
errorCount: number;
|
|
106
|
+
/** 마지막 에러 */
|
|
107
|
+
lastError?: {
|
|
108
|
+
message: string;
|
|
109
|
+
timestamp: Date;
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* 상태 전이 유효성 검사 함수
|
|
114
|
+
*
|
|
115
|
+
* 상태 전이 다이어그램:
|
|
116
|
+
* CREATED → STARTING
|
|
117
|
+
* STARTING → RUNNING | ERROR
|
|
118
|
+
* RUNNING → IDLE | BUSY | STOPPING | ERROR | RESTARTING
|
|
119
|
+
* IDLE → BUSY | STOPPING | RESTARTING
|
|
120
|
+
* BUSY → IDLE | ERROR | RESTARTING
|
|
121
|
+
* ERROR → RESTARTING | STOPPING
|
|
122
|
+
* RESTARTING → RUNNING | ERROR
|
|
123
|
+
* STOPPING → STOPPED
|
|
124
|
+
* STOPPED → (터미널 상태)
|
|
125
|
+
*
|
|
126
|
+
* @param current - 현재 상태
|
|
127
|
+
* @param next - 다음 상태
|
|
128
|
+
* @returns 전환 가능 여부
|
|
129
|
+
*/
|
|
130
|
+
export declare function isValidTransition(current: ActorLifecycleStatus, next: ActorLifecycleStatus): boolean;
|
|
131
|
+
/**
|
|
132
|
+
* Actor 인터페이스
|
|
133
|
+
* @description 모든 액터가 구현해야 하는 기본 인터페이스
|
|
134
|
+
*/
|
|
135
|
+
export interface Actor {
|
|
136
|
+
/** 고유 식별자 */
|
|
137
|
+
readonly id: ActorId;
|
|
138
|
+
/** 액터 이름 */
|
|
139
|
+
readonly name: string;
|
|
140
|
+
/** 액터 역할 */
|
|
141
|
+
readonly role: ActorRole;
|
|
142
|
+
/** 현재 상태 */
|
|
143
|
+
readonly status: ActorStatus;
|
|
144
|
+
/** 공유 데이터 저장소 (Blackboard) */
|
|
145
|
+
board: IBlackboard;
|
|
146
|
+
/** 메시지 버스 (message.ts의 IMessageBus 타입 사용) */
|
|
147
|
+
messageBus: IMessageBus;
|
|
148
|
+
/** 마지막 활동 시간 */
|
|
149
|
+
lastActivity: Date;
|
|
150
|
+
/** 생성 시간 */
|
|
151
|
+
createdAt: Date;
|
|
152
|
+
/** 성능 메트릭 */
|
|
153
|
+
metrics: ActorMetrics;
|
|
154
|
+
/**
|
|
155
|
+
* 메시지 수신
|
|
156
|
+
* @param message - 수신할 메시지
|
|
157
|
+
* @returns 메시지 처리 결과
|
|
158
|
+
*/
|
|
159
|
+
receive(message: Message): void | Promise<void>;
|
|
160
|
+
/**
|
|
161
|
+
* 환경 관찰
|
|
162
|
+
* @returns 관찰 결과
|
|
163
|
+
*/
|
|
164
|
+
observe(): Observation | Promise<Observation>;
|
|
165
|
+
/**
|
|
166
|
+
* 의사결정 (생각)
|
|
167
|
+
* @param observation - 관찰 결과
|
|
168
|
+
* @returns 결정된 행동
|
|
169
|
+
*/
|
|
170
|
+
think(observation: Observation): Action | Promise<Action>;
|
|
171
|
+
/**
|
|
172
|
+
* 행동 수행
|
|
173
|
+
* @param action - 수행할 행동
|
|
174
|
+
* @returns 행동 결과
|
|
175
|
+
*/
|
|
176
|
+
act(action: Action): Result | Promise<Result>;
|
|
177
|
+
/**
|
|
178
|
+
* 결과 보고
|
|
179
|
+
* @param result - 보고할 결과
|
|
180
|
+
*/
|
|
181
|
+
report(result: Result): void | Promise<void>;
|
|
182
|
+
/**
|
|
183
|
+
* 액터 시작
|
|
184
|
+
*/
|
|
185
|
+
start(): void | Promise<void>;
|
|
186
|
+
/**
|
|
187
|
+
* 액터 중지
|
|
188
|
+
*/
|
|
189
|
+
stop(): void | Promise<void>;
|
|
190
|
+
/**
|
|
191
|
+
* 액터 재시작
|
|
192
|
+
*/
|
|
193
|
+
restart(): void | Promise<void>;
|
|
194
|
+
/**
|
|
195
|
+
* 액터 현재 상태 조회
|
|
196
|
+
*/
|
|
197
|
+
getStatus(): ActorStatus;
|
|
198
|
+
/**
|
|
199
|
+
* 액터가 살아있는지 확인
|
|
200
|
+
*/
|
|
201
|
+
isAlive(): boolean;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Actor ID 생성 함수
|
|
205
|
+
* @param role - Actor 역할
|
|
206
|
+
* @returns 브랜드 타입이 적용된 ActorId
|
|
207
|
+
* @example
|
|
208
|
+
* ```typescript
|
|
209
|
+
* const actorId = createActorId('analyst');
|
|
210
|
+
* // 결과: "analyst-550e8400-e29b-41d4-a716-446655440000"
|
|
211
|
+
* ```
|
|
212
|
+
*/
|
|
213
|
+
export declare function createActorId(role: ActorRole): ActorId;
|
|
214
|
+
/**
|
|
215
|
+
* Actor ID 유효성 검사
|
|
216
|
+
* @param value - 확인할 값
|
|
217
|
+
* @returns 유효한 ActorId 여부
|
|
218
|
+
* @example
|
|
219
|
+
* ```typescript
|
|
220
|
+
* const value = 'analyst-550e8400-e29b-41d4-a716-446655440000';
|
|
221
|
+
* if (isValidActorId(value)) {
|
|
222
|
+
* // value는 유효한 ActorId
|
|
223
|
+
* }
|
|
224
|
+
* ```
|
|
225
|
+
*/
|
|
226
|
+
export declare function isValidActorId(value: unknown): value is ActorId;
|
|
227
|
+
/**
|
|
228
|
+
* Task ID 생성 함수
|
|
229
|
+
* @param id - 원본 문자열 ID
|
|
230
|
+
* @returns 브랜드 타입이 적용된 TaskId
|
|
231
|
+
* @example
|
|
232
|
+
* ```typescript
|
|
233
|
+
* const taskId = createTaskId('task-001');
|
|
234
|
+
* // 타입: TaskId
|
|
235
|
+
* ```
|
|
236
|
+
*/
|
|
237
|
+
export declare function createTaskId(id: string): TaskId;
|
|
238
|
+
/**
|
|
239
|
+
* Task ID 유효성 검사
|
|
240
|
+
* @param value - 확인할 값
|
|
241
|
+
* @returns 유효한 TaskId 여부
|
|
242
|
+
* @example
|
|
243
|
+
* ```typescript
|
|
244
|
+
* const value = 'task-001';
|
|
245
|
+
* if (isValidTaskId(value)) {
|
|
246
|
+
* // value는 유효한 TaskId
|
|
247
|
+
* }
|
|
248
|
+
* ```
|
|
249
|
+
*/
|
|
250
|
+
export declare function isValidTaskId(value: unknown): value is TaskId;
|
|
251
|
+
export type { IBlackboard } from "./blackboard";
|