@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.
Files changed (323) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +183 -0
  3. package/dist/_legacy/actor/base/BaseActor.d.ts +87 -0
  4. package/dist/_legacy/actor/pool/ActorPool.d.ts +194 -0
  5. package/dist/_legacy/actor/pool/NoOpMessageBus.d.ts +16 -0
  6. package/dist/_legacy/actor/pool/PoolManager.d.ts +76 -0
  7. package/dist/_legacy/actor/pool/index.d.ts +3 -0
  8. package/dist/_legacy/actor/runtime/ActorRunner.d.ts +54 -0
  9. package/dist/_legacy/actor/runtime/ActorRuntime.d.ts +161 -0
  10. package/dist/_legacy/actor/runtime/DefaultActorFactory.d.ts +44 -0
  11. package/dist/_legacy/actor/runtime/types.d.ts +41 -0
  12. package/dist/_legacy/actor/runtime/utils/delay.d.ts +7 -0
  13. package/dist/_legacy/actor/supervision/Supervisor.d.ts +102 -0
  14. package/dist/_legacy/actor/supervision/SupervisorTree.d.ts +54 -0
  15. package/dist/_legacy/actor/supervision/types.d.ts +130 -0
  16. package/dist/_legacy/actor/types/action.d.ts +65 -0
  17. package/dist/_legacy/actor/types/actor.d.ts +251 -0
  18. package/dist/_legacy/actor/types/blackboard.d.ts +46 -0
  19. package/dist/_legacy/actor/types/crypto.d.ts +6 -0
  20. package/dist/_legacy/actor/types/message.d.ts +209 -0
  21. package/dist/_legacy/actor/types/metrics.d.ts +43 -0
  22. package/dist/_legacy/actor/types/observation.d.ts +45 -0
  23. package/dist/_legacy/actor/types/result.d.ts +110 -0
  24. package/dist/_legacy/agents/roles/analyst-agent.d.ts +18 -0
  25. package/dist/_legacy/agents/roles/base-agent.d.ts +320 -0
  26. package/dist/_legacy/agents/roles/director-agent.d.ts +26 -0
  27. package/dist/_legacy/agents/roles/executor-agent.d.ts +26 -0
  28. package/dist/_legacy/agents/roles/factory.d.ts +30 -0
  29. package/dist/_legacy/agents/roles/index.d.ts +6 -0
  30. package/dist/_legacy/agents/roles/verifier-agent.d.ts +18 -0
  31. package/dist/_legacy/blackboard/core/accessors/decisions-accessor.d.ts +190 -0
  32. package/dist/_legacy/blackboard/core/accessors/index.d.ts +7 -0
  33. package/dist/_legacy/blackboard/core/accessors/knowledge-accessor.d.ts +154 -0
  34. package/dist/_legacy/blackboard/core/accessors/state-accessor.d.ts +173 -0
  35. package/dist/_legacy/blackboard/core/blackboard-events.d.ts +105 -0
  36. package/dist/_legacy/blackboard/core/blackboard.d.ts +286 -0
  37. package/dist/_legacy/blackboard/core/id-generator.d.ts +53 -0
  38. package/dist/_legacy/blackboard/core/immutable.d.ts +45 -0
  39. package/dist/_legacy/blackboard/core/index.d.ts +13 -0
  40. package/dist/_legacy/blackboard/core/path-utils.d.ts +75 -0
  41. package/dist/_legacy/blackboard/core/tkg.d.ts +50 -0
  42. package/dist/_legacy/blackboard/core/versioning.d.ts +80 -0
  43. package/dist/_legacy/blackboard/domains/agenda/AgendaStore.d.ts +34 -0
  44. package/dist/_legacy/blackboard/domains/agenda/events.d.ts +12 -0
  45. package/dist/_legacy/blackboard/domains/agenda/index.d.ts +6 -0
  46. package/dist/_legacy/blackboard/domains/agenda/types.d.ts +26 -0
  47. package/dist/_legacy/blackboard/domains/consensus/ConsensusRuleEngine.d.ts +10 -0
  48. package/dist/_legacy/blackboard/domains/consensus/index.d.ts +4 -0
  49. package/dist/_legacy/blackboard/domains/consensus/types.d.ts +27 -0
  50. package/dist/_legacy/blackboard/domains/tkg/InMemoryTKG.d.ts +38 -0
  51. package/dist/_legacy/blackboard/domains/tkg/JsonFileReflectorStateStore.d.ts +9 -0
  52. package/dist/_legacy/blackboard/domains/tkg/ObserverReflector.d.ts +114 -0
  53. package/dist/_legacy/blackboard/domains/tkg/index.d.ts +4 -0
  54. package/dist/_legacy/blackboard/domains/voting/VotingSessionStore.d.ts +14 -0
  55. package/dist/_legacy/blackboard/domains/voting/index.d.ts +3 -0
  56. package/dist/_legacy/blackboard/domains/voting/types.d.ts +32 -0
  57. package/dist/_legacy/blackboard/events/event-bus.d.ts +254 -0
  58. package/dist/_legacy/blackboard/events/event-factory.d.ts +80 -0
  59. package/dist/_legacy/blackboard/events/index.d.ts +17 -0
  60. package/dist/_legacy/blackboard/events/types.d.ts +554 -0
  61. package/dist/_legacy/blackboard/snapshot/compression.d.ts +170 -0
  62. package/dist/_legacy/blackboard/snapshot/id-utils.d.ts +20 -0
  63. package/dist/_legacy/blackboard/snapshot/index.d.ts +21 -0
  64. package/dist/_legacy/blackboard/snapshot/serializer.d.ts +123 -0
  65. package/dist/_legacy/blackboard/snapshot/snapshot-comparer.d.ts +102 -0
  66. package/dist/_legacy/blackboard/snapshot/snapshot-creator.d.ts +49 -0
  67. package/dist/_legacy/blackboard/snapshot/snapshot-manager.d.ts +253 -0
  68. package/dist/_legacy/blackboard/snapshot/snapshot-restorer.d.ts +54 -0
  69. package/dist/_legacy/blackboard/snapshot/snapshot-serializer.d.ts +45 -0
  70. package/dist/_legacy/blackboard/snapshot/snapshot-validator.d.ts +55 -0
  71. package/dist/_legacy/blackboard/snapshot/type-guards.d.ts +12 -0
  72. package/dist/_legacy/blackboard/snapshot/types.d.ts +151 -0
  73. package/dist/_legacy/blackboard/snapshot/utils.d.ts +20 -0
  74. package/dist/_legacy/blackboard/types/agent.d.ts +89 -0
  75. package/dist/_legacy/blackboard/types/base.d.ts +213 -0
  76. package/dist/_legacy/blackboard/types/blackboard.d.ts +217 -0
  77. package/dist/_legacy/blackboard/types/decision.d.ts +260 -0
  78. package/dist/_legacy/blackboard/types/index.d.ts +12 -0
  79. package/dist/_legacy/blackboard/types/knowledge.d.ts +224 -0
  80. package/dist/_legacy/blackboard/types/message.d.ts +162 -0
  81. package/dist/_legacy/blackboard/types/task.d.ts +154 -0
  82. package/dist/_legacy/blackboard/types/tkg.d.ts +189 -0
  83. package/dist/_legacy/blackboard/workflow/meeting-state-machine/MeetingStateMachine.d.ts +22 -0
  84. package/dist/_legacy/blackboard/workflow/meeting-state-machine/types.d.ts +30 -0
  85. package/dist/_legacy/cli-runtime/runtime/agent-registry.d.ts +33 -0
  86. package/dist/_legacy/cli-runtime/runtime/blackboard.d.ts +41 -0
  87. package/dist/_legacy/cli-runtime/runtime/context-builder.d.ts +88 -0
  88. package/dist/_legacy/cli-runtime/runtime/retry-policy.d.ts +8 -0
  89. package/dist/_legacy/cli-runtime/runtime/step-executor.d.ts +33 -0
  90. package/dist/_legacy/cli-runtime/runtime/types.d.ts +12 -0
  91. package/dist/_legacy/cli-runtime/runtime/utils.d.ts +2 -0
  92. package/dist/_legacy/database/src/duckdb-client.d.ts +178 -0
  93. package/dist/_legacy/workflow/errors/diagnosis.d.ts +32 -0
  94. package/dist/_legacy/workflow/errors/index.d.ts +52 -0
  95. package/dist/_legacy/workflow/graph/index.d.ts +57 -0
  96. package/dist/_legacy/workflow/index.d.ts +9 -0
  97. package/dist/_legacy/workflow/parser/workflow-parser.d.ts +13 -0
  98. package/dist/_legacy/workflow/resolver/dependency-resolver.d.ts +83 -0
  99. package/dist/_legacy/workflow/types/workflow.d.ts +173 -0
  100. package/dist/_legacy/workflow/utils.d.ts +2 -0
  101. package/dist/_legacy/workflow/validator/workflow-validator.d.ts +71 -0
  102. package/dist/artifacts/index.d.ts +2 -0
  103. package/dist/artifacts/local-file-artifact-store.d.ts +22 -0
  104. package/dist/artifacts/types.d.ts +19 -0
  105. package/dist/audit/AuditReplay.d.ts +4 -0
  106. package/dist/audit/AuditStore.d.ts +13 -0
  107. package/dist/audit/AuditTrail.d.ts +28 -0
  108. package/dist/audit/DefaultAuditRecorder.d.ts +10 -0
  109. package/dist/audit/EventBusAdapter.d.ts +12 -0
  110. package/dist/audit/InMemoryAuditStore.d.ts +9 -0
  111. package/dist/audit/ReExecutionDiffReport.d.ts +24 -0
  112. package/dist/audit/ReExecutionPlanner.d.ts +30 -0
  113. package/dist/audit/ReExecutionRuntime.d.ts +35 -0
  114. package/dist/audit/database-api.d.ts +32 -0
  115. package/dist/audit/database-index.d.ts +5 -0
  116. package/dist/audit/event-bus.d.ts +1 -0
  117. package/dist/audit/event-factory.d.ts +1 -0
  118. package/dist/audit/index.d.ts +12 -0
  119. package/dist/audit/testing.d.ts +15 -0
  120. package/dist/audit/tkg/InMemoryTKG.d.ts +1 -0
  121. package/dist/audit/tkg/JsonFileReflectorStateStore.d.ts +1 -0
  122. package/dist/audit/tkg/ObserverReflector.d.ts +1 -0
  123. package/dist/audit/tkg/index.d.ts +1 -0
  124. package/dist/audit/types.d.ts +23 -0
  125. package/dist/blackboard/core/accessors/decisions-accessor.d.ts +190 -0
  126. package/dist/blackboard/core/accessors/index.d.ts +7 -0
  127. package/dist/blackboard/core/accessors/knowledge-accessor.d.ts +154 -0
  128. package/dist/blackboard/core/accessors/state-accessor.d.ts +173 -0
  129. package/dist/blackboard/core/blackboard-events.d.ts +105 -0
  130. package/dist/blackboard/core/blackboard.d.ts +286 -0
  131. package/dist/blackboard/core/id-generator.d.ts +53 -0
  132. package/dist/blackboard/core/immutable.d.ts +45 -0
  133. package/dist/blackboard/core/index.d.ts +13 -0
  134. package/dist/blackboard/core/path-utils.d.ts +75 -0
  135. package/dist/blackboard/core/tkg.d.ts +50 -0
  136. package/dist/blackboard/core/versioning.d.ts +80 -0
  137. package/dist/blackboard/events/event-bus.d.ts +254 -0
  138. package/dist/blackboard/events/event-factory.d.ts +80 -0
  139. package/dist/blackboard/events/index.d.ts +17 -0
  140. package/dist/blackboard/events/types.d.ts +554 -0
  141. package/dist/blackboard/index.d.ts +20 -0
  142. package/dist/blackboard/observer-reflector.d.ts +114 -0
  143. package/dist/blackboard/snapshot/compression.d.ts +170 -0
  144. package/dist/blackboard/snapshot/id-utils.d.ts +20 -0
  145. package/dist/blackboard/snapshot/index.d.ts +21 -0
  146. package/dist/blackboard/snapshot/serializer.d.ts +123 -0
  147. package/dist/blackboard/snapshot/snapshot-comparer.d.ts +102 -0
  148. package/dist/blackboard/snapshot/snapshot-creator.d.ts +49 -0
  149. package/dist/blackboard/snapshot/snapshot-manager.d.ts +253 -0
  150. package/dist/blackboard/snapshot/snapshot-restorer.d.ts +54 -0
  151. package/dist/blackboard/snapshot/snapshot-serializer.d.ts +45 -0
  152. package/dist/blackboard/snapshot/snapshot-validator.d.ts +55 -0
  153. package/dist/blackboard/snapshot/type-guards.d.ts +12 -0
  154. package/dist/blackboard/snapshot/types.d.ts +151 -0
  155. package/dist/blackboard/snapshot/utils.d.ts +20 -0
  156. package/dist/blackboard/types/agent.d.ts +89 -0
  157. package/dist/blackboard/types/base.d.ts +213 -0
  158. package/dist/blackboard/types/blackboard.d.ts +217 -0
  159. package/dist/blackboard/types/decision.d.ts +260 -0
  160. package/dist/blackboard/types/index.d.ts +12 -0
  161. package/dist/blackboard/types/knowledge.d.ts +224 -0
  162. package/dist/blackboard/types/message.d.ts +162 -0
  163. package/dist/blackboard/types/task.d.ts +154 -0
  164. package/dist/blackboard/types/tkg.d.ts +189 -0
  165. package/dist/cell/ActorPool.d.ts +1 -0
  166. package/dist/cell/AgentFactory.d.ts +1 -0
  167. package/dist/cell/AgentRegistry.d.ts +1 -0
  168. package/dist/cell/BaseActor.d.ts +1 -0
  169. package/dist/cell/CellContext.d.ts +39 -0
  170. package/dist/cell/CellManager.d.ts +80 -0
  171. package/dist/cell/ExecutionCell.d.ts +44 -0
  172. package/dist/cell/PoolManager.d.ts +1 -0
  173. package/dist/cell/actor-types/action.d.ts +65 -0
  174. package/dist/cell/actor-types/actor.d.ts +251 -0
  175. package/dist/cell/actor-types/blackboard.d.ts +46 -0
  176. package/dist/cell/actor-types/crypto.d.ts +6 -0
  177. package/dist/cell/actor-types/index.d.ts +12 -0
  178. package/dist/cell/actor-types/message.d.ts +209 -0
  179. package/dist/cell/actor-types/metrics.d.ts +43 -0
  180. package/dist/cell/actor-types/observation.d.ts +45 -0
  181. package/dist/cell/actor-types/result.d.ts +110 -0
  182. package/dist/cell/agents/AnalystCellAgent.d.ts +2 -0
  183. package/dist/cell/agents/BaseRuntimeAgent.d.ts +2 -0
  184. package/dist/cell/agents/DirectorCellAgent.d.ts +2 -0
  185. package/dist/cell/agents/ExecutorCellAgent.d.ts +2 -0
  186. package/dist/cell/agents/VerifierCellAgent.d.ts +2 -0
  187. package/dist/cell/agents/index.d.ts +5 -0
  188. package/dist/cell/index.d.ts +9 -0
  189. package/dist/cell/internal/ActorRunnerAdapter.d.ts +2 -0
  190. package/dist/cell/internal/CellActorFactory.d.ts +2 -0
  191. package/dist/cell/internal/NoOpRuntimeBus.d.ts +2 -0
  192. package/dist/cell/internal/delay.d.ts +1 -0
  193. package/dist/cell/pool-index.d.ts +1 -0
  194. package/dist/cell/types.d.ts +47 -0
  195. package/dist/checkpoint/CheckpointFactoryRegistry.d.ts +16 -0
  196. package/dist/checkpoint/CheckpointManager.d.ts +41 -0
  197. package/dist/checkpoint/index.d.ts +5 -0
  198. package/dist/checkpoint/policy-hash.d.ts +11 -0
  199. package/dist/consensus/ConsensusGate.d.ts +83 -0
  200. package/dist/consensus/ConsensusRuleEngine.d.ts +1 -0
  201. package/dist/consensus/agenda/AgendaStore.d.ts +1 -0
  202. package/dist/consensus/agenda/events.d.ts +1 -0
  203. package/dist/consensus/agenda/index.d.ts +1 -0
  204. package/dist/consensus/agenda/types.d.ts +1 -0
  205. package/dist/consensus/index.d.ts +2 -0
  206. package/dist/consensus/types.d.ts +1 -0
  207. package/dist/consensus/voting/VotingSessionStore.d.ts +1 -0
  208. package/dist/consensus/voting/index.d.ts +1 -0
  209. package/dist/consensus/voting/types.d.ts +1 -0
  210. package/dist/errors/OboraErrorCode.d.ts +28 -0
  211. package/dist/errors/index.d.ts +1 -0
  212. package/dist/gates/GateAssignment.d.ts +28 -0
  213. package/dist/gates/MultiStageApproval.d.ts +74 -0
  214. package/dist/gates/SLAManager.d.ts +21 -0
  215. package/dist/gates/index.d.ts +4 -0
  216. package/dist/gates/types.d.ts +19 -0
  217. package/dist/index.cjs +26588 -0
  218. package/dist/index.cjs.map +1 -0
  219. package/dist/index.d.ts +39 -0
  220. package/dist/index.js +26330 -0
  221. package/dist/index.js.map +1 -0
  222. package/dist/judgment/JudgmentEngine.d.ts +24 -0
  223. package/dist/judgment/JudgmentNormalizer.d.ts +37 -0
  224. package/dist/judgment/JudgmentPolicy.d.ts +74 -0
  225. package/dist/judgment/JudgmentReporter.d.ts +70 -0
  226. package/dist/judgment/OperationalLogger.d.ts +68 -0
  227. package/dist/judgment/index.d.ts +6 -0
  228. package/dist/judgment/types.d.ts +42 -0
  229. package/dist/orchestrator/ExecutionContextBuilder.d.ts +1 -0
  230. package/dist/orchestrator/RuntimeOrchestrator.d.ts +94 -0
  231. package/dist/orchestrator/StepScheduler.d.ts +2 -0
  232. package/dist/orchestrator/index.d.ts +4 -0
  233. package/dist/orchestrator/types.d.ts +80 -0
  234. package/dist/orchestrator/utils.d.ts +1 -0
  235. package/dist/patterns/CustomPatternAPI.d.ts +10 -0
  236. package/dist/patterns/PatternRegistry.d.ts +19 -0
  237. package/dist/patterns/builtin/BrainstormPattern.d.ts +13 -0
  238. package/dist/patterns/builtin/CompositePattern.d.ts +11 -0
  239. package/dist/patterns/builtin/ConsensusPattern.d.ts +17 -0
  240. package/dist/patterns/builtin/DiscussionPattern.d.ts +13 -0
  241. package/dist/patterns/builtin/FanOutFanInPattern.d.ts +21 -0
  242. package/dist/patterns/builtin/PeerReviewPattern.d.ts +40 -0
  243. package/dist/patterns/builtin/PipelinePattern.d.ts +6 -0
  244. package/dist/patterns/builtin/RedBluePattern.d.ts +13 -0
  245. package/dist/patterns/builtin/SupervisorPattern.d.ts +13 -0
  246. package/dist/patterns/builtin/discussion/MeetingStateMachine.d.ts +1 -0
  247. package/dist/patterns/builtin/discussion/index.d.ts +2 -0
  248. package/dist/patterns/builtin/discussion/types.d.ts +1 -0
  249. package/dist/patterns/examples/OxfordDebatePattern.d.ts +11 -0
  250. package/dist/patterns/examples/index.d.ts +1 -0
  251. package/dist/patterns/index.d.ts +14 -0
  252. package/dist/patterns/resolveCustomPattern.d.ts +22 -0
  253. package/dist/patterns/types.d.ts +252 -0
  254. package/dist/plugins/PluginLoader.d.ts +16 -0
  255. package/dist/plugins/PluginRegistry.d.ts +15 -0
  256. package/dist/plugins/builtins.d.ts +137 -0
  257. package/dist/plugins/index.d.ts +5 -0
  258. package/dist/plugins/types.d.ts +52 -0
  259. package/dist/plugins/validator.d.ts +3 -0
  260. package/dist/policy/DefaultPolicyEngine.d.ts +43 -0
  261. package/dist/policy/DynamicPolicyContext.d.ts +21 -0
  262. package/dist/policy/DynamicQuotaEvaluator.d.ts +9 -0
  263. package/dist/policy/DynamicToolPolicy.d.ts +10 -0
  264. package/dist/policy/PolicyEngine.d.ts +14 -0
  265. package/dist/policy/PolicyLoader.d.ts +3 -0
  266. package/dist/policy/expressions/ExpressionEvaluator.d.ts +37 -0
  267. package/dist/policy/expressions/ExpressionParser.d.ts +35 -0
  268. package/dist/policy/expressions/constants.d.ts +5 -0
  269. package/dist/policy/expressions/index.d.ts +2 -0
  270. package/dist/policy/index.d.ts +9 -0
  271. package/dist/policy/rules/GateRule.d.ts +7 -0
  272. package/dist/policy/rules/ResourceRule.d.ts +7 -0
  273. package/dist/policy/rules/SandboxRule.d.ts +7 -0
  274. package/dist/policy/rules/ToolRule.d.ts +23 -0
  275. package/dist/policy/rules/index.d.ts +4 -0
  276. package/dist/policy/types.d.ts +156 -0
  277. package/dist/recovery/RecoveryEngine.d.ts +11 -0
  278. package/dist/recovery/RetryStrategy.d.ts +2 -0
  279. package/dist/recovery/SupervisionTree.d.ts +1 -0
  280. package/dist/recovery/index.d.ts +4 -0
  281. package/dist/recovery/types.d.ts +103 -0
  282. package/dist/state/RuntimeBlackboardCompat.d.ts +1 -0
  283. package/dist/state/StateBinder.d.ts +40 -0
  284. package/dist/state/StateManager.d.ts +1 -0
  285. package/dist/state/accessors/decisions-accessor.d.ts +1 -0
  286. package/dist/state/accessors/index.d.ts +1 -0
  287. package/dist/state/accessors/knowledge-accessor.d.ts +1 -0
  288. package/dist/state/accessors/state-accessor.d.ts +1 -0
  289. package/dist/state/blackboard-events.d.ts +1 -0
  290. package/dist/state/core-index.d.ts +1 -0
  291. package/dist/state/id-generator.d.ts +1 -0
  292. package/dist/state/immutable.d.ts +1 -0
  293. package/dist/state/index.d.ts +6 -0
  294. package/dist/state/path-utils.d.ts +1 -0
  295. package/dist/state/snapshot/compression.d.ts +1 -0
  296. package/dist/state/snapshot/id-utils.d.ts +1 -0
  297. package/dist/state/snapshot/index.d.ts +1 -0
  298. package/dist/state/snapshot/serializer.d.ts +1 -0
  299. package/dist/state/snapshot/snapshot-comparer.d.ts +1 -0
  300. package/dist/state/snapshot/snapshot-creator.d.ts +1 -0
  301. package/dist/state/snapshot/snapshot-manager.d.ts +1 -0
  302. package/dist/state/snapshot/snapshot-restorer.d.ts +1 -0
  303. package/dist/state/snapshot/snapshot-serializer.d.ts +1 -0
  304. package/dist/state/snapshot/snapshot-validator.d.ts +1 -0
  305. package/dist/state/snapshot/type-guards.d.ts +1 -0
  306. package/dist/state/snapshot/types.d.ts +1 -0
  307. package/dist/state/snapshot/utils.d.ts +1 -0
  308. package/dist/state/tkg.d.ts +1 -0
  309. package/dist/state/types/agent.d.ts +1 -0
  310. package/dist/state/types/base.d.ts +1 -0
  311. package/dist/state/types/blackboard.d.ts +1 -0
  312. package/dist/state/types/decision.d.ts +1 -0
  313. package/dist/state/types/index.d.ts +1 -0
  314. package/dist/state/types/knowledge.d.ts +1 -0
  315. package/dist/state/types/message.d.ts +1 -0
  316. package/dist/state/types/task.d.ts +1 -0
  317. package/dist/state/types/tkg.d.ts +1 -0
  318. package/dist/state/versioning.d.ts +1 -0
  319. package/dist/storage/index.d.ts +3 -0
  320. package/dist/storage/inmemory-adapter.d.ts +27 -0
  321. package/dist/storage/sqlite-adapter.d.ts +43 -0
  322. package/dist/storage/types.d.ts +129 -0
  323. package/package.json +76 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Obora Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,183 @@
