@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.
- package/ALL-test-results.json +1 -0
- package/CHANGELOG.md +8 -0
- package/LICENSE +21 -0
- package/ROADMAP.md +175 -0
- package/dist/AgentManifest-CB4xM-Ma.d.cts +704 -0
- package/dist/AgentManifest-CB4xM-Ma.d.ts +704 -0
- package/dist/BehaviorTree-BrBFECv5.d.cts +103 -0
- package/dist/BehaviorTree-BrBFECv5.d.ts +103 -0
- package/dist/InvisibleWallet-BB6tFvRA.d.cts +1732 -0
- package/dist/InvisibleWallet-rtRrBOA8.d.ts +1732 -0
- package/dist/OrchestratorAgent-BvWgf9uw.d.cts +798 -0
- package/dist/OrchestratorAgent-Q_CbVTmO.d.ts +798 -0
- package/dist/agents/index.cjs +4790 -0
- package/dist/agents/index.d.cts +1788 -0
- package/dist/agents/index.d.ts +1788 -0
- package/dist/agents/index.js +4695 -0
- package/dist/ai/index.cjs +5347 -0
- package/dist/ai/index.d.cts +1753 -0
- package/dist/ai/index.d.ts +1753 -0
- package/dist/ai/index.js +5244 -0
- package/dist/behavior.cjs +449 -0
- package/dist/behavior.d.cts +130 -0
- package/dist/behavior.d.ts +130 -0
- package/dist/behavior.js +407 -0
- package/dist/economy/index.cjs +3659 -0
- package/dist/economy/index.d.cts +747 -0
- package/dist/economy/index.d.ts +747 -0
- package/dist/economy/index.js +3617 -0
- package/dist/implementations-D9T3un9D.d.cts +236 -0
- package/dist/implementations-D9T3un9D.d.ts +236 -0
- package/dist/index.cjs +24550 -0
- package/dist/index.d.cts +1729 -0
- package/dist/index.d.ts +1729 -0
- package/dist/index.js +24277 -0
- package/dist/learning/index.cjs +219 -0
- package/dist/learning/index.d.cts +104 -0
- package/dist/learning/index.d.ts +104 -0
- package/dist/learning/index.js +189 -0
- package/dist/negotiation/index.cjs +970 -0
- package/dist/negotiation/index.d.cts +610 -0
- package/dist/negotiation/index.d.ts +610 -0
- package/dist/negotiation/index.js +931 -0
- package/dist/skills/index.cjs +1118 -0
- package/dist/skills/index.d.cts +289 -0
- package/dist/skills/index.d.ts +289 -0
- package/dist/skills/index.js +1079 -0
- package/dist/swarm/index.cjs +5268 -0
- package/dist/swarm/index.d.cts +2433 -0
- package/dist/swarm/index.d.ts +2433 -0
- package/dist/swarm/index.js +5221 -0
- package/dist/training/index.cjs +2745 -0
- package/dist/training/index.d.cts +1734 -0
- package/dist/training/index.d.ts +1734 -0
- package/dist/training/index.js +2687 -0
- package/extract-failures.js +10 -0
- package/package.json +82 -0
- package/src/__tests__/bounty-marketplace.test.ts +374 -0
- package/src/__tests__/delegation.test.ts +144 -0
- package/src/__tests__/distributed-claimer.test.ts +147 -0
- package/src/__tests__/done-log-audit.test.ts +342 -0
- package/src/__tests__/framework.test.ts +865 -0
- package/src/__tests__/goal-synthesizer.test.ts +236 -0
- package/src/__tests__/presence.test.ts +223 -0
- package/src/__tests__/protocol-agent.test.ts +254 -0
- package/src/__tests__/revenue-splitter.test.ts +114 -0
- package/src/__tests__/scenario-driven-todo.test.ts +197 -0
- package/src/__tests__/self-improve.test.ts +349 -0
- package/src/__tests__/service-lifecycle.test.ts +237 -0
- package/src/__tests__/skill-router.test.ts +121 -0
- package/src/agents/AgentManifest.ts +493 -0
- package/src/agents/AgentRegistry.ts +475 -0
- package/src/agents/AgentTypes.ts +585 -0
- package/src/agents/AgentWalletRegistry.ts +83 -0
- package/src/agents/AuthenticatedCRDT.ts +388 -0
- package/src/agents/CapabilityMatcher.ts +453 -0
- package/src/agents/CrossRealityHandoff.ts +305 -0
- package/src/agents/CulturalMemory.ts +454 -0
- package/src/agents/FederatedRegistryAdapter.ts +429 -0
- package/src/agents/NormEngine.ts +450 -0
- package/src/agents/OrchestratorAgent.ts +414 -0
- package/src/agents/SkillWorkflowEngine.ts +472 -0
- package/src/agents/TaskDelegationService.ts +551 -0
- package/src/agents/__tests__/AgentManifest.prod.test.ts +134 -0
- package/src/agents/__tests__/AgentManifest.test.ts +182 -0
- package/src/agents/__tests__/AgentModule.test.ts +864 -0
- package/src/agents/__tests__/AgentRegistry.prod.test.ts +125 -0
- package/src/agents/__tests__/AgentRegistry.test.ts +148 -0
- package/src/agents/__tests__/AgentTypes.test.ts +534 -0
- package/src/agents/__tests__/AgentWalletRegistry.test.ts +152 -0
- package/src/agents/__tests__/AuthenticatedCRDT.test.ts +558 -0
- package/src/agents/__tests__/CapabilityMatcher.prod.test.ts +117 -0
- package/src/agents/__tests__/CapabilityMatcher.test.ts +178 -0
- package/src/agents/__tests__/CrossRealityHandoff.test.ts +402 -0
- package/src/agents/__tests__/CulturalMemory.test.ts +200 -0
- package/src/agents/__tests__/FederatedRegistryAdapter.test.ts +409 -0
- package/src/agents/__tests__/NormEngine.test.ts +276 -0
- package/src/agents/__tests__/OrchestratorAgent.test.ts +182 -0
- package/src/agents/__tests__/SkillWorkflowEngine.test.ts +357 -0
- package/src/agents/__tests__/TaskDelegationService.test.ts +446 -0
- package/src/agents/index.ts +107 -0
- package/src/agents/spatial-comms/Layer1RealTime.ts +621 -0
- package/src/agents/spatial-comms/Layer2A2A.ts +661 -0
- package/src/agents/spatial-comms/Layer3MCP.ts +651 -0
- package/src/agents/spatial-comms/ProtocolTypes.ts +543 -0
- package/src/agents/spatial-comms/SpatialCommClient.ts +483 -0
- package/src/agents/spatial-comms/__tests__/performance-benchmark.test.ts +465 -0
- package/src/agents/spatial-comms/examples/multi-agent-world-creation.ts +409 -0
- package/src/agents/spatial-comms/index.ts +66 -0
- package/src/ai/AIAdapter.ts +313 -0
- package/src/ai/AICopilot.ts +331 -0
- package/src/ai/AIOutputValidator.ts +203 -0
- package/src/ai/BTNodes.ts +239 -0
- package/src/ai/BehaviorSelector.ts +135 -0
- package/src/ai/BehaviorTree.ts +153 -0
- package/src/ai/Blackboard.ts +165 -0
- package/src/ai/GenerationAnalytics.ts +461 -0
- package/src/ai/GenerationCache.ts +265 -0
- package/src/ai/GoalPlanner.ts +165 -0
- package/src/ai/HoloScriptGenerator.ts +580 -0
- package/src/ai/InfluenceMap.ts +180 -0
- package/src/ai/NavMesh.ts +168 -0
- package/src/ai/PerceptionSystem.ts +178 -0
- package/src/ai/PromptTemplates.ts +453 -0
- package/src/ai/SemanticSearchService.ts +80 -0
- package/src/ai/StateMachine.ts +196 -0
- package/src/ai/SteeringBehavior.ts +150 -0
- package/src/ai/SteeringBehaviors.ts +244 -0
- package/src/ai/TrainingDataGenerator.ts +1082 -0
- package/src/ai/UtilityAI.ts +145 -0
- package/src/ai/__tests__/AIAdapter.prod.test.ts +259 -0
- package/src/ai/__tests__/AIAdapter.test.ts +109 -0
- package/src/ai/__tests__/AICopilot.prod.test.ts +341 -0
- package/src/ai/__tests__/AICopilot.test.ts +178 -0
- package/src/ai/__tests__/AIOutputValidator.prod.test.ts +226 -0
- package/src/ai/__tests__/AIOutputValidator.test.ts +138 -0
- package/src/ai/__tests__/BTNodes.prod.test.ts +391 -0
- package/src/ai/__tests__/BTNodes.test.ts +263 -0
- package/src/ai/__tests__/BehaviorSelector.prod.test.ts +129 -0
- package/src/ai/__tests__/BehaviorSelector.test.ts +132 -0
- package/src/ai/__tests__/BehaviorTree.prod.test.ts +266 -0
- package/src/ai/__tests__/BehaviorTree.test.ts +216 -0
- package/src/ai/__tests__/Blackboard.prod.test.ts +339 -0
- package/src/ai/__tests__/Blackboard.test.ts +183 -0
- package/src/ai/__tests__/GenerationAnalytics.prod.test.ts +141 -0
- package/src/ai/__tests__/GenerationAnalytics.test.ts +165 -0
- package/src/ai/__tests__/GenerationCache.prod.test.ts +144 -0
- package/src/ai/__tests__/GenerationCache.test.ts +171 -0
- package/src/ai/__tests__/GoalPlanner.prod.test.ts +189 -0
- package/src/ai/__tests__/GoalPlanner.test.ts +137 -0
- package/src/ai/__tests__/GoalPlannerDepth.prod.test.ts +217 -0
- package/src/ai/__tests__/HoloScriptGenerator.test.ts +125 -0
- package/src/ai/__tests__/InfluenceMap.prod.test.ts +146 -0
- package/src/ai/__tests__/InfluenceMap.test.ts +149 -0
- package/src/ai/__tests__/NavMesh.prod.test.ts +141 -0
- package/src/ai/__tests__/NavMesh.test.ts +159 -0
- package/src/ai/__tests__/PerceptionSystem.prod.test.ts +135 -0
- package/src/ai/__tests__/PerceptionSystem.test.ts +250 -0
- package/src/ai/__tests__/PromptTemplates.prod.test.ts +313 -0
- package/src/ai/__tests__/PromptTemplates.test.ts +146 -0
- package/src/ai/__tests__/SemanticSearch.test.ts +37 -0
- package/src/ai/__tests__/StateMachine.prod.test.ts +162 -0
- package/src/ai/__tests__/StateMachine.test.ts +163 -0
- package/src/ai/__tests__/SteeringBehavior.prod.test.ts +251 -0
- package/src/ai/__tests__/SteeringBehavior.test.ts +135 -0
- package/src/ai/__tests__/SteeringBehaviors.prod.test.ts +133 -0
- package/src/ai/__tests__/SteeringBehaviors.test.ts +151 -0
- package/src/ai/__tests__/TrainingDataGenerator.prod.test.ts +286 -0
- package/src/ai/__tests__/TrainingDataGenerator.test.ts +286 -0
- package/src/ai/__tests__/UtilityAI.prod.test.ts +207 -0
- package/src/ai/__tests__/UtilityAI.test.ts +155 -0
- package/src/ai/__tests__/adapters.prod.test.ts +263 -0
- package/src/ai/__tests__/adapters.test.ts +320 -0
- package/src/ai/adapters.ts +1585 -0
- package/src/ai/index.ts +130 -0
- package/src/behavior/BehaviorPresets.ts +140 -0
- package/src/behavior/BehaviorTree.ts +236 -0
- package/src/behavior/StateMachine.ts +176 -0
- package/src/behavior/StateTrait.ts +67 -0
- package/src/behavior/index.ts +8 -0
- package/src/behavior.ts +8 -0
- package/src/board/audit.ts +284 -0
- package/src/board/board-ops.ts +336 -0
- package/src/board/board-types.ts +302 -0
- package/src/board/index.ts +69 -0
- package/src/define-agent.ts +46 -0
- package/src/define-team.ts +33 -0
- package/src/delegation.ts +265 -0
- package/src/distributed-claimer.ts +228 -0
- package/src/economy/AgentBudgetEnforcer.ts +464 -0
- package/src/economy/BountyManager.ts +185 -0
- package/src/economy/CreatorRevenueAggregator.ts +460 -0
- package/src/economy/InvisibleWallet.ts +82 -0
- package/src/economy/KnowledgeMarketplace.ts +193 -0
- package/src/economy/PaymentWebhookService.ts +512 -0
- package/src/economy/RevenueSplitter.ts +156 -0
- package/src/economy/SubscriptionManager.ts +546 -0
- package/src/economy/UnifiedBudgetOptimizer.ts +635 -0
- package/src/economy/UsageMeter.ts +440 -0
- package/src/economy/_core-stubs.ts +219 -0
- package/src/economy/index.ts +100 -0
- package/src/economy/x402-facilitator.ts +1978 -0
- package/src/index.ts +348 -0
- package/src/knowledge/__tests__/knowledge-consolidator.test.ts +444 -0
- package/src/knowledge/__tests__/knowledge-store-vector.test.ts +291 -0
- package/src/knowledge/brain.ts +167 -0
- package/src/knowledge/consolidation.ts +581 -0
- package/src/knowledge/knowledge-consolidator.ts +510 -0
- package/src/knowledge/knowledge-store.ts +616 -0
- package/src/learning/MemoryConsolidator.ts +102 -0
- package/src/learning/MemoryScorer.ts +69 -0
- package/src/learning/ProceduralCompiler.ts +45 -0
- package/src/learning/SemanticClusterer.ts +66 -0
- package/src/learning/index.ts +8 -0
- package/src/llm/llm-adapter.ts +159 -0
- package/src/mesh/index.ts +309 -0
- package/src/negotiation/NegotiationProtocol.ts +694 -0
- package/src/negotiation/NegotiationTypes.ts +473 -0
- package/src/negotiation/VotingMechanisms.ts +691 -0
- package/src/negotiation/index.ts +49 -0
- package/src/protocol/goal-synthesizer.ts +317 -0
- package/src/protocol/implementations.ts +474 -0
- package/src/protocol/micro-phase-decomposer.ts +299 -0
- package/src/protocol/micro-step-decomposer.test.ts +306 -0
- package/src/protocol-agent.test.ts +353 -0
- package/src/protocol-agent.ts +670 -0
- package/src/self-improve/absorb-scanner.ts +252 -0
- package/src/self-improve/evolution-engine.ts +149 -0
- package/src/self-improve/framework-absorber.ts +214 -0
- package/src/self-improve/index.ts +50 -0
- package/src/self-improve/prompt-optimizer.ts +212 -0
- package/src/self-improve/test-generator.ts +175 -0
- package/src/skill-router.ts +186 -0
- package/src/skills/index.ts +5 -0
- package/src/skills/skill-md-bridge.ts +1699 -0
- package/src/swarm/ACOEngine.ts +261 -0
- package/src/swarm/CollectiveIntelligence.ts +383 -0
- package/src/swarm/ContributionSynthesizer.ts +481 -0
- package/src/swarm/LeaderElection.ts +393 -0
- package/src/swarm/PSOEngine.ts +206 -0
- package/src/swarm/QuorumPolicy.ts +173 -0
- package/src/swarm/SwarmCoordinator.ts +335 -0
- package/src/swarm/SwarmManager.ts +442 -0
- package/src/swarm/SwarmMembership.ts +456 -0
- package/src/swarm/VotingRound.ts +255 -0
- package/src/swarm/__tests__/ACOEngine.prod.test.ts +164 -0
- package/src/swarm/__tests__/ACOEngine.test.ts +117 -0
- package/src/swarm/__tests__/CollectiveIntelligence.prod.test.ts +296 -0
- package/src/swarm/__tests__/CollectiveIntelligence.test.ts +457 -0
- package/src/swarm/__tests__/ContributionSynthesizer.prod.test.ts +269 -0
- package/src/swarm/__tests__/ContributionSynthesizer.test.ts +254 -0
- package/src/swarm/__tests__/LeaderElection.prod.test.ts +196 -0
- package/src/swarm/__tests__/LeaderElection.test.ts +151 -0
- package/src/swarm/__tests__/PSOEngine.prod.test.ts +162 -0
- package/src/swarm/__tests__/PSOEngine.test.ts +106 -0
- package/src/swarm/__tests__/QuorumPolicy.prod.test.ts +216 -0
- package/src/swarm/__tests__/QuorumPolicy.test.ts +177 -0
- package/src/swarm/__tests__/SwarmCoordinator.prod.test.ts +186 -0
- package/src/swarm/__tests__/SwarmCoordinator.test.ts +167 -0
- package/src/swarm/__tests__/SwarmManager.prod.test.ts +308 -0
- package/src/swarm/__tests__/SwarmManager.test.ts +373 -0
- package/src/swarm/__tests__/SwarmMembership.prod.test.ts +273 -0
- package/src/swarm/__tests__/SwarmMembership.test.ts +264 -0
- package/src/swarm/__tests__/VotingRound.prod.test.ts +233 -0
- package/src/swarm/__tests__/VotingRound.test.ts +174 -0
- package/src/swarm/analytics/SwarmInspector.ts +476 -0
- package/src/swarm/analytics/SwarmMetrics.ts +449 -0
- package/src/swarm/analytics/__tests__/SwarmInspector.prod.test.ts +366 -0
- package/src/swarm/analytics/__tests__/SwarmInspector.test.ts +454 -0
- package/src/swarm/analytics/__tests__/SwarmMetrics.prod.test.ts +254 -0
- package/src/swarm/analytics/__tests__/SwarmMetrics.test.ts +370 -0
- package/src/swarm/analytics/index.ts +7 -0
- package/src/swarm/index.ts +69 -0
- package/src/swarm/messaging/BroadcastChannel.ts +509 -0
- package/src/swarm/messaging/GossipProtocol.ts +565 -0
- package/src/swarm/messaging/SwarmEventBus.ts +443 -0
- package/src/swarm/messaging/__tests__/BroadcastChannel.prod.test.ts +331 -0
- package/src/swarm/messaging/__tests__/BroadcastChannel.test.ts +333 -0
- package/src/swarm/messaging/__tests__/GossipProtocol.prod.test.ts +356 -0
- package/src/swarm/messaging/__tests__/GossipProtocol.test.ts +437 -0
- package/src/swarm/messaging/__tests__/SwarmEventBus.prod.test.ts +191 -0
- package/src/swarm/messaging/__tests__/SwarmEventBus.test.ts +247 -0
- package/src/swarm/messaging/index.ts +8 -0
- package/src/swarm/spatial/FlockingBehavior.ts +462 -0
- package/src/swarm/spatial/FormationController.ts +500 -0
- package/src/swarm/spatial/Vector3.ts +170 -0
- package/src/swarm/spatial/ZoneClaiming.ts +509 -0
- package/src/swarm/spatial/__tests__/FlockingBehavior.prod.test.ts +239 -0
- package/src/swarm/spatial/__tests__/FlockingBehavior.test.ts +298 -0
- package/src/swarm/spatial/__tests__/FormationController.prod.test.ts +240 -0
- package/src/swarm/spatial/__tests__/FormationController.test.ts +297 -0
- package/src/swarm/spatial/__tests__/Vector3.prod.test.ts +283 -0
- package/src/swarm/spatial/__tests__/Vector3.test.ts +224 -0
- package/src/swarm/spatial/__tests__/ZoneClaiming.prod.test.ts +246 -0
- package/src/swarm/spatial/__tests__/ZoneClaiming.test.ts +374 -0
- package/src/swarm/spatial/index.ts +28 -0
- package/src/team.ts +1245 -0
- package/src/training/LRScheduler.ts +377 -0
- package/src/training/QualityScoringPipeline.ts +139 -0
- package/src/training/SoftDedup.ts +461 -0
- package/src/training/SparsityMonitor.ts +685 -0
- package/src/training/SparsityMonitorTypes.ts +209 -0
- package/src/training/SpatialTrainingDataGenerator.ts +1526 -0
- package/src/training/SpatialTrainingDataTypes.ts +216 -0
- package/src/training/TrainingPipelineConfig.ts +215 -0
- package/src/training/constants.ts +94 -0
- package/src/training/index.ts +138 -0
- package/src/training/schema.ts +147 -0
- package/src/training/scripts/generate-novel-use-cases-dataset.ts +272 -0
- package/src/training/scripts/generate-spatial-dataset.ts +521 -0
- package/src/training/training/data/novel-use-cases.jsonl +153 -0
- package/src/training/training/data/spatial-reasoning-10k.jsonl +9354 -0
- package/src/training/trainingmonkey/TrainingMonkeyIntegration.ts +477 -0
- package/src/training/trainingmonkey/TrainingMonkeyTypes.ts +230 -0
- package/src/training/trainingmonkey/index.ts +26 -0
- package/src/training/trait-mappings.ts +157 -0
- package/src/types/core-stubs.d.ts +113 -0
- package/src/types.ts +304 -0
- package/test-output.txt +0 -0
- package/test-result.json +1 -0
- package/tsc-errors.txt +4 -0
- package/tsc_output.txt +0 -0
- package/tsconfig.json +14 -0
- package/tsup-learning-esm.config.ts +12 -0
- package/tsup.config.ts +21 -0
- package/typescript-errors-2.txt +0 -0
- package/typescript-errors.txt +22 -0
- package/vitest-log-utf8.txt +268 -0
- package/vitest-log.txt +0 -0
- package/vitest.config.ts +8 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Training Data Schema
|
|
3
|
+
*
|
|
4
|
+
* Canonical schema for training examples used across TM and HS.
|
|
5
|
+
* Imports only from local constants.ts (G.GAP.01 prevention).
|
|
6
|
+
*
|
|
7
|
+
* @version 1.0.0
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { TrainingCategory, DifficultyLevel } from './constants';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* A single training example in instruction/input/output format (JSONL-compatible)
|
|
14
|
+
*/
|
|
15
|
+
export interface TrainingExample {
|
|
16
|
+
instruction: string;
|
|
17
|
+
input: string;
|
|
18
|
+
output: string;
|
|
19
|
+
metadata: TrainingExampleMetadata;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Metadata for a training example
|
|
24
|
+
*/
|
|
25
|
+
export interface TrainingExampleMetadata {
|
|
26
|
+
category: TrainingCategory;
|
|
27
|
+
difficulty: DifficultyLevel;
|
|
28
|
+
traits: string[];
|
|
29
|
+
keywords: string[];
|
|
30
|
+
version: string;
|
|
31
|
+
behavior_template?: string;
|
|
32
|
+
quality_score?: number;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Quality scoring rubric for training examples (TM-compatible format)
|
|
37
|
+
*/
|
|
38
|
+
export interface TrainingQualityScore {
|
|
39
|
+
helpfulness: number;
|
|
40
|
+
correctness: number;
|
|
41
|
+
coherence: number;
|
|
42
|
+
complexity: number;
|
|
43
|
+
verbosity: number;
|
|
44
|
+
overall: number;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Validation result for a training example
|
|
49
|
+
*/
|
|
50
|
+
export interface TrainingValidationResult {
|
|
51
|
+
valid: boolean;
|
|
52
|
+
errors: TrainingValidationError[];
|
|
53
|
+
warnings: string[];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface TrainingValidationError {
|
|
57
|
+
field: string;
|
|
58
|
+
message: string;
|
|
59
|
+
severity: 'error' | 'warning' | 'info';
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Compression metrics for a training dataset
|
|
64
|
+
*/
|
|
65
|
+
export interface CompressionResult {
|
|
66
|
+
passed: boolean;
|
|
67
|
+
ratio: number;
|
|
68
|
+
total_examples: number;
|
|
69
|
+
unique_patterns: number;
|
|
70
|
+
quality_score?: number;
|
|
71
|
+
issue?: string;
|
|
72
|
+
recommendation?: string;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Generator metrics for auditing training data quality
|
|
77
|
+
*/
|
|
78
|
+
export interface GeneratorMetrics {
|
|
79
|
+
file_size_bytes: number;
|
|
80
|
+
total_examples: number;
|
|
81
|
+
unique_patterns: number;
|
|
82
|
+
compression_ratio: number;
|
|
83
|
+
duplication_rate: number;
|
|
84
|
+
avg_quality_score: number;
|
|
85
|
+
generation_time_ms: number;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Validate a training example against the schema
|
|
90
|
+
*/
|
|
91
|
+
export function validateTrainingExample(example: unknown): TrainingValidationResult {
|
|
92
|
+
const errors: TrainingValidationError[] = [];
|
|
93
|
+
const warnings: string[] = [];
|
|
94
|
+
|
|
95
|
+
if (!example || typeof example !== 'object') {
|
|
96
|
+
return {
|
|
97
|
+
valid: false,
|
|
98
|
+
errors: [{ field: 'root', message: 'Example must be an object', severity: 'error' }],
|
|
99
|
+
warnings,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
const ex = example as Record<string, unknown>;
|
|
104
|
+
|
|
105
|
+
if (typeof ex.instruction !== 'string' || ex.instruction.length === 0) {
|
|
106
|
+
errors.push({
|
|
107
|
+
field: 'instruction',
|
|
108
|
+
message: 'instruction must be a non-empty string',
|
|
109
|
+
severity: 'error',
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
if (typeof ex.input !== 'string') {
|
|
113
|
+
errors.push({ field: 'input', message: 'input must be a string', severity: 'error' });
|
|
114
|
+
}
|
|
115
|
+
if (typeof ex.output !== 'string' || ex.output.length === 0) {
|
|
116
|
+
errors.push({
|
|
117
|
+
field: 'output',
|
|
118
|
+
message: 'output must be a non-empty string',
|
|
119
|
+
severity: 'error',
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if (ex.metadata && typeof ex.metadata === 'object') {
|
|
124
|
+
const meta = ex.metadata as Record<string, unknown>;
|
|
125
|
+
if (typeof meta.category !== 'string') {
|
|
126
|
+
errors.push({
|
|
127
|
+
field: 'metadata.category',
|
|
128
|
+
message: 'category must be a string',
|
|
129
|
+
severity: 'error',
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
if (typeof meta.difficulty !== 'string') {
|
|
133
|
+
errors.push({
|
|
134
|
+
field: 'metadata.difficulty',
|
|
135
|
+
message: 'difficulty must be a string',
|
|
136
|
+
severity: 'error',
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
if (!Array.isArray(meta.traits)) {
|
|
140
|
+
warnings.push('metadata.traits should be an array');
|
|
141
|
+
}
|
|
142
|
+
} else {
|
|
143
|
+
errors.push({ field: 'metadata', message: 'metadata must be an object', severity: 'error' });
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
return { valid: errors.length === 0, errors, warnings };
|
|
147
|
+
}
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
#!/usr/bin/env npx tsx
|
|
2
|
+
/**
|
|
3
|
+
* Novel Use Cases Training Dataset Generator
|
|
4
|
+
*
|
|
5
|
+
* Reads .holo, .hsplus, and .hs files from examples/novel-use-cases/
|
|
6
|
+
* and generates Alpaca-format JSONL instruction-response pairs for
|
|
7
|
+
* TrainingMonkey fine-tuning.
|
|
8
|
+
*
|
|
9
|
+
* Instruction types generated per file:
|
|
10
|
+
* 1. "Explain" — summarize what the composition does
|
|
11
|
+
* 2. "Traits" — identify v5 traits used
|
|
12
|
+
* 3. "Format" — explain why this format (.holo/.hsplus/.hs) is used
|
|
13
|
+
* 4. "Economy" — analyze economy/feedback patterns
|
|
14
|
+
*
|
|
15
|
+
* Usage:
|
|
16
|
+
* npx tsx packages/core/src/training/scripts/generate-novel-use-cases-dataset.ts
|
|
17
|
+
*
|
|
18
|
+
* Output:
|
|
19
|
+
* packages/core/src/training/data/novel-use-cases.jsonl
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
import { readFileSync, readdirSync, writeFileSync, mkdirSync, existsSync } from 'node:fs';
|
|
23
|
+
import { join, dirname, basename, extname } from 'node:path';
|
|
24
|
+
import { fileURLToPath } from 'node:url';
|
|
25
|
+
|
|
26
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
27
|
+
const EXAMPLES_DIR = join(__dirname, '..', '..', '..', '..', '..', 'examples', 'novel-use-cases');
|
|
28
|
+
const OUTPUT_PATH = join(__dirname, '..', 'data', 'novel-use-cases.jsonl');
|
|
29
|
+
|
|
30
|
+
// =============================================================================
|
|
31
|
+
// USE CASE METADATA
|
|
32
|
+
// =============================================================================
|
|
33
|
+
|
|
34
|
+
const USE_CASE_META: Record<string, { domain: string; summary: string; v5Traits: string[] }> = {
|
|
35
|
+
'01-quantum-materials-arena': {
|
|
36
|
+
domain: 'Materials Science',
|
|
37
|
+
summary: 'Quantum circuit simulation arena for materials discovery using VQE/QAOA algorithms',
|
|
38
|
+
v5Traits: ['agent_portal', 'economy', 'feedback_loop', 'post_quantum_audit'],
|
|
39
|
+
},
|
|
40
|
+
'02-scifi-future-vision': {
|
|
41
|
+
domain: 'Entertainment/Creative',
|
|
42
|
+
summary: 'Collaborative sci-fi worldbuilding with multi-faction lore voting and plot branching',
|
|
43
|
+
v5Traits: ['agent_portal', 'economy', 'cultural_profile', 'norm_compliant'],
|
|
44
|
+
},
|
|
45
|
+
'03-water-scarcity-swarm': {
|
|
46
|
+
domain: 'Environmental/Climate',
|
|
47
|
+
summary: 'Autonomous water monitoring swarm with IoT sensor fusion and mitigation planning',
|
|
48
|
+
v5Traits: ['agent_portal', 'economy', 'feedback_loop', 'norm_compliant', 'post_quantum_audit'],
|
|
49
|
+
},
|
|
50
|
+
'04-ethical-ai-sandbox': {
|
|
51
|
+
domain: 'AI Safety',
|
|
52
|
+
summary:
|
|
53
|
+
'Embodied AI alignment sandbox with norm enforcement, dilemma generation, and self-reporting',
|
|
54
|
+
v5Traits: ['agent_portal', 'cultural_profile', 'norm_compliant'],
|
|
55
|
+
},
|
|
56
|
+
'05-robot-training-metaverse': {
|
|
57
|
+
domain: 'Robotics',
|
|
58
|
+
summary: 'Sim-to-real robot training with curriculum learning and transfer validation',
|
|
59
|
+
v5Traits: ['agent_portal', 'economy', 'feedback_loop', 'digital_twin'],
|
|
60
|
+
},
|
|
61
|
+
'06-neurodiverse-therapy': {
|
|
62
|
+
domain: 'Healthcare/Therapy',
|
|
63
|
+
summary:
|
|
64
|
+
'Adaptive sensory therapy for neurodiverse users with biometric-driven environment adjustment',
|
|
65
|
+
v5Traits: ['agent_portal', 'economy', 'feedback_loop', 'tenant'],
|
|
66
|
+
},
|
|
67
|
+
'07-wildfire-response-swarm': {
|
|
68
|
+
domain: 'Emergency Response',
|
|
69
|
+
summary:
|
|
70
|
+
'Wildfire detection and containment coordination with incident command and resource allocation',
|
|
71
|
+
v5Traits: ['agent_portal', 'economy', 'feedback_loop', 'norm_compliant', 'post_quantum_audit'],
|
|
72
|
+
},
|
|
73
|
+
'08-healthspan-twin': {
|
|
74
|
+
domain: 'Healthcare/Longevity',
|
|
75
|
+
summary:
|
|
76
|
+
'Personal digital twin for biomarker tracking, trend detection, and intervention simulation',
|
|
77
|
+
v5Traits: ['agent_portal', 'economy', 'feedback_loop', 'tenant'],
|
|
78
|
+
},
|
|
79
|
+
'09-scifi-cocreation-metaverse': {
|
|
80
|
+
domain: 'Entertainment/Creative',
|
|
81
|
+
summary:
|
|
82
|
+
'Multi-faction co-creation metaverse with cultural memory and faction balance feedback',
|
|
83
|
+
v5Traits: ['agent_portal', 'economy', 'cultural_profile', 'cultural_memory'],
|
|
84
|
+
},
|
|
85
|
+
'10-urban-planning-governance': {
|
|
86
|
+
domain: 'Civic/Governance',
|
|
87
|
+
summary:
|
|
88
|
+
'Democratic urban planning simulator with referendum engine and one-vote-per-citizen norms',
|
|
89
|
+
v5Traits: ['agent_portal', 'economy', 'norm_compliant', 'tenant'],
|
|
90
|
+
},
|
|
91
|
+
'11-sensory-therapy-worlds': {
|
|
92
|
+
domain: 'Healthcare/Therapy',
|
|
93
|
+
summary:
|
|
94
|
+
'Persistent sensory therapy worlds with progressive milestones and emergency overwhelm handling',
|
|
95
|
+
v5Traits: ['agent_portal', 'economy', 'feedback_loop', 'tenant'],
|
|
96
|
+
},
|
|
97
|
+
'12-heritage-revival-museum': {
|
|
98
|
+
domain: 'Cultural Heritage',
|
|
99
|
+
summary:
|
|
100
|
+
'Digital heritage museum with provenance verification, restoration bounties, and cultural memory',
|
|
101
|
+
v5Traits: [
|
|
102
|
+
'agent_portal',
|
|
103
|
+
'economy',
|
|
104
|
+
'cultural_profile',
|
|
105
|
+
'cultural_memory',
|
|
106
|
+
'post_quantum_audit',
|
|
107
|
+
],
|
|
108
|
+
},
|
|
109
|
+
'13-disaster-robotics-swarm': {
|
|
110
|
+
domain: 'Robotics/Emergency',
|
|
111
|
+
summary: 'Disaster rescue robot swarm training with curriculum evolution and skill market',
|
|
112
|
+
v5Traits: ['agent_portal', 'economy', 'feedback_loop', 'digital_twin'],
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
// =============================================================================
|
|
117
|
+
// FORMAT DESCRIPTIONS
|
|
118
|
+
// =============================================================================
|
|
119
|
+
|
|
120
|
+
const FORMAT_DESC: Record<string, string> = {
|
|
121
|
+
'.holo':
|
|
122
|
+
'Declarative scene composition — defines WHAT exists (entities, templates, panels, environment). Uses `composition`, `entity`, `template`, `panel` blocks.',
|
|
123
|
+
'.hsplus':
|
|
124
|
+
'Behavioral contracts — defines HOW things behave. Uses `module` with `exports`, `@state_machine` with guarded transitions, `@on_event` reactive handlers.',
|
|
125
|
+
'.hs':
|
|
126
|
+
'Procedural pipelines — defines sequential PROCESS flow. Uses `object` stages with `function`, `connect A.event -> B.fn` wiring, `execute fn() every Nms`.',
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
// =============================================================================
|
|
130
|
+
// INSTRUCTION GENERATORS
|
|
131
|
+
// =============================================================================
|
|
132
|
+
|
|
133
|
+
interface AlpacaEntry {
|
|
134
|
+
instruction: string;
|
|
135
|
+
input: string;
|
|
136
|
+
output: string;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function generateExplainPair(
|
|
140
|
+
filename: string,
|
|
141
|
+
source: string,
|
|
142
|
+
meta: (typeof USE_CASE_META)[string]
|
|
143
|
+
): AlpacaEntry {
|
|
144
|
+
return {
|
|
145
|
+
instruction: `Explain what this HoloScript ${extname(filename)} composition does and what domain it targets.`,
|
|
146
|
+
input: source.substring(0, 800),
|
|
147
|
+
output: `This is a ${meta.domain} application. ${meta.summary}. It uses HoloScript v5 Autonomous Ecosystems traits including ${meta.v5Traits.join(', ')}. The composition is written in ${extname(filename)} format, which is ${FORMAT_DESC[extname(filename)]?.split(' — ')[0] || 'a HoloScript format'}.`,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
function generateTraitsPair(
|
|
152
|
+
filename: string,
|
|
153
|
+
source: string,
|
|
154
|
+
meta: (typeof USE_CASE_META)[string]
|
|
155
|
+
): AlpacaEntry {
|
|
156
|
+
const traits = meta.v5Traits;
|
|
157
|
+
const traitDescs: Record<string, string> = {
|
|
158
|
+
agent_portal: 'enables agent migration and cross-world communication',
|
|
159
|
+
economy: 'provides credit-based resource management and bounty systems',
|
|
160
|
+
feedback_loop: 'self-optimization through metric tracking and adjustment signals',
|
|
161
|
+
post_quantum_audit: 'cryptographic audit trail using ML-KEM-768 algorithm',
|
|
162
|
+
cultural_profile: 'cooperation norms, dialect, and cultural family settings',
|
|
163
|
+
cultural_memory: 'episodic memory with consolidation and trace detection',
|
|
164
|
+
norm_compliant: 'hard/soft norm enforcement with violation tracking',
|
|
165
|
+
tenant: 'multi-tenant RBAC isolation (e.g., HIPAA compliance)',
|
|
166
|
+
digital_twin: 'ROS2Bridge for sim-to-real synchronization',
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
const details = traits.map((t) => `- **${t}**: ${traitDescs[t] || 'v5 trait'}`).join('\n');
|
|
170
|
+
return {
|
|
171
|
+
instruction: `What v5 Autonomous Ecosystems traits does this HoloScript composition use, and what does each one do?`,
|
|
172
|
+
input: source.substring(0, 600),
|
|
173
|
+
output: `This ${meta.domain} composition uses ${traits.length} v5 traits:\n${details}`,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
function generateFormatPair(
|
|
178
|
+
filename: string,
|
|
179
|
+
source: string,
|
|
180
|
+
meta: (typeof USE_CASE_META)[string]
|
|
181
|
+
): AlpacaEntry {
|
|
182
|
+
const ext = extname(filename);
|
|
183
|
+
return {
|
|
184
|
+
instruction: `Why is the ${ext} format used for this HoloScript composition instead of other formats?`,
|
|
185
|
+
input: source.substring(0, 500),
|
|
186
|
+
output: `The ${ext} format is used because: ${FORMAT_DESC[ext] || 'it is appropriate for this use case'}. For this ${meta.domain} application (${meta.summary}), the ${ext} format is ideal because it ${ext === '.holo' ? 'declares the full scene hierarchy with entities, templates, and panels' : ext === '.hsplus' ? 'encapsulates reactive behavior in modules with state machines and event handlers' : 'expresses the sequential processing pipeline with connect wiring between stages'}.`,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
function generateEconomyPair(
|
|
191
|
+
filename: string,
|
|
192
|
+
source: string,
|
|
193
|
+
meta: (typeof USE_CASE_META)[string]
|
|
194
|
+
): AlpacaEntry | null {
|
|
195
|
+
if (!meta.v5Traits.includes('economy')) return null;
|
|
196
|
+
|
|
197
|
+
const hasEarn = source.includes('economy:earn') || source.includes('earn');
|
|
198
|
+
const hasSpend = source.includes('economy:spend') || source.includes('spend');
|
|
199
|
+
const hasBounty = source.includes('bounty');
|
|
200
|
+
const hasTransfer = source.includes('economy:transfer') || source.includes('transfer');
|
|
201
|
+
const hasFeedback = source.includes('feedback:') || source.includes('feedback_loop');
|
|
202
|
+
|
|
203
|
+
const patterns: string[] = [];
|
|
204
|
+
if (hasEarn) patterns.push('credit earning for completed tasks');
|
|
205
|
+
if (hasSpend) patterns.push('credit spending for resource consumption');
|
|
206
|
+
if (hasBounty) patterns.push('bounty posting and claiming for task delegation');
|
|
207
|
+
if (hasTransfer) patterns.push('credit transfers between agents');
|
|
208
|
+
if (hasFeedback) patterns.push('feedback loop optimization signals');
|
|
209
|
+
|
|
210
|
+
return {
|
|
211
|
+
instruction: `What economy and feedback patterns does this HoloScript composition implement?`,
|
|
212
|
+
input: source.substring(0, 600),
|
|
213
|
+
output: `This ${meta.domain} composition implements the following economy/feedback patterns:\n${patterns.map((p) => `- ${p}`).join('\n')}\n\nThe economy trait provides a credit-based resource management system where agents earn credits for valuable work and spend them on computational resources. ${hasFeedback ? 'The feedback_loop trait enables self-optimization: metrics are tracked continuously and optimization signals are emitted when trends change, allowing agents to auto-adjust their behavior.' : ''}`,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// =============================================================================
|
|
218
|
+
// MAIN
|
|
219
|
+
// =============================================================================
|
|
220
|
+
|
|
221
|
+
function main(): void {
|
|
222
|
+
console.log('='.repeat(60));
|
|
223
|
+
console.log(' Novel Use Cases Training Dataset Generator');
|
|
224
|
+
console.log('='.repeat(60));
|
|
225
|
+
|
|
226
|
+
const files = readdirSync(EXAMPLES_DIR)
|
|
227
|
+
.filter((f) => ['.holo', '.hsplus', '.hs'].includes(extname(f)))
|
|
228
|
+
.sort();
|
|
229
|
+
|
|
230
|
+
console.log(`\nFound ${files.length} source files in ${EXAMPLES_DIR}`);
|
|
231
|
+
|
|
232
|
+
const entries: AlpacaEntry[] = [];
|
|
233
|
+
|
|
234
|
+
for (const file of files) {
|
|
235
|
+
const source = readFileSync(join(EXAMPLES_DIR, file), 'utf-8');
|
|
236
|
+
const key = basename(file, extname(file));
|
|
237
|
+
const meta = USE_CASE_META[key];
|
|
238
|
+
|
|
239
|
+
if (!meta) {
|
|
240
|
+
console.log(` SKIP ${file} — no metadata`);
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
// Generate instruction-response pairs
|
|
245
|
+
entries.push(generateExplainPair(file, source, meta));
|
|
246
|
+
entries.push(generateTraitsPair(file, source, meta));
|
|
247
|
+
entries.push(generateFormatPair(file, source, meta));
|
|
248
|
+
|
|
249
|
+
const economyPair = generateEconomyPair(file, source, meta);
|
|
250
|
+
if (economyPair) entries.push(economyPair);
|
|
251
|
+
|
|
252
|
+
console.log(` ✓ ${file} — ${economyPair ? 4 : 3} pairs`);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
// Write JSONL
|
|
256
|
+
const outputDir = dirname(OUTPUT_PATH);
|
|
257
|
+
if (!existsSync(outputDir)) mkdirSync(outputDir, { recursive: true });
|
|
258
|
+
|
|
259
|
+
const jsonl = entries.map((e) => JSON.stringify(e)).join('\n') + '\n';
|
|
260
|
+
writeFileSync(OUTPUT_PATH, jsonl, 'utf-8');
|
|
261
|
+
|
|
262
|
+
const sizeMB = (Buffer.byteLength(jsonl, 'utf-8') / (1024 * 1024)).toFixed(3);
|
|
263
|
+
|
|
264
|
+
console.log(`\n--- Results ---`);
|
|
265
|
+
console.log(` Files processed: ${files.length}`);
|
|
266
|
+
console.log(` Entries generated: ${entries.length}`);
|
|
267
|
+
console.log(` Output: ${OUTPUT_PATH}`);
|
|
268
|
+
console.log(` Size: ${sizeMB} MB`);
|
|
269
|
+
console.log('Done.');
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
main();
|