@holoscript/framework 6.0.3

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 (329) hide show
  1. package/ALL-test-results.json +1 -0
  2. package/CHANGELOG.md +8 -0
  3. package/LICENSE +21 -0
  4. package/ROADMAP.md +175 -0
  5. package/dist/AgentManifest-CB4xM-Ma.d.cts +704 -0
  6. package/dist/AgentManifest-CB4xM-Ma.d.ts +704 -0
  7. package/dist/BehaviorTree-BrBFECv5.d.cts +103 -0
  8. package/dist/BehaviorTree-BrBFECv5.d.ts +103 -0
  9. package/dist/InvisibleWallet-BB6tFvRA.d.cts +1732 -0
  10. package/dist/InvisibleWallet-rtRrBOA8.d.ts +1732 -0
  11. package/dist/OrchestratorAgent-BvWgf9uw.d.cts +798 -0
  12. package/dist/OrchestratorAgent-Q_CbVTmO.d.ts +798 -0
  13. package/dist/agents/index.cjs +4790 -0
  14. package/dist/agents/index.d.cts +1788 -0
  15. package/dist/agents/index.d.ts +1788 -0
  16. package/dist/agents/index.js +4695 -0
  17. package/dist/ai/index.cjs +5347 -0
  18. package/dist/ai/index.d.cts +1753 -0
  19. package/dist/ai/index.d.ts +1753 -0
  20. package/dist/ai/index.js +5244 -0
  21. package/dist/behavior.cjs +449 -0
  22. package/dist/behavior.d.cts +130 -0
  23. package/dist/behavior.d.ts +130 -0
  24. package/dist/behavior.js +407 -0
  25. package/dist/economy/index.cjs +3659 -0
  26. package/dist/economy/index.d.cts +747 -0
  27. package/dist/economy/index.d.ts +747 -0
  28. package/dist/economy/index.js +3617 -0
  29. package/dist/implementations-D9T3un9D.d.cts +236 -0
  30. package/dist/implementations-D9T3un9D.d.ts +236 -0
  31. package/dist/index.cjs +24550 -0
  32. package/dist/index.d.cts +1729 -0
  33. package/dist/index.d.ts +1729 -0
  34. package/dist/index.js +24277 -0
  35. package/dist/learning/index.cjs +219 -0
  36. package/dist/learning/index.d.cts +104 -0
  37. package/dist/learning/index.d.ts +104 -0
  38. package/dist/learning/index.js +189 -0
  39. package/dist/negotiation/index.cjs +970 -0
  40. package/dist/negotiation/index.d.cts +610 -0
  41. package/dist/negotiation/index.d.ts +610 -0
  42. package/dist/negotiation/index.js +931 -0
  43. package/dist/skills/index.cjs +1118 -0
  44. package/dist/skills/index.d.cts +289 -0
  45. package/dist/skills/index.d.ts +289 -0
  46. package/dist/skills/index.js +1079 -0
  47. package/dist/swarm/index.cjs +5268 -0
  48. package/dist/swarm/index.d.cts +2433 -0
  49. package/dist/swarm/index.d.ts +2433 -0
  50. package/dist/swarm/index.js +5221 -0
  51. package/dist/training/index.cjs +2745 -0
  52. package/dist/training/index.d.cts +1734 -0
  53. package/dist/training/index.d.ts +1734 -0
  54. package/dist/training/index.js +2687 -0
  55. package/extract-failures.js +10 -0
  56. package/package.json +82 -0
  57. package/src/__tests__/bounty-marketplace.test.ts +374 -0
  58. package/src/__tests__/delegation.test.ts +144 -0
  59. package/src/__tests__/distributed-claimer.test.ts +147 -0
  60. package/src/__tests__/done-log-audit.test.ts +342 -0
  61. package/src/__tests__/framework.test.ts +865 -0
  62. package/src/__tests__/goal-synthesizer.test.ts +236 -0
  63. package/src/__tests__/presence.test.ts +223 -0
  64. package/src/__tests__/protocol-agent.test.ts +254 -0
  65. package/src/__tests__/revenue-splitter.test.ts +114 -0
  66. package/src/__tests__/scenario-driven-todo.test.ts +197 -0
  67. package/src/__tests__/self-improve.test.ts +349 -0
  68. package/src/__tests__/service-lifecycle.test.ts +237 -0
  69. package/src/__tests__/skill-router.test.ts +121 -0
  70. package/src/agents/AgentManifest.ts +493 -0
  71. package/src/agents/AgentRegistry.ts +475 -0
  72. package/src/agents/AgentTypes.ts +585 -0
  73. package/src/agents/AgentWalletRegistry.ts +83 -0
  74. package/src/agents/AuthenticatedCRDT.ts +388 -0
  75. package/src/agents/CapabilityMatcher.ts +453 -0
  76. package/src/agents/CrossRealityHandoff.ts +305 -0
  77. package/src/agents/CulturalMemory.ts +454 -0
  78. package/src/agents/FederatedRegistryAdapter.ts +429 -0
  79. package/src/agents/NormEngine.ts +450 -0
  80. package/src/agents/OrchestratorAgent.ts +414 -0
  81. package/src/agents/SkillWorkflowEngine.ts +472 -0
  82. package/src/agents/TaskDelegationService.ts +551 -0
  83. package/src/agents/__tests__/AgentManifest.prod.test.ts +134 -0
  84. package/src/agents/__tests__/AgentManifest.test.ts +182 -0
  85. package/src/agents/__tests__/AgentModule.test.ts +864 -0
  86. package/src/agents/__tests__/AgentRegistry.prod.test.ts +125 -0
  87. package/src/agents/__tests__/AgentRegistry.test.ts +148 -0
  88. package/src/agents/__tests__/AgentTypes.test.ts +534 -0
  89. package/src/agents/__tests__/AgentWalletRegistry.test.ts +152 -0
  90. package/src/agents/__tests__/AuthenticatedCRDT.test.ts +558 -0
  91. package/src/agents/__tests__/CapabilityMatcher.prod.test.ts +117 -0
  92. package/src/agents/__tests__/CapabilityMatcher.test.ts +178 -0
  93. package/src/agents/__tests__/CrossRealityHandoff.test.ts +402 -0
  94. package/src/agents/__tests__/CulturalMemory.test.ts +200 -0
  95. package/src/agents/__tests__/FederatedRegistryAdapter.test.ts +409 -0
  96. package/src/agents/__tests__/NormEngine.test.ts +276 -0
  97. package/src/agents/__tests__/OrchestratorAgent.test.ts +182 -0
  98. package/src/agents/__tests__/SkillWorkflowEngine.test.ts +357 -0
  99. package/src/agents/__tests__/TaskDelegationService.test.ts +446 -0
  100. package/src/agents/index.ts +107 -0
  101. package/src/agents/spatial-comms/Layer1RealTime.ts +621 -0
  102. package/src/agents/spatial-comms/Layer2A2A.ts +661 -0
  103. package/src/agents/spatial-comms/Layer3MCP.ts +651 -0
  104. package/src/agents/spatial-comms/ProtocolTypes.ts +543 -0
  105. package/src/agents/spatial-comms/SpatialCommClient.ts +483 -0
  106. package/src/agents/spatial-comms/__tests__/performance-benchmark.test.ts +465 -0
  107. package/src/agents/spatial-comms/examples/multi-agent-world-creation.ts +409 -0
  108. package/src/agents/spatial-comms/index.ts +66 -0
  109. package/src/ai/AIAdapter.ts +313 -0
  110. package/src/ai/AICopilot.ts +331 -0
  111. package/src/ai/AIOutputValidator.ts +203 -0
  112. package/src/ai/BTNodes.ts +239 -0
  113. package/src/ai/BehaviorSelector.ts +135 -0
  114. package/src/ai/BehaviorTree.ts +153 -0
  115. package/src/ai/Blackboard.ts +165 -0
  116. package/src/ai/GenerationAnalytics.ts +461 -0
  117. package/src/ai/GenerationCache.ts +265 -0
  118. package/src/ai/GoalPlanner.ts +165 -0
  119. package/src/ai/HoloScriptGenerator.ts +580 -0
  120. package/src/ai/InfluenceMap.ts +180 -0
  121. package/src/ai/NavMesh.ts +168 -0
  122. package/src/ai/PerceptionSystem.ts +178 -0
  123. package/src/ai/PromptTemplates.ts +453 -0
  124. package/src/ai/SemanticSearchService.ts +80 -0
  125. package/src/ai/StateMachine.ts +196 -0
  126. package/src/ai/SteeringBehavior.ts +150 -0
  127. package/src/ai/SteeringBehaviors.ts +244 -0
  128. package/src/ai/TrainingDataGenerator.ts +1082 -0
  129. package/src/ai/UtilityAI.ts +145 -0
  130. package/src/ai/__tests__/AIAdapter.prod.test.ts +259 -0
  131. package/src/ai/__tests__/AIAdapter.test.ts +109 -0
  132. package/src/ai/__tests__/AICopilot.prod.test.ts +341 -0
  133. package/src/ai/__tests__/AICopilot.test.ts +178 -0
  134. package/src/ai/__tests__/AIOutputValidator.prod.test.ts +226 -0
  135. package/src/ai/__tests__/AIOutputValidator.test.ts +138 -0
  136. package/src/ai/__tests__/BTNodes.prod.test.ts +391 -0
  137. package/src/ai/__tests__/BTNodes.test.ts +263 -0
  138. package/src/ai/__tests__/BehaviorSelector.prod.test.ts +129 -0
  139. package/src/ai/__tests__/BehaviorSelector.test.ts +132 -0
  140. package/src/ai/__tests__/BehaviorTree.prod.test.ts +266 -0
  141. package/src/ai/__tests__/BehaviorTree.test.ts +216 -0
  142. package/src/ai/__tests__/Blackboard.prod.test.ts +339 -0
  143. package/src/ai/__tests__/Blackboard.test.ts +183 -0
  144. package/src/ai/__tests__/GenerationAnalytics.prod.test.ts +141 -0
  145. package/src/ai/__tests__/GenerationAnalytics.test.ts +165 -0
  146. package/src/ai/__tests__/GenerationCache.prod.test.ts +144 -0
  147. package/src/ai/__tests__/GenerationCache.test.ts +171 -0
  148. package/src/ai/__tests__/GoalPlanner.prod.test.ts +189 -0
  149. package/src/ai/__tests__/GoalPlanner.test.ts +137 -0
  150. package/src/ai/__tests__/GoalPlannerDepth.prod.test.ts +217 -0
  151. package/src/ai/__tests__/HoloScriptGenerator.test.ts +125 -0
  152. package/src/ai/__tests__/InfluenceMap.prod.test.ts +146 -0
  153. package/src/ai/__tests__/InfluenceMap.test.ts +149 -0
  154. package/src/ai/__tests__/NavMesh.prod.test.ts +141 -0
  155. package/src/ai/__tests__/NavMesh.test.ts +159 -0
  156. package/src/ai/__tests__/PerceptionSystem.prod.test.ts +135 -0
  157. package/src/ai/__tests__/PerceptionSystem.test.ts +250 -0
  158. package/src/ai/__tests__/PromptTemplates.prod.test.ts +313 -0
  159. package/src/ai/__tests__/PromptTemplates.test.ts +146 -0
  160. package/src/ai/__tests__/SemanticSearch.test.ts +37 -0
  161. package/src/ai/__tests__/StateMachine.prod.test.ts +162 -0
  162. package/src/ai/__tests__/StateMachine.test.ts +163 -0
  163. package/src/ai/__tests__/SteeringBehavior.prod.test.ts +251 -0
  164. package/src/ai/__tests__/SteeringBehavior.test.ts +135 -0
  165. package/src/ai/__tests__/SteeringBehaviors.prod.test.ts +133 -0
  166. package/src/ai/__tests__/SteeringBehaviors.test.ts +151 -0
  167. package/src/ai/__tests__/TrainingDataGenerator.prod.test.ts +286 -0
  168. package/src/ai/__tests__/TrainingDataGenerator.test.ts +286 -0
  169. package/src/ai/__tests__/UtilityAI.prod.test.ts +207 -0
  170. package/src/ai/__tests__/UtilityAI.test.ts +155 -0
  171. package/src/ai/__tests__/adapters.prod.test.ts +263 -0
  172. package/src/ai/__tests__/adapters.test.ts +320 -0
  173. package/src/ai/adapters.ts +1585 -0
  174. package/src/ai/index.ts +130 -0
  175. package/src/behavior/BehaviorPresets.ts +140 -0
  176. package/src/behavior/BehaviorTree.ts +236 -0
  177. package/src/behavior/StateMachine.ts +176 -0
  178. package/src/behavior/StateTrait.ts +67 -0
  179. package/src/behavior/index.ts +8 -0
  180. package/src/behavior.ts +8 -0
  181. package/src/board/audit.ts +284 -0
  182. package/src/board/board-ops.ts +336 -0
  183. package/src/board/board-types.ts +302 -0
  184. package/src/board/index.ts +69 -0
  185. package/src/define-agent.ts +46 -0
  186. package/src/define-team.ts +33 -0
  187. package/src/delegation.ts +265 -0
  188. package/src/distributed-claimer.ts +228 -0
  189. package/src/economy/AgentBudgetEnforcer.ts +464 -0
  190. package/src/economy/BountyManager.ts +185 -0
  191. package/src/economy/CreatorRevenueAggregator.ts +460 -0
  192. package/src/economy/InvisibleWallet.ts +82 -0
  193. package/src/economy/KnowledgeMarketplace.ts +193 -0
  194. package/src/economy/PaymentWebhookService.ts +512 -0
  195. package/src/economy/RevenueSplitter.ts +156 -0
  196. package/src/economy/SubscriptionManager.ts +546 -0
  197. package/src/economy/UnifiedBudgetOptimizer.ts +635 -0
  198. package/src/economy/UsageMeter.ts +440 -0
  199. package/src/economy/_core-stubs.ts +219 -0
  200. package/src/economy/index.ts +100 -0
  201. package/src/economy/x402-facilitator.ts +1978 -0
  202. package/src/index.ts +348 -0
  203. package/src/knowledge/__tests__/knowledge-consolidator.test.ts +444 -0
  204. package/src/knowledge/__tests__/knowledge-store-vector.test.ts +291 -0
  205. package/src/knowledge/brain.ts +167 -0
  206. package/src/knowledge/consolidation.ts +581 -0
  207. package/src/knowledge/knowledge-consolidator.ts +510 -0
  208. package/src/knowledge/knowledge-store.ts +616 -0
  209. package/src/learning/MemoryConsolidator.ts +102 -0
  210. package/src/learning/MemoryScorer.ts +69 -0
  211. package/src/learning/ProceduralCompiler.ts +45 -0
  212. package/src/learning/SemanticClusterer.ts +66 -0
  213. package/src/learning/index.ts +8 -0
  214. package/src/llm/llm-adapter.ts +159 -0
  215. package/src/mesh/index.ts +309 -0
  216. package/src/negotiation/NegotiationProtocol.ts +694 -0
  217. package/src/negotiation/NegotiationTypes.ts +473 -0
  218. package/src/negotiation/VotingMechanisms.ts +691 -0
  219. package/src/negotiation/index.ts +49 -0
  220. package/src/protocol/goal-synthesizer.ts +317 -0
  221. package/src/protocol/implementations.ts +474 -0
  222. package/src/protocol/micro-phase-decomposer.ts +299 -0
  223. package/src/protocol/micro-step-decomposer.test.ts +306 -0
  224. package/src/protocol-agent.test.ts +353 -0
  225. package/src/protocol-agent.ts +670 -0
  226. package/src/self-improve/absorb-scanner.ts +252 -0
  227. package/src/self-improve/evolution-engine.ts +149 -0
  228. package/src/self-improve/framework-absorber.ts +214 -0
  229. package/src/self-improve/index.ts +50 -0
  230. package/src/self-improve/prompt-optimizer.ts +212 -0
  231. package/src/self-improve/test-generator.ts +175 -0
  232. package/src/skill-router.ts +186 -0
  233. package/src/skills/index.ts +5 -0
  234. package/src/skills/skill-md-bridge.ts +1699 -0
  235. package/src/swarm/ACOEngine.ts +261 -0
  236. package/src/swarm/CollectiveIntelligence.ts +383 -0
  237. package/src/swarm/ContributionSynthesizer.ts +481 -0
  238. package/src/swarm/LeaderElection.ts +393 -0
  239. package/src/swarm/PSOEngine.ts +206 -0
  240. package/src/swarm/QuorumPolicy.ts +173 -0
  241. package/src/swarm/SwarmCoordinator.ts +335 -0
  242. package/src/swarm/SwarmManager.ts +442 -0
  243. package/src/swarm/SwarmMembership.ts +456 -0
  244. package/src/swarm/VotingRound.ts +255 -0
  245. package/src/swarm/__tests__/ACOEngine.prod.test.ts +164 -0
  246. package/src/swarm/__tests__/ACOEngine.test.ts +117 -0
  247. package/src/swarm/__tests__/CollectiveIntelligence.prod.test.ts +296 -0
  248. package/src/swarm/__tests__/CollectiveIntelligence.test.ts +457 -0
  249. package/src/swarm/__tests__/ContributionSynthesizer.prod.test.ts +269 -0
  250. package/src/swarm/__tests__/ContributionSynthesizer.test.ts +254 -0
  251. package/src/swarm/__tests__/LeaderElection.prod.test.ts +196 -0
  252. package/src/swarm/__tests__/LeaderElection.test.ts +151 -0
  253. package/src/swarm/__tests__/PSOEngine.prod.test.ts +162 -0
  254. package/src/swarm/__tests__/PSOEngine.test.ts +106 -0
  255. package/src/swarm/__tests__/QuorumPolicy.prod.test.ts +216 -0
  256. package/src/swarm/__tests__/QuorumPolicy.test.ts +177 -0
  257. package/src/swarm/__tests__/SwarmCoordinator.prod.test.ts +186 -0
  258. package/src/swarm/__tests__/SwarmCoordinator.test.ts +167 -0
  259. package/src/swarm/__tests__/SwarmManager.prod.test.ts +308 -0
  260. package/src/swarm/__tests__/SwarmManager.test.ts +373 -0
  261. package/src/swarm/__tests__/SwarmMembership.prod.test.ts +273 -0
  262. package/src/swarm/__tests__/SwarmMembership.test.ts +264 -0
  263. package/src/swarm/__tests__/VotingRound.prod.test.ts +233 -0
  264. package/src/swarm/__tests__/VotingRound.test.ts +174 -0
  265. package/src/swarm/analytics/SwarmInspector.ts +476 -0
  266. package/src/swarm/analytics/SwarmMetrics.ts +449 -0
  267. package/src/swarm/analytics/__tests__/SwarmInspector.prod.test.ts +366 -0
  268. package/src/swarm/analytics/__tests__/SwarmInspector.test.ts +454 -0
  269. package/src/swarm/analytics/__tests__/SwarmMetrics.prod.test.ts +254 -0
  270. package/src/swarm/analytics/__tests__/SwarmMetrics.test.ts +370 -0
  271. package/src/swarm/analytics/index.ts +7 -0
  272. package/src/swarm/index.ts +69 -0
  273. package/src/swarm/messaging/BroadcastChannel.ts +509 -0
  274. package/src/swarm/messaging/GossipProtocol.ts +565 -0
  275. package/src/swarm/messaging/SwarmEventBus.ts +443 -0
  276. package/src/swarm/messaging/__tests__/BroadcastChannel.prod.test.ts +331 -0
  277. package/src/swarm/messaging/__tests__/BroadcastChannel.test.ts +333 -0
  278. package/src/swarm/messaging/__tests__/GossipProtocol.prod.test.ts +356 -0
  279. package/src/swarm/messaging/__tests__/GossipProtocol.test.ts +437 -0
  280. package/src/swarm/messaging/__tests__/SwarmEventBus.prod.test.ts +191 -0
  281. package/src/swarm/messaging/__tests__/SwarmEventBus.test.ts +247 -0
  282. package/src/swarm/messaging/index.ts +8 -0
  283. package/src/swarm/spatial/FlockingBehavior.ts +462 -0
  284. package/src/swarm/spatial/FormationController.ts +500 -0
  285. package/src/swarm/spatial/Vector3.ts +170 -0
  286. package/src/swarm/spatial/ZoneClaiming.ts +509 -0
  287. package/src/swarm/spatial/__tests__/FlockingBehavior.prod.test.ts +239 -0
  288. package/src/swarm/spatial/__tests__/FlockingBehavior.test.ts +298 -0
  289. package/src/swarm/spatial/__tests__/FormationController.prod.test.ts +240 -0
  290. package/src/swarm/spatial/__tests__/FormationController.test.ts +297 -0
  291. package/src/swarm/spatial/__tests__/Vector3.prod.test.ts +283 -0
  292. package/src/swarm/spatial/__tests__/Vector3.test.ts +224 -0
  293. package/src/swarm/spatial/__tests__/ZoneClaiming.prod.test.ts +246 -0
  294. package/src/swarm/spatial/__tests__/ZoneClaiming.test.ts +374 -0
  295. package/src/swarm/spatial/index.ts +28 -0
  296. package/src/team.ts +1245 -0
  297. package/src/training/LRScheduler.ts +377 -0
  298. package/src/training/QualityScoringPipeline.ts +139 -0
  299. package/src/training/SoftDedup.ts +461 -0
  300. package/src/training/SparsityMonitor.ts +685 -0
  301. package/src/training/SparsityMonitorTypes.ts +209 -0
  302. package/src/training/SpatialTrainingDataGenerator.ts +1526 -0
  303. package/src/training/SpatialTrainingDataTypes.ts +216 -0
  304. package/src/training/TrainingPipelineConfig.ts +215 -0
  305. package/src/training/constants.ts +94 -0
  306. package/src/training/index.ts +138 -0
  307. package/src/training/schema.ts +147 -0
  308. package/src/training/scripts/generate-novel-use-cases-dataset.ts +272 -0
  309. package/src/training/scripts/generate-spatial-dataset.ts +521 -0
  310. package/src/training/training/data/novel-use-cases.jsonl +153 -0
  311. package/src/training/training/data/spatial-reasoning-10k.jsonl +9354 -0
  312. package/src/training/trainingmonkey/TrainingMonkeyIntegration.ts +477 -0
  313. package/src/training/trainingmonkey/TrainingMonkeyTypes.ts +230 -0
  314. package/src/training/trainingmonkey/index.ts +26 -0
  315. package/src/training/trait-mappings.ts +157 -0
  316. package/src/types/core-stubs.d.ts +113 -0
  317. package/src/types.ts +304 -0
  318. package/test-output.txt +0 -0
  319. package/test-result.json +1 -0
  320. package/tsc-errors.txt +4 -0
  321. package/tsc_output.txt +0 -0
  322. package/tsconfig.json +14 -0
  323. package/tsup-learning-esm.config.ts +12 -0
  324. package/tsup.config.ts +21 -0
  325. package/typescript-errors-2.txt +0 -0
  326. package/typescript-errors.txt +22 -0
  327. package/vitest-log-utf8.txt +268 -0
  328. package/vitest-log.txt +0 -0
  329. package/vitest.config.ts +8 -0
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Spatial Training Data Types
3
+ *
4
+ * Type definitions for the spatial reasoning training data pipeline.
5
+ * Used to generate instruction-response pairs from HoloScript compositions
6
+ * with spatial constraints (spatial_adjacent, spatial_contains, spatial_reachable)
7
+ * for fine-tuning LLMs on spatial reasoning tasks.
8
+ *
9
+ * @module training/SpatialTrainingDataTypes
10
+ */
11
+
12
+ // =============================================================================
13
+ // DIFFICULTY LEVELS
14
+ // =============================================================================
15
+
16
+ /**
17
+ * Difficulty levels for generated spatial reasoning examples.
18
+ *
19
+ * - basic: 2 objects, single spatial relationship
20
+ * - intermediate: 3-5 objects, multiple relationships, mixed constraint types
21
+ * - advanced: 6+ objects, occlusion, nested containment, chained reachability
22
+ */
23
+ export type SpatialDifficulty = 'basic' | 'intermediate' | 'advanced';
24
+
25
+ // =============================================================================
26
+ // SPATIAL RELATIONSHIP TYPES
27
+ // =============================================================================
28
+
29
+ /**
30
+ * The three core spatial relationship types from HoloScript's constraint system.
31
+ */
32
+ export type SpatialRelationshipType = 'spatial_adjacent' | 'spatial_contains' | 'spatial_reachable';
33
+
34
+ // =============================================================================
35
+ // SCENE OBJECT DEFINITION
36
+ // =============================================================================
37
+
38
+ /**
39
+ * A scene object with spatial properties for training data generation.
40
+ */
41
+ export interface SceneObject {
42
+ /** Unique identifier for the object */
43
+ id: string;
44
+ /** Object type (e.g., 'cube', 'sphere', 'zone', 'npc') */
45
+ type: string;
46
+ /** 3D position */
47
+ position: { x: number; y: number; z: number };
48
+ /** 3D scale */
49
+ scale: { x: number; y: number; z: number };
50
+ /** Bounding box (for containment checks) */
51
+ bounds?: {
52
+ min: { x: number; y: number; z: number };
53
+ max: { x: number; y: number; z: number };
54
+ };
55
+ /** Whether this object acts as an obstacle */
56
+ isObstacle?: boolean;
57
+ /** Optional color for visual description */
58
+ color?: string;
59
+ /** Optional geometry type */
60
+ geometry?: string;
61
+ }
62
+
63
+ // =============================================================================
64
+ // SPATIAL RELATIONSHIP DEFINITION
65
+ // =============================================================================
66
+
67
+ /**
68
+ * A spatial relationship between two scene objects.
69
+ */
70
+ export interface SpatialRelationship {
71
+ /** The relationship type */
72
+ type: SpatialRelationshipType;
73
+ /** Source object ID */
74
+ sourceId: string;
75
+ /** Target object ID */
76
+ targetId: string;
77
+ /** Whether the relationship is satisfied (true=positive, false=negative) */
78
+ satisfied: boolean;
79
+ /** Constraint parameters */
80
+ params: SpatialRelationshipParams;
81
+ }
82
+
83
+ /**
84
+ * Parameters for spatial relationship constraints.
85
+ */
86
+ export interface SpatialRelationshipParams {
87
+ /** For adjacent: maximum distance */
88
+ maxDistance?: number;
89
+ /** For adjacent: minimum distance */
90
+ minDistance?: number;
91
+ /** For adjacent: axis restriction */
92
+ axis?: string;
93
+ /** For contains: margin */
94
+ margin?: number;
95
+ /** For contains: strict mode */
96
+ strict?: boolean;
97
+ /** For reachable: max path length */
98
+ maxPathLength?: number;
99
+ /** For reachable: obstacle types */
100
+ obstacleTypes?: string[];
101
+ /** For reachable: algorithm */
102
+ algorithm?: string;
103
+ }
104
+
105
+ // =============================================================================
106
+ // SCENE DEFINITION
107
+ // =============================================================================
108
+
109
+ /**
110
+ * A complete scene with objects and spatial relationships.
111
+ */
112
+ export interface SpatialScene {
113
+ /** Scene name/identifier */
114
+ name: string;
115
+ /** Objects in the scene */
116
+ objects: SceneObject[];
117
+ /** Spatial relationships between objects */
118
+ relationships: SpatialRelationship[];
119
+ /** Difficulty level */
120
+ difficulty: SpatialDifficulty;
121
+ /** The HoloScript composition source */
122
+ holoScriptSource: string;
123
+ }
124
+
125
+ // =============================================================================
126
+ // TRAINING EXAMPLE (INSTRUCTION-RESPONSE PAIR)
127
+ // =============================================================================
128
+
129
+ /**
130
+ * A single training example with instruction and response.
131
+ * Suitable for fine-tuning LLMs on spatial reasoning tasks.
132
+ */
133
+ export interface SpatialTrainingExample {
134
+ /** Unique example ID */
135
+ id: string;
136
+ /** The instruction/question for the LLM */
137
+ instruction: string;
138
+ /** The expected response/answer */
139
+ response: string;
140
+ /** The HoloScript source that defines the scene */
141
+ context: string;
142
+ /** Spatial relationship type being tested */
143
+ relationshipType: SpatialRelationshipType;
144
+ /** Whether this is a positive or negative example */
145
+ isPositive: boolean;
146
+ /** Difficulty level */
147
+ difficulty: SpatialDifficulty;
148
+ /** Tags for categorization */
149
+ tags: string[];
150
+ }
151
+
152
+ // =============================================================================
153
+ // GENERATOR CONFIGURATION
154
+ // =============================================================================
155
+
156
+ /**
157
+ * Configuration options for the SpatialTrainingDataGenerator.
158
+ */
159
+ export interface SpatialGeneratorConfig {
160
+ /** Number of examples to generate per relationship type per difficulty level */
161
+ examplesPerCategory?: number;
162
+ /** Which relationship types to include */
163
+ relationshipTypes?: SpatialRelationshipType[];
164
+ /** Which difficulty levels to include */
165
+ difficultyLevels?: SpatialDifficulty[];
166
+ /** Ratio of positive to negative examples (default 0.5 = equal) */
167
+ positiveRatio?: number;
168
+ /** Random seed for reproducibility (if provided) */
169
+ seed?: number;
170
+ /** Whether to include HoloScript context in output */
171
+ includeContext?: boolean;
172
+ }
173
+
174
+ // =============================================================================
175
+ // GENERATOR STATISTICS
176
+ // =============================================================================
177
+
178
+ /**
179
+ * Statistics about generated training data.
180
+ */
181
+ export interface SpatialGeneratorStats {
182
+ /** Total number of examples generated */
183
+ totalExamples: number;
184
+ /** Breakdown by relationship type */
185
+ byRelationship: Record<SpatialRelationshipType, number>;
186
+ /** Breakdown by difficulty */
187
+ byDifficulty: Record<SpatialDifficulty, number>;
188
+ /** Breakdown by positive/negative */
189
+ positiveCount: number;
190
+ negativeCount: number;
191
+ /** Number of unique templates used */
192
+ uniqueTemplatesUsed: number;
193
+ }
194
+
195
+ // =============================================================================
196
+ // JSONL OUTPUT FORMAT
197
+ // =============================================================================
198
+
199
+ /**
200
+ * JSONL line format for fine-tuning output.
201
+ * Each line in the JSONL file is one of these objects.
202
+ */
203
+ export interface SpatialTrainingJSONLEntry {
204
+ /** The instruction/question */
205
+ instruction: string;
206
+ /** The expected response */
207
+ response: string;
208
+ /** Metadata for filtering/analysis */
209
+ metadata: {
210
+ id: string;
211
+ relationship_type: SpatialRelationshipType;
212
+ is_positive: boolean;
213
+ difficulty: SpatialDifficulty;
214
+ tags: string[];
215
+ };
216
+ }
@@ -0,0 +1,215 @@
1
+ /**
2
+ * TrainingPipelineConfig - Unified Training Pipeline Configuration
3
+ *
4
+ * Integrates all training pipeline components:
5
+ * - Quality Scoring (W.010): Multi-dimensional quality filtering
6
+ * - Hard Dedup (W.004): Exact/near-duplicate removal (external)
7
+ * - SoftDedup (W.008): N-gram commonness-based reweighting
8
+ * - LR Schedule (W.009): Warmup + cosine decay
9
+ * - Hyperparameters (W.006, W.007): Learning rate, batch size, epochs
10
+ *
11
+ * Pipeline order: Quality Filter -> Hard Dedup -> SoftDedup -> Training
12
+ *
13
+ * @module training/TrainingPipelineConfig
14
+ */
15
+
16
+ import type { SoftDedupConfig } from './SoftDedup';
17
+ import type { LRSchedulerConfig } from './LRScheduler';
18
+ import type { QualityScoringConfig } from './QualityScoringPipeline';
19
+ import { DEFAULT_SOFTDEDUP_CONFIG } from './SoftDedup';
20
+ import { DEFAULT_LR_SCHEDULER_CONFIG } from './LRScheduler';
21
+ import { DEFAULT_SCORING_CONFIG } from './QualityScoringPipeline';
22
+
23
+ // =============================================================================
24
+ // TYPES
25
+ // =============================================================================
26
+
27
+ /**
28
+ * Complete training pipeline configuration.
29
+ *
30
+ * Encompasses all stages from data preparation through training execution.
31
+ */
32
+ export interface TrainingPipelineConfig {
33
+ /** Data quality filtering configuration (W.010) */
34
+ qualityScoring: QualityScoringConfig;
35
+
36
+ /** Soft deduplication configuration (W.008) */
37
+ softDedup: SoftDedupConfig;
38
+
39
+ /** Learning rate schedule configuration (W.009) */
40
+ lrSchedule: LRSchedulerConfig;
41
+
42
+ /** Core training hyperparameters (W.006, W.007) */
43
+ hyperparameters: TrainingHyperparameters;
44
+
45
+ /** Pipeline-level settings */
46
+ pipeline: PipelineSettings;
47
+ }
48
+
49
+ /**
50
+ * Core training hyperparameters per W.006 and W.007.
51
+ */
52
+ export interface TrainingHyperparameters {
53
+ /**
54
+ * Base learning rate.
55
+ * Per W.006: 2e-4 for SFT (NOT 2e-5).
56
+ */
57
+ learningRate: number;
58
+
59
+ /**
60
+ * Number of training epochs.
61
+ * Per W.006: 2 epochs (NOT 3). "Loss converges in 1-2 epochs."
62
+ */
63
+ epochs: number;
64
+
65
+ /**
66
+ * Optimizer.
67
+ * Per W.006: paged_adamw_8bit (NOT adamw_torch).
68
+ */
69
+ optimizer: 'paged_adamw_8bit' | 'adamw_torch' | 'adafactor';
70
+
71
+ /**
72
+ * Micro-batch size per device.
73
+ * Per W.007: 8-16 for 7B models.
74
+ */
75
+ microBatchSize: number;
76
+
77
+ /**
78
+ * Gradient accumulation steps.
79
+ * Per W.007: 2-4 steps for effective batch 32-512.
80
+ */
81
+ gradientAccumulationSteps: number;
82
+
83
+ /**
84
+ * Maximum gradient norm for clipping.
85
+ */
86
+ maxGradNorm: number;
87
+
88
+ /**
89
+ * Weight decay coefficient.
90
+ */
91
+ weightDecay: number;
92
+ }
93
+
94
+ /**
95
+ * Pipeline-level settings controlling the data preparation flow.
96
+ */
97
+ export interface PipelineSettings {
98
+ /**
99
+ * Whether to apply quality scoring filter before training.
100
+ * Per W.010: Apply BEFORE deduplication to avoid wasting compute on junk.
101
+ */
102
+ enableQualityFilter: boolean;
103
+
104
+ /**
105
+ * Whether to apply SoftDedup after hard dedup.
106
+ * Per W.008: Apply AFTER hard dedup (W.004), not instead of it.
107
+ */
108
+ enableSoftDedup: boolean;
109
+
110
+ /**
111
+ * Whether to use the LR scheduler (warmup + cosine decay).
112
+ * Per W.009: Always use.
113
+ */
114
+ enableLRSchedule: boolean;
115
+
116
+ /**
117
+ * Seed for reproducibility.
118
+ */
119
+ seed?: number;
120
+ }
121
+
122
+ // =============================================================================
123
+ // DEFAULT CONFIGURATION
124
+ // =============================================================================
125
+
126
+ /**
127
+ * Default training pipeline configuration.
128
+ *
129
+ * Implements the full optimization pipeline:
130
+ * - Quality Filter (W.010) -> Hard Dedup (W.004) -> SoftDedup (W.008)
131
+ * - LR Schedule: warmup 10% + cosine decay (W.009)
132
+ * - Hyperparameters: LR=2e-4, epochs=2, paged_adamw_8bit (W.006)
133
+ * - Batch: micro=8, accumulation=4, effective=32 (W.007)
134
+ */
135
+ export const DEFAULT_TRAINING_PIPELINE_CONFIG: TrainingPipelineConfig = {
136
+ qualityScoring: DEFAULT_SCORING_CONFIG,
137
+ softDedup: DEFAULT_SOFTDEDUP_CONFIG,
138
+ lrSchedule: DEFAULT_LR_SCHEDULER_CONFIG,
139
+ hyperparameters: {
140
+ learningRate: 2e-4,
141
+ epochs: 2,
142
+ optimizer: 'paged_adamw_8bit',
143
+ microBatchSize: 8,
144
+ gradientAccumulationSteps: 4,
145
+ maxGradNorm: 1.0,
146
+ weightDecay: 0.01,
147
+ },
148
+ pipeline: {
149
+ enableQualityFilter: true,
150
+ enableSoftDedup: true,
151
+ enableLRSchedule: true,
152
+ },
153
+ };
154
+
155
+ // =============================================================================
156
+ // CONFIG BUILDER
157
+ // =============================================================================
158
+
159
+ /** Deep partial utility type */
160
+ type DeepPartial<T> = {
161
+ [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
162
+ };
163
+
164
+ /**
165
+ * Build a TrainingPipelineConfig with custom overrides.
166
+ *
167
+ * @example
168
+ * ```ts
169
+ * const config = buildTrainingPipelineConfig({
170
+ * hyperparameters: { learningRate: 1e-4, epochs: 3 },
171
+ * softDedup: { temperature: 0.5 },
172
+ * lrSchedule: { totalSteps: 5000 },
173
+ * });
174
+ * ```
175
+ */
176
+ export function buildTrainingPipelineConfig(
177
+ overrides: DeepPartial<TrainingPipelineConfig> = {}
178
+ ): TrainingPipelineConfig {
179
+ return {
180
+ qualityScoring: {
181
+ ...DEFAULT_TRAINING_PIPELINE_CONFIG.qualityScoring,
182
+ ...(overrides.qualityScoring as Partial<QualityScoringConfig> | undefined),
183
+ },
184
+ softDedup: {
185
+ ...DEFAULT_TRAINING_PIPELINE_CONFIG.softDedup,
186
+ ...(overrides.softDedup as Partial<SoftDedupConfig> | undefined),
187
+ },
188
+ lrSchedule: {
189
+ ...DEFAULT_TRAINING_PIPELINE_CONFIG.lrSchedule,
190
+ ...(overrides.lrSchedule as Partial<LRSchedulerConfig> | undefined),
191
+ },
192
+ hyperparameters: {
193
+ ...DEFAULT_TRAINING_PIPELINE_CONFIG.hyperparameters,
194
+ ...(overrides.hyperparameters as Partial<TrainingHyperparameters> | undefined),
195
+ },
196
+ pipeline: {
197
+ ...DEFAULT_TRAINING_PIPELINE_CONFIG.pipeline,
198
+ ...(overrides.pipeline as Partial<PipelineSettings> | undefined),
199
+ },
200
+ };
201
+ }
202
+
203
+ /**
204
+ * Compute the total training steps from dataset size and hyperparameters.
205
+ *
206
+ * @param datasetSize - Number of training examples (after dedup)
207
+ * @param config - Training pipeline configuration
208
+ * @returns Total number of training steps
209
+ */
210
+ export function computeTotalSteps(datasetSize: number, config: TrainingPipelineConfig): number {
211
+ const { microBatchSize, gradientAccumulationSteps, epochs } = config.hyperparameters;
212
+ const effectiveBatchSize = microBatchSize * gradientAccumulationSteps;
213
+ const stepsPerEpoch = Math.ceil(datasetSize / effectiveBatchSize);
214
+ return stepsPerEpoch * epochs;
215
+ }
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Training Constants
3
+ *
4
+ * Canonical constants shared between @holoscript/core and TrainingMonkey.
5
+ * This module has ZERO imports from other workspace packages (G.GAP.01 prevention).
6
+ *
7
+ * @version 1.0.0
8
+ */
9
+
10
+ /**
11
+ * 9 training categories covering all HoloScript domains
12
+ */
13
+ export const TRAINING_CATEGORIES = [
14
+ 'vr-interaction',
15
+ 'multiplayer',
16
+ 'physics',
17
+ 'ui-spatial',
18
+ 'ai-agents',
19
+ 'procedural',
20
+ 'audio-spatial',
21
+ 'visual-effects',
22
+ 'game-mechanics',
23
+ ] as const;
24
+
25
+ export type TrainingCategory = (typeof TRAINING_CATEGORIES)[number];
26
+
27
+ /**
28
+ * 4 difficulty levels for training data
29
+ */
30
+ export const DIFFICULTY_LEVELS = ['beginner', 'intermediate', 'advanced', 'production'] as const;
31
+
32
+ export type DifficultyLevel = (typeof DIFFICULTY_LEVELS)[number];
33
+
34
+ /**
35
+ * Quality score thresholds for training data evaluation
36
+ */
37
+ export const QUALITY_THRESHOLDS = {
38
+ Excellent: { min: 90, max: 100 },
39
+ VeryGood: { min: 80, max: 89 },
40
+ Acceptable: { min: 70, max: 79 },
41
+ } as const;
42
+
43
+ export type QualityTier = keyof typeof QUALITY_THRESHOLDS;
44
+
45
+ /**
46
+ * Default quality constraints for training data generators
47
+ */
48
+ export const DEFAULT_GENERATOR_THRESHOLDS = {
49
+ min_compression_ratio: 5,
50
+ max_compression_ratio: 15,
51
+ max_duplication_rate: 0.05,
52
+ min_templates_per_difficulty: 10,
53
+ min_quality_score: 0.7,
54
+ } as const;
55
+
56
+ /**
57
+ * RuleForge domain categories used by the rule generator
58
+ */
59
+ export const RULEFORGE_DOMAINS = [
60
+ 'ai_agents',
61
+ 'physics',
62
+ 'robotics',
63
+ 'audio',
64
+ 'rendering',
65
+ 'interaction',
66
+ 'multiplayer',
67
+ 'vr_ar',
68
+ ] as const;
69
+
70
+ export type RuleForgeDomain = (typeof RULEFORGE_DOMAINS)[number];
71
+
72
+ /**
73
+ * Get quality tier for a given score
74
+ */
75
+ export function getQualityTier(score: number): QualityTier | 'BelowAcceptable' {
76
+ if (score >= QUALITY_THRESHOLDS.Excellent.min) return 'Excellent';
77
+ if (score >= QUALITY_THRESHOLDS.VeryGood.min) return 'VeryGood';
78
+ if (score >= QUALITY_THRESHOLDS.Acceptable.min) return 'Acceptable';
79
+ return 'BelowAcceptable';
80
+ }
81
+
82
+ /**
83
+ * Validate that a category string is a valid TrainingCategory
84
+ */
85
+ export function isValidCategory(category: string): category is TrainingCategory {
86
+ return (TRAINING_CATEGORIES as readonly string[]).includes(category);
87
+ }
88
+
89
+ /**
90
+ * Validate that a difficulty string is a valid DifficultyLevel
91
+ */
92
+ export function isValidDifficulty(difficulty: string): difficulty is DifficultyLevel {
93
+ return (DIFFICULTY_LEVELS as readonly string[]).includes(difficulty);
94
+ }
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Training Data Pipeline
3
+ *
4
+ * Generates labeled spatial reasoning training examples from
5
+ * HoloScript compositions with spatial constraints, monitors
6
+ * SNN sparsity for energy-efficient neural computation, and provides
7
+ * training data optimization via SoftDedup and LR scheduling.
8
+ *
9
+ * Pipeline order (per training rules):
10
+ * Quality Filter (W.010) -> Hard Dedup (W.004) -> SoftDedup (W.008) -> Training
11
+ *
12
+ * @module training
13
+ */
14
+
15
+ export {
16
+ SpatialTrainingDataGenerator,
17
+ createSpatialTrainingDataGenerator,
18
+ } from './SpatialTrainingDataGenerator';
19
+
20
+ export type {
21
+ SpatialDifficulty,
22
+ SpatialRelationshipType,
23
+ SceneObject,
24
+ SpatialRelationship,
25
+ SpatialScene,
26
+ SpatialTrainingExample,
27
+ SpatialGeneratorConfig,
28
+ SpatialGeneratorStats,
29
+ SpatialTrainingJSONLEntry,
30
+ SpatialRelationshipParams,
31
+ } from './SpatialTrainingDataTypes';
32
+
33
+ export { SparsityMonitor, createSparsityMonitor } from './SparsityMonitor';
34
+
35
+ export type { LayerActivityInput } from './SparsityMonitor';
36
+
37
+ export type {
38
+ SNNLayerMetrics,
39
+ SparsitySnapshot,
40
+ EnergyEfficiencyMetrics,
41
+ SparsityViolation,
42
+ SparsityMonitorConfig,
43
+ SparsityMonitorStats,
44
+ SparsityQualityHistoryEntry,
45
+ } from './SparsityMonitorTypes';
46
+
47
+ // SoftDedup (W.008): N-gram commonness-based reweighting
48
+ export { SoftDedup, createSoftDedup, DEFAULT_SOFTDEDUP_CONFIG } from './SoftDedup';
49
+
50
+ export type { SoftDedupConfig, SoftDedupResult, NgramStats, SoftDedupStats } from './SoftDedup';
51
+
52
+ // LR Scheduler (W.009): Warmup + cosine decay
53
+ export {
54
+ LRScheduler,
55
+ createSFTScheduler,
56
+ createGRPOScheduler,
57
+ DEFAULT_LR_SCHEDULER_CONFIG,
58
+ GRPO_LR_SCHEDULER_CONFIG,
59
+ } from './LRScheduler';
60
+
61
+ export type { LRSchedulerConfig, LRSchedulerSnapshot, LRScheduleStats } from './LRScheduler';
62
+
63
+ // Unified Training Pipeline Configuration
64
+ export {
65
+ DEFAULT_TRAINING_PIPELINE_CONFIG,
66
+ buildTrainingPipelineConfig,
67
+ computeTotalSteps,
68
+ } from './TrainingPipelineConfig';
69
+
70
+ export type {
71
+ TrainingPipelineConfig,
72
+ TrainingHyperparameters,
73
+ PipelineSettings,
74
+ } from './TrainingPipelineConfig';
75
+
76
+ // Quality Scoring Pipeline
77
+ export { QualityScoringPipeline, DEFAULT_SCORING_CONFIG } from './QualityScoringPipeline';
78
+
79
+ export type { QualityScore, QualityDetail, QualityScoringConfig } from './QualityScoringPipeline';
80
+
81
+ // TrainingMonkey Integration: Spatial reasoning data -> Alpaca format pipeline
82
+ export {
83
+ TrainingMonkeyIntegration,
84
+ createTrainingMonkeyIntegration,
85
+ DEFAULT_INTEGRATION_CONFIG,
86
+ } from './trainingmonkey';
87
+
88
+ export type {
89
+ AlpacaEntry,
90
+ WeightedAlpacaEntry,
91
+ DatasetSplit,
92
+ SplitStats,
93
+ TrainingMonkeyConfig,
94
+ TrainingMonkeyIntegrationConfig,
95
+ IntegrationResult,
96
+ } from './trainingmonkey';
97
+
98
+ // ============================================================================
99
+ // Canonical Training Constants (Gap 1: Extracted from TrainingMonkey)
100
+ // ============================================================================
101
+
102
+ // Constants (zero-dependency module)
103
+ export {
104
+ TRAINING_CATEGORIES,
105
+ DIFFICULTY_LEVELS,
106
+ QUALITY_THRESHOLDS,
107
+ DEFAULT_GENERATOR_THRESHOLDS,
108
+ RULEFORGE_DOMAINS,
109
+ getQualityTier,
110
+ isValidCategory,
111
+ isValidDifficulty,
112
+ type TrainingCategory,
113
+ type DifficultyLevel,
114
+ type QualityTier,
115
+ type RuleForgeDomain,
116
+ } from './constants';
117
+
118
+ // Training Data Schema (JSONL-compatible)
119
+ export {
120
+ validateTrainingExample,
121
+ type TrainingExample,
122
+ type TrainingExampleMetadata,
123
+ type TrainingQualityScore,
124
+ type TrainingValidationResult,
125
+ type TrainingValidationError,
126
+ type CompressionResult as TrainingCompressionResult,
127
+ type GeneratorMetrics,
128
+ } from './schema';
129
+
130
+ // Trait Mappings (TM <-> HS)
131
+ export {
132
+ TM_REGISTERED_TRAITS,
133
+ validateTraitName,
134
+ generateValidationReport,
135
+ type TrainingMetadata,
136
+ type TraitMapping,
137
+ type TraitValidationReport,
138
+ } from './trait-mappings';