1
+ # @obora/runtime
2
+
3
+ Core execution engine for Obora AI Control Runtime.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @obora/runtime
9
+ ```
10
+
11
+ ## Overview
12
+
13
+ The runtime package provides:
14
+
15
+ - **Execution Cells** — Isolated AI execution boundaries
16
+ - **Policy Engine** — Rule-based control for tools and actions
17
+ - **Audit Trail** — Full event trace for compliance
18
+ - **Recovery Engine** — Failure handling strategies
19
+ - **Consensus System** — Multi-agent agreement gates
20
+ - **Plugin System** — Extensible architecture
21
+
22
+ ## Architecture
23
+
24
+ ```
25
+ @obora/runtime
26
+ ├── cell/ # Execution cells (actor-based)
27
+ │ ├── ExecutionCell
28
+ │ ├── CellManager
29
+ │ └── AgentPool
30
+ ├── policy/ # Policy engine
31
+ │ ├── PolicyEngine
32
+ │ ├── PolicyEvaluator
33
+ │ └── expressions/
34
+ ├── audit/ # Audit trail
35
+ │ ├── InMemoryAuditStore
36
+ │ ├── AuditTrail
37
+ │ └── events/
38
+ ├── recovery/ # Recovery engine
39
+ │ ├── RecoveryEngine
40
+ │ ├── RetryStrategy
41
+ │ └── SupervisionTree
42
+ ├── consensus/ # Consensus system
43
+ │ ├── ConsensusRuleEngine
44
+ │ ├── VotingSessionStore
45
+ │ └── AgendaStore
46
+ ├── patterns/ # Built-in patterns
47
+ │ ├── PipelinePattern
48
+ │ ├── ConsensusPattern
49
+ │ ├── PeerReviewPattern
50
+ │ ├── SupervisorPattern
51
+ │ └── ...
52
+ ├── state/ # State management
53
+ │ ├── snapshot/
54
+ │ └── types/
55
+ └── plugins/ # Plugin system
56
+ ├── PluginRegistry
57
+ ├── PluginLoader
58
+ └── builtins
59
+ ```
60
+
61
+ ## Key Exports
62
+
63
+ ### Policy Engine
64
+
65
+ ```typescript
66
+ import { PolicyEngine, PolicyEvaluator } from "@obora/runtime";
67
+
68
+ const engine = new PolicyEngine();
69
+ engine.register({
70
+ name: "no-destructive-ops",
71
+ condition: "tool.name matches 'delete*'",
72
+ effect: "deny",
73
+ message: "Destructive operations not allowed"
74
+ });
75
+
76
+ const result = engine.evaluate({ tool: { name: "delete_file" } });
77
+ // { allowed: false, reason: "Destructive operations not allowed" }
78
+ ```
79
+
80
+ ### Audit Trail
81
+
82
+ ```typescript
83
+ import { InMemoryAuditStore } from "@obora/runtime";
84
+
85
+ const store = new InMemoryAuditStore();
86
+ await store.record({
87
+ type: "step_start",
88
+ executionId: "exec-1",
89
+ stepName: "plan",
90
+ timestamp: new Date()
91
+ });
92
+
93
+ const events = await store.query({ executionId: "exec-1" });
94
+ ```
95
+
96
+ ### Recovery Engine
97
+
98
+ ```typescript
99
+ import { RecoveryEngine, RetryStrategy } from "@obora/runtime";
100
+
101
+ const engine = new RecoveryEngine({
102
+ strategies: [
103
+ new RetryStrategy({ maxRetries: 3, backoff: "exponential" })
104
+ ]
105
+ });
106
+
107
+ const result = await engine.executeWithRecovery(async () => {
108
+ // risky operation
109
+ });
110
+ ```
111
+
112
+ ### Consensus
113
+
114
+ ```typescript
115
+ import { ConsensusRuleEngine, VotingSessionStore } from "@obora/runtime";
116
+
117
+ const engine = new ConsensusRuleEngine();
118
+ const result = await engine.evaluate({
119
+ votes: [
120
+ { participant: "r1", vote: "APPROVE" },
121
+ { participant: "r2", vote: "APPROVE" },
122
+ { participant: "r3", vote: "REJECT" }
123
+ ],
124
+ rule: "majority"
125
+ });
126
+ // { approved: true, ratio: 0.67 }
127
+ ```
128
+
129
+ ### Patterns
130
+
131
+ ```typescript
132
+ import {
133
+ PipelinePattern,
134
+ ConsensusPattern,
135
+ PeerReviewPattern,
136
+ SupervisorPattern,
137
+ FanOutFanInPattern
138
+ } from "@obora/runtime";
139
+ ```
140
+
141
+ ### Plugin System
142
+
143
+ ```typescript
144
+ import { PluginRegistry, registerBuiltinPlugins } from "@obora/runtime";
145
+
146
+ const registry = new PluginRegistry();
147
+ await registerBuiltinPlugins(registry);
148
+
149
+ // Register custom plugin
150
+ registry.register({
151
+ name: "my-tool",
152
+ version: "1.0.0",
153
+ type: "tool",
154
+ schema: { ... },
155
+ execute: async (params) => { ... }
156
+ });
157
+ ```
158
+
159
+ ## Plugin Types
160
+
161
+ | Type | Interface | Description |
162
+ |------|-----------|-------------|
163
+ | `agent` | `AgentPlugin` | Custom agent implementations |
164
+ | `tool` | `ToolPlugin` | External tool integrations |
165
+ | `pattern` | `PatternPlugin` | Workflow patterns |
166
+ | `policy-rule` | `PolicyRulePlugin` | Custom policy rules |
167
+ | `recovery-strategy` | `RecoveryStrategyPlugin` | Failure recovery |
168
+ | `consensus-rule` | `ConsensusRulePlugin` | Consensus rules |
169
+ | `audit-store` | `AuditStorePlugin` | Audit persistence |
170
+ | `state-transform` | `StateTransformPlugin` | State transformations |
171
+
172
+ ## Storage
173
+
174
+ ```typescript
175
+ import { SQLiteStorageAdapter } from "@obora/runtime/storage";
176
+
177
+ const storage = new SQLiteStorageAdapter({ path: "./data.db" });
178
+ await storage.initialize();
179
+ ```
180
+
181
+ ## License
182
+
183
+ MIT
@@ -0,0 +1,87 @@
1
+ import type { Action } from "../types/action";
2
+ import { Actor, ActorId, ActorRole, ActorStatus, ActorLifecycleStatus } from "../types/actor";
3
+ import type { IBlackboard } from "../types/blackboard";
4
+ import type { IMessageBus, Message } from "../types/message";
5
+ import { ActorMetrics } from "../types/metrics";
6
+ import type { Observation } from "../types/observation";
7
+ import type { Result } from "../types/result";
8
+ /**
9
+ * Actor 구현을 위한 추상 기본 클래스 (스펙 기준)
10
+ *
11
+ * 구체적인 Actor 구현 시 이 클래스를 상속받아 필요한 메서드를 구현합니다.
12
+ *
13
+ * 참고: [[spec/13-actor.md|13-actor.md]]
14
+ */
15
+ export declare abstract class BaseActor implements Actor {
16
+ readonly id: ActorId;
17
+ readonly name: string;
18
+ readonly role: ActorRole;
19
+ board: IBlackboard;
20
+ messageBus: IMessageBus;
21
+ private _status;
22
+ lastActivity: Date;
23
+ createdAt: Date;
24
+ metrics: ActorMetrics;
25
+ private subscriptions;
26
+ constructor(id: ActorId, name: string, role: ActorRole, board: IBlackboard, messageBus: IMessageBus);
27
+ get status(): ActorStatus;
28
+ protected setStatus(newStatus: ActorLifecycleStatus): void;
29
+ /**
30
+ * 하위 클래스에서 observe()를 구현해야 합니다.
31
+ * 동기 또는 비동기 구현 모두 가능합니다.
32
+ */
33
+ abstract observe(): Observation | Promise<Observation>;
34
+ /**
35
+ * 하위 클래스에서 think()를 구현해야 합니다.
36
+ * 동기 또는 비동기 구현 모두 가능합니다.
37
+ */
38
+ abstract think(observation: Observation): Action | Promise<Action>;
39
+ /**
40
+ * 하위 클래스에서 act()를 구현해야 합니다.
41
+ * 동기 또는 비동기 구현 모두 가능합니다.
42
+ */
43
+ abstract act(action: Action): Result | Promise<Result>;
44
+ /**
45
+ * receive()의 기본 구현 - 메시지 처리
46
+ */
47
+ receive(message: Message): Promise<void>;
48
+ /**
49
+ * report()의 기본 구현 - Blackboard에 결과 기록
50
+ * 동기 또는 비동기 구현 모두 가능합니다.
51
+ */
52
+ report(result: Result): void | Promise<void>;
53
+ /**
54
+ * start()의 기본 구현
55
+ */
56
+ start(): Promise<void>;
57
+ /**
58
+ * stop()의 기본 구현
59
+ */
60
+ stop(): Promise<void>;
61
+ /**
62
+ * restart()의 기본 구현
63
+ */
64
+ restart(): Promise<void>;
65
+ /**
66
+ * isAlive() 기본 구현
67
+ */
68
+ isAlive(): boolean;
69
+ /**
70
+ * getStatus() 기본 구현
71
+ */
72
+ getStatus(): ActorStatus;
73
+ /**
74
+ * 메트릭 업데이트
75
+ */
76
+ protected updateMetrics(result: Result): void;
77
+ private handleTaskAssign;
78
+ private handlePing;
79
+ private handleStatusRequest;
80
+ protected handleCustomMessage(_message: Message): void;
81
+ private teardownMessageHandlers;
82
+ private setupMessageHandlers;
83
+ private heartbeatTimer?;
84
+ private startHeartbeat;
85
+ private stopHeartbeat;
86
+ private updateLastActivity;
87
+ }
@@ -0,0 +1,194 @@
1
+ import type { ActorFactory } from "../runtime/types";
2
+ import type { ActorId, ActorRole, ActorStatus } from "../types/actor";
3
+ import type { IBlackboard } from "../types/actor";
4
+ import type { IMessageBus } from "../types/message";
5
+ /**
6
+ * Actor Pool 설정
7
+ */
8
+ export interface PoolConfig {
9
+ /** 풀 이름 */
10
+ name: string;
11
+ /** Actor 역할 (풀 내 모든 Actor는 동일 역할) */
12
+ role: ActorRole;
13
+ /** Actor 유형 */
14
+ type: string;
15
+ /** 초기 Actor 수 */
16
+ initialSize?: number;
17
+ /** 최소 Actor 수 */
18
+ minSize?: number;
19
+ /** 최대 Actor 수 */
20
+ maxSize?: number;
21
+ /** Idle 타임아웃 (ms) - 지정 시간 동안 작업 없으면 Actor 종료 */
22
+ idleTimeout?: number;
23
+ /** 확장 전략 */
24
+ scaleStrategy?: "fixed" | "dynamic" | "adaptive";
25
+ /** 작업 분배 전략 */
26
+ dispatchStrategy?: "round-robin" | "least-busy" | "random";
27
+ /** 작업 큐 최대 크기 */
28
+ maxQueueSize?: number;
29
+ /** 작업 대기 타임아웃 (ms) */
30
+ taskTimeout?: number;
31
+ /** 디버그 모드 */
32
+ debug?: boolean;
33
+ }
34
+ /**
35
+ * 작업
36
+ */
37
+ export interface Task<T = unknown> {
38
+ /** 작업 ID */
39
+ id: string;
40
+ /** 작업 데이터 */
41
+ data: T;
42
+ /** 생성 시간 */
43
+ createdAt: Date;
44
+ /** 우선순위 (높을수록 우선) */
45
+ priority: number;
46
+ /** 만료 시간 */
47
+ expiresAt?: Date;
48
+ /** 완료 콜백 */
49
+ onComplete?: (result: unknown, error?: Error) => void;
50
+ }
51
+ /**
52
+ * 작업 결과
53
+ */
54
+ export interface TaskResult {
55
+ /** 작업 ID */
56
+ taskId: string;
57
+ /** 처리한 Actor ID */
58
+ actorId: ActorId;
59
+ /** 결과 데이터 */
60
+ result: unknown;
61
+ /** 에러 (실패 시) */
62
+ error?: Error;
63
+ /** 시작 시간 */
64
+ startedAt: Date;
65
+ /** 완료 시간 */
66
+ completedAt: Date;
67
+ /** 실행 시간 (ms) */
68
+ duration: number;
69
+ }
70
+ /**
71
+ * Actor Pool 메트릭
72
+ */
73
+ export interface PoolMetrics {
74
+ /** 총 Actor 수 */
75
+ totalActors: number;
76
+ /** 활성 Actor 수 */
77
+ activeActors: number;
78
+ /** Idle 상태 Actor 수 */
79
+ idleActors: number;
80
+ /** 에러 상태 Actor 수 */
81
+ errorActors: number;
82
+ /** 대기열 크기 */
83
+ queueSize: number;
84
+ /** 평균 대기 시간 (ms) */
85
+ averageQueueTime: number;
86
+ /** 처리량 */
87
+ throughput: {
88
+ messagesPerSecond: number;
89
+ actionsPerSecond: number;
90
+ };
91
+ /** 이용률 (0.0 ~ 1.0) */
92
+ utilization: number;
93
+ }
94
+ /**
95
+ * Actor Pool
96
+ *
97
+ * 동적으로 확장/축소 가능한 Actor 풀을 관리하고,
98
+ * 작업을 분배하여 효율적인 리소스 사용을 제공합니다.
99
+ */
100
+ export declare class ActorPool {
101
+ private readonly config;
102
+ private readonly board;
103
+ private readonly messageBus;
104
+ private readonly factory;
105
+ private readonly actors;
106
+ private readonly taskQueue;
107
+ private readonly inProgress;
108
+ private readonly completedTasks;
109
+ private readonly pendingResults;
110
+ private readonly waitingTasks;
111
+ private readonly actorConfigs;
112
+ private readonly idleTimers;
113
+ private readonly metrics;
114
+ private isRunning;
115
+ private roundRobinIndex;
116
+ private scaleTimer?;
117
+ private dispatchTimer?;
118
+ constructor(config: PoolConfig, board: IBlackboard, factory: ActorFactory, messageBus?: IMessageBus);
119
+ /**
120
+ * 풀 시작
121
+ */
122
+ start(): Promise<void>;
123
+ /**
124
+ * 풀 종료
125
+ */
126
+ stop(): Promise<void>;
127
+ /**
128
+ * 작업 제출
129
+ * @param data 작업 데이터
130
+ * @param priority 우선순위 (높을수록 우선)
131
+ * @param expiresIn 만료 시간 (ms, 선택)
132
+ * @returns 작업 ID
133
+ */
134
+ submit<T = unknown>(data: T, priority?: number, expiresIn?: number): Promise<string>;
135
+ /**
136
+ * 작업 제출 및 결과 대기
137
+ * @param data 작업 데이터
138
+ * @param priority 우선순위
139
+ * @returns 작업 결과
140
+ */
141
+ submitAndWait<T = unknown, R = unknown>(data: T, priority?: number): Promise<R>;
142
+ /**
143
+ * 풀 크기 조정
144
+ * @param size 목표 크기
145
+ */
146
+ scaleTo(size: number): Promise<void>;
147
+ /**
148
+ * 풀 크기 증가
149
+ * @param count 증가할 Actor 수
150
+ */
151
+ scaleUp(count?: number): Promise<void>;
152
+ /**
153
+ * 풀 크기 감소
154
+ * @param count 감소할 Actor 수
155
+ */
156
+ scaleDown(count?: number): Promise<void>;
157
+ /**
158
+ * 풀 메트릭 조회
159
+ */
160
+ getMetrics(): PoolMetrics;
161
+ /**
162
+ * Actor 목록 조회
163
+ */
164
+ getActors(): ActorId[];
165
+ /**
166
+ * Actor 상태 조회
167
+ */
168
+ getActorStatus(actorId: ActorId): ActorStatus;
169
+ /**
170
+ * 풀 이름
171
+ */
172
+ get name(): string;
173
+ private validateConfig;
174
+ private spawnActor;
175
+ private removeIdleActors;
176
+ private removeActor;
177
+ private selectActor;
178
+ private selectRoundRobin;
179
+ private selectLeastBusy;
180
+ private selectRandom;
181
+ private dispatchTaskToActor;
182
+ private recordTaskResult;
183
+ private enqueueTask;
184
+ private startDispatch;
185
+ private startAutoScale;
186
+ private autoScale;
187
+ private startIdleTimer;
188
+ private resetIdleTimer;
189
+ private isActorBusy;
190
+ private waitForTaskResult;
191
+ private clearTimers;
192
+ private updateMetrics;
193
+ private log;
194
+ }
@@ -0,0 +1,16 @@
1
+ import type { IMessageBus, Message, MessageType, UnsubscribeFn } from "../types/message";
2
+ import type { ActorId } from "../types/actor";
3
+ /**
4
+ * No-Op MessageBus - 기본값으로 사용되는 빈 구현
5
+ */
6
+ export declare class NoOpMessageBus implements IMessageBus {
7
+ send(message: Message): void;
8
+ sendTo(to: ActorId, message: Omit<Message, "to">): void;
9
+ broadcast(message: Omit<Message, "to">): void;
10
+ receive(handler: (message: Message) => void): void;
11
+ request<T>(message: Message, timeoutMs?: number): Promise<Message<T>>;
12
+ subscribe(messageType: MessageType, handler: (message: Message) => void): UnsubscribeFn;
13
+ getQueueSize(actorId: ActorId): number;
14
+ clearQueue(actorId: ActorId): void;
15
+ filter(predicate: (message: Message) => boolean): Message[];
16
+ }
@@ -0,0 +1,76 @@
1
+ import type { ActorFactory } from "../runtime/types";
2
+ import type { IBlackboard } from "../types/actor";
3
+ import type { IMessageBus } from "../types/message";
4
+ import { ActorPool, PoolConfig, PoolMetrics } from "./ActorPool";
5
+ /**
6
+ * Pool Manager
7
+ *
8
+ * 여러 Actor Pool을 관리하는 매니저입니다.
9
+ */
10
+ export declare class PoolManager {
11
+ private readonly board;
12
+ private readonly messageBus;
13
+ private readonly factory;
14
+ private readonly pools;
15
+ private isRunning;
16
+ constructor(board: IBlackboard, factory: ActorFactory, messageBus?: IMessageBus);
17
+ /**
18
+ * 매니저 시작
19
+ */
20
+ start(): Promise<void>;
21
+ /**
22
+ * 매니저 종료
23
+ */
24
+ stop(): Promise<void>;
25
+ /**
26
+ * Pool 등록
27
+ * @param config Pool 설정
28
+ * @returns 생성된 Pool
29
+ */
30
+ registerPool(config: PoolConfig): ActorPool;
31
+ /**
32
+ * Pool 등록 해제
33
+ * @param name Pool 이름
34
+ */
35
+ unregisterPool(name: string): Promise<void>;
36
+ /**
37
+ * Pool 조회
38
+ * @param name Pool 이름
39
+ * @returns Pool 인스턴스
40
+ */
41
+ getPool(name: string): ActorPool;
42
+ /**
43
+ * Pool 존재 여부 확인
44
+ * @param name Pool 이름
45
+ * @returns 존재 여부
46
+ */
47
+ hasPool(name: string): boolean;
48
+ /**
49
+ * 모든 Pool 이름 조회
50
+ * @returns Pool 이름 배열
51
+ */
52
+ listPools(): string[];
53
+ /**
54
+ * 모든 Pool의 메트릭 조회
55
+ * @returns Pool 이름별 메트릭 맵
56
+ */
57
+ getAllMetrics(): Map<string, PoolMetrics>;
58
+ /**
59
+ * 특정 Pool의 메트릭 조회
60
+ * @param name Pool 이름
61
+ * @returns Pool 메트릭
62
+ */
63
+ getPoolMetrics(name: string): PoolMetrics;
64
+ /**
65
+ * Pool 개수
66
+ */
67
+ size(): number;
68
+ /**
69
+ * 실행 상태
70
+ */
71
+ getStatus(): {
72
+ running: boolean;
73
+ poolCount: number;
74
+ };
75
+ private log;
76
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./ActorPool";
2
+ export * from "./PoolManager";
3
+ export * from "./NoOpMessageBus";
@@ -0,0 +1,54 @@
1
+ import type { Actor } from "../types/actor";
2
+ /**
3
+ * Actor 실행 루프 옵션
4
+ */
5
+ export interface RunnerOptions {
6
+ /** 실행 간격 (ms) */
7
+ interval?: number;
8
+ /** 최대 연속 실행 횟수 */
9
+ maxIterations?: number;
10
+ /** 에러 발생 시 중지 여부 */
11
+ stopOnError?: boolean;
12
+ /** 종료 조건 콜백 */
13
+ stopCondition?: () => boolean | Promise<boolean>;
14
+ /** 디버그 모드 */
15
+ debug?: boolean;
16
+ }
17
+ /**
18
+ * Actor 실행 루프
19
+ *
20
+ * Actor의 observe-think-act-report 사이클을 반복 실행합니다.
21
+ */
22
+ export declare class ActorRunner {
23
+ private readonly actor;
24
+ private readonly options;
25
+ private isRunning;
26
+ private iterationCount;
27
+ private abortController;
28
+ constructor(actor: Actor, options?: RunnerOptions);
29
+ /**
30
+ * 실행 루프 시작
31
+ */
32
+ start(): Promise<void>;
33
+ /**
34
+ * 실행 루프 중지
35
+ */
36
+ stop(): void;
37
+ /**
38
+ * 현재 실행 중인지 확인
39
+ */
40
+ running(): boolean;
41
+ /**
42
+ * 현재 반복 횟수
43
+ */
44
+ getIterationCount(): number;
45
+ private runCycle;
46
+ private shouldStop;
47
+ /**
48
+ * 내부 로그 출력.
49
+ *
50
+ * - `error`가 전달되면 `debug` 옵션과 무관하게 `console.error`로 항상 출력합니다.
51
+ * - 일반 로그는 `debug: true`일 때만 `console.log`로 출력합니다.
52
+ */
53
+ private log;
54
+ }