@iflow-mcp/jkheadley-instar 0.26.2
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/.claude/hooks/free-text-guard.sh +117 -0
- package/.claude/settings.json +201 -0
- package/.claude/skills/autonomous/hooks/autonomous-stop-hook.sh +234 -0
- package/.claude/skills/autonomous/hooks/hooks.json +15 -0
- package/.claude/skills/autonomous/scripts/setup-autonomous.sh +166 -0
- package/.claude/skills/autonomous/skill.md +254 -0
- package/.claude/skills/secret-setup/skill.md +210 -0
- package/.claude/skills/setup-wizard/skill.md +2132 -0
- package/LICENSE +21 -0
- package/README.md +214 -0
- package/dashboard/favicon.png +0 -0
- package/dashboard/index.html +5740 -0
- package/dashboard/logo.png +0 -0
- package/dist/cli.d.ts +21 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1782 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/backup.d.ts +16 -0
- package/dist/commands/backup.d.ts.map +1 -0
- package/dist/commands/backup.js +84 -0
- package/dist/commands/backup.js.map +1 -0
- package/dist/commands/discovery.d.ts +158 -0
- package/dist/commands/discovery.d.ts.map +1 -0
- package/dist/commands/discovery.js +532 -0
- package/dist/commands/discovery.js.map +1 -0
- package/dist/commands/git.d.ts +25 -0
- package/dist/commands/git.d.ts.map +1 -0
- package/dist/commands/git.js +152 -0
- package/dist/commands/git.js.map +1 -0
- package/dist/commands/init.d.ts +52 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +4211 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/intent.d.ts +30 -0
- package/dist/commands/intent.d.ts.map +1 -0
- package/dist/commands/intent.js +349 -0
- package/dist/commands/intent.js.map +1 -0
- package/dist/commands/job.d.ts +42 -0
- package/dist/commands/job.d.ts.map +1 -0
- package/dist/commands/job.js +202 -0
- package/dist/commands/job.js.map +1 -0
- package/dist/commands/knowledge.d.ts +25 -0
- package/dist/commands/knowledge.d.ts.map +1 -0
- package/dist/commands/knowledge.js +127 -0
- package/dist/commands/knowledge.js.map +1 -0
- package/dist/commands/machine.d.ts +53 -0
- package/dist/commands/machine.d.ts.map +1 -0
- package/dist/commands/machine.js +680 -0
- package/dist/commands/machine.js.map +1 -0
- package/dist/commands/memory.d.ts +24 -0
- package/dist/commands/memory.d.ts.map +1 -0
- package/dist/commands/memory.js +163 -0
- package/dist/commands/memory.js.map +1 -0
- package/dist/commands/nuke.d.ts +22 -0
- package/dist/commands/nuke.d.ts.map +1 -0
- package/dist/commands/nuke.js +216 -0
- package/dist/commands/nuke.js.map +1 -0
- package/dist/commands/org.d.ts +16 -0
- package/dist/commands/org.d.ts.map +1 -0
- package/dist/commands/org.js +69 -0
- package/dist/commands/org.js.map +1 -0
- package/dist/commands/playbook.d.ts +91 -0
- package/dist/commands/playbook.d.ts.map +1 -0
- package/dist/commands/playbook.js +1016 -0
- package/dist/commands/playbook.js.map +1 -0
- package/dist/commands/reflect.d.ts +52 -0
- package/dist/commands/reflect.d.ts.map +1 -0
- package/dist/commands/reflect.js +316 -0
- package/dist/commands/reflect.js.map +1 -0
- package/dist/commands/relationship.d.ts +17 -0
- package/dist/commands/relationship.d.ts.map +1 -0
- package/dist/commands/relationship.js +156 -0
- package/dist/commands/relationship.js.map +1 -0
- package/dist/commands/relay.d.ts +26 -0
- package/dist/commands/relay.d.ts.map +1 -0
- package/dist/commands/relay.js +121 -0
- package/dist/commands/relay.js.map +1 -0
- package/dist/commands/review.d.ts +18 -0
- package/dist/commands/review.d.ts.map +1 -0
- package/dist/commands/review.js +193 -0
- package/dist/commands/review.js.map +1 -0
- package/dist/commands/semantic.d.ts +37 -0
- package/dist/commands/semantic.d.ts.map +1 -0
- package/dist/commands/semantic.js +198 -0
- package/dist/commands/semantic.js.map +1 -0
- package/dist/commands/server.d.ts +37 -0
- package/dist/commands/server.d.ts.map +1 -0
- package/dist/commands/server.js +4875 -0
- package/dist/commands/server.js.map +1 -0
- package/dist/commands/setup.d.ts +63 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +1235 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/slack-cli.d.ts +16 -0
- package/dist/commands/slack-cli.d.ts.map +1 -0
- package/dist/commands/slack-cli.js +259 -0
- package/dist/commands/slack-cli.js.map +1 -0
- package/dist/commands/status.d.ts +11 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +120 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/user.d.ts +17 -0
- package/dist/commands/user.d.ts.map +1 -0
- package/dist/commands/user.js +53 -0
- package/dist/commands/user.js.map +1 -0
- package/dist/commands/whatsapp.d.ts +31 -0
- package/dist/commands/whatsapp.d.ts.map +1 -0
- package/dist/commands/whatsapp.js +408 -0
- package/dist/commands/whatsapp.js.map +1 -0
- package/dist/config/ConfigDefaults.d.ts +40 -0
- package/dist/config/ConfigDefaults.d.ts.map +1 -0
- package/dist/config/ConfigDefaults.js +175 -0
- package/dist/config/ConfigDefaults.js.map +1 -0
- package/dist/config/LiveConfig.d.ts +97 -0
- package/dist/config/LiveConfig.d.ts.map +1 -0
- package/dist/config/LiveConfig.js +220 -0
- package/dist/config/LiveConfig.js.map +1 -0
- package/dist/core/AccessControl.d.ts +91 -0
- package/dist/core/AccessControl.d.ts.map +1 -0
- package/dist/core/AccessControl.js +184 -0
- package/dist/core/AccessControl.js.map +1 -0
- package/dist/core/AdaptationValidator.d.ts +44 -0
- package/dist/core/AdaptationValidator.d.ts.map +1 -0
- package/dist/core/AdaptationValidator.js +132 -0
- package/dist/core/AdaptationValidator.js.map +1 -0
- package/dist/core/AdaptiveTrust.d.ts +188 -0
- package/dist/core/AdaptiveTrust.d.ts.map +1 -0
- package/dist/core/AdaptiveTrust.js +354 -0
- package/dist/core/AdaptiveTrust.js.map +1 -0
- package/dist/core/AgentBus.d.ts +168 -0
- package/dist/core/AgentBus.d.ts.map +1 -0
- package/dist/core/AgentBus.js +369 -0
- package/dist/core/AgentBus.js.map +1 -0
- package/dist/core/AgentConnector.d.ts +76 -0
- package/dist/core/AgentConnector.d.ts.map +1 -0
- package/dist/core/AgentConnector.js +324 -0
- package/dist/core/AgentConnector.js.map +1 -0
- package/dist/core/AgentRegistry.d.ts +107 -0
- package/dist/core/AgentRegistry.d.ts.map +1 -0
- package/dist/core/AgentRegistry.js +569 -0
- package/dist/core/AgentRegistry.js.map +1 -0
- package/dist/core/AnthropicIntelligenceProvider.d.ts +24 -0
- package/dist/core/AnthropicIntelligenceProvider.d.ts.map +1 -0
- package/dist/core/AnthropicIntelligenceProvider.js +63 -0
- package/dist/core/AnthropicIntelligenceProvider.js.map +1 -0
- package/dist/core/AuditTrail.d.ts +207 -0
- package/dist/core/AuditTrail.d.ts.map +1 -0
- package/dist/core/AuditTrail.js +271 -0
- package/dist/core/AuditTrail.js.map +1 -0
- package/dist/core/AutoApprover.d.ts +63 -0
- package/dist/core/AutoApprover.d.ts.map +1 -0
- package/dist/core/AutoApprover.js +151 -0
- package/dist/core/AutoApprover.js.map +1 -0
- package/dist/core/AutoDispatcher.d.ts +170 -0
- package/dist/core/AutoDispatcher.d.ts.map +1 -0
- package/dist/core/AutoDispatcher.js +647 -0
- package/dist/core/AutoDispatcher.js.map +1 -0
- package/dist/core/AutoUpdater.d.ts +193 -0
- package/dist/core/AutoUpdater.d.ts.map +1 -0
- package/dist/core/AutoUpdater.js +648 -0
- package/dist/core/AutoUpdater.js.map +1 -0
- package/dist/core/AutonomousEvolution.d.ts +168 -0
- package/dist/core/AutonomousEvolution.d.ts.map +1 -0
- package/dist/core/AutonomousEvolution.js +384 -0
- package/dist/core/AutonomousEvolution.js.map +1 -0
- package/dist/core/AutonomyProfileManager.d.ts +108 -0
- package/dist/core/AutonomyProfileManager.d.ts.map +1 -0
- package/dist/core/AutonomyProfileManager.js +323 -0
- package/dist/core/AutonomyProfileManager.js.map +1 -0
- package/dist/core/AutonomySkill.d.ts +98 -0
- package/dist/core/AutonomySkill.d.ts.map +1 -0
- package/dist/core/AutonomySkill.js +497 -0
- package/dist/core/AutonomySkill.js.map +1 -0
- package/dist/core/BackupManager.d.ts +66 -0
- package/dist/core/BackupManager.d.ts.map +1 -0
- package/dist/core/BackupManager.js +266 -0
- package/dist/core/BackupManager.js.map +1 -0
- package/dist/core/BitwardenProvider.d.ts +85 -0
- package/dist/core/BitwardenProvider.d.ts.map +1 -0
- package/dist/core/BitwardenProvider.js +437 -0
- package/dist/core/BitwardenProvider.js.map +1 -0
- package/dist/core/BlockerLearningLoop.d.ts +99 -0
- package/dist/core/BlockerLearningLoop.d.ts.map +1 -0
- package/dist/core/BlockerLearningLoop.js +205 -0
- package/dist/core/BlockerLearningLoop.js.map +1 -0
- package/dist/core/BranchManager.d.ts +165 -0
- package/dist/core/BranchManager.d.ts.map +1 -0
- package/dist/core/BranchManager.js +413 -0
- package/dist/core/BranchManager.js.map +1 -0
- package/dist/core/CaffeinateManager.d.ts +50 -0
- package/dist/core/CaffeinateManager.d.ts.map +1 -0
- package/dist/core/CaffeinateManager.js +189 -0
- package/dist/core/CaffeinateManager.js.map +1 -0
- package/dist/core/CallbackRegistry.d.ts +67 -0
- package/dist/core/CallbackRegistry.d.ts.map +1 -0
- package/dist/core/CallbackRegistry.js +145 -0
- package/dist/core/CallbackRegistry.js.map +1 -0
- package/dist/core/CanonicalState.d.ts +132 -0
- package/dist/core/CanonicalState.d.ts.map +1 -0
- package/dist/core/CanonicalState.js +297 -0
- package/dist/core/CanonicalState.js.map +1 -0
- package/dist/core/CapabilityMapper.d.ts +192 -0
- package/dist/core/CapabilityMapper.d.ts.map +1 -0
- package/dist/core/CapabilityMapper.js +958 -0
- package/dist/core/CapabilityMapper.js.map +1 -0
- package/dist/core/CapabilityRegistryGenerator.d.ts +72 -0
- package/dist/core/CapabilityRegistryGenerator.d.ts.map +1 -0
- package/dist/core/CapabilityRegistryGenerator.js +310 -0
- package/dist/core/CapabilityRegistryGenerator.js.map +1 -0
- package/dist/core/ClaudeCliIntelligenceProvider.d.ts +21 -0
- package/dist/core/ClaudeCliIntelligenceProvider.d.ts.map +1 -0
- package/dist/core/ClaudeCliIntelligenceProvider.js +60 -0
- package/dist/core/ClaudeCliIntelligenceProvider.js.map +1 -0
- package/dist/core/CoherenceGate.d.ts +198 -0
- package/dist/core/CoherenceGate.d.ts.map +1 -0
- package/dist/core/CoherenceGate.js +986 -0
- package/dist/core/CoherenceGate.js.map +1 -0
- package/dist/core/CoherenceReviewer.d.ts +104 -0
- package/dist/core/CoherenceReviewer.d.ts.map +1 -0
- package/dist/core/CoherenceReviewer.js +185 -0
- package/dist/core/CoherenceReviewer.js.map +1 -0
- package/dist/core/Config.d.ts +32 -0
- package/dist/core/Config.d.ts.map +1 -0
- package/dist/core/Config.js +332 -0
- package/dist/core/Config.js.map +1 -0
- package/dist/core/ConflictNegotiator.d.ts +167 -0
- package/dist/core/ConflictNegotiator.d.ts.map +1 -0
- package/dist/core/ConflictNegotiator.js +280 -0
- package/dist/core/ConflictNegotiator.js.map +1 -0
- package/dist/core/ContextHierarchy.d.ts +102 -0
- package/dist/core/ContextHierarchy.d.ts.map +1 -0
- package/dist/core/ContextHierarchy.js +594 -0
- package/dist/core/ContextHierarchy.js.map +1 -0
- package/dist/core/ContextSnapshotBuilder.d.ts +80 -0
- package/dist/core/ContextSnapshotBuilder.d.ts.map +1 -0
- package/dist/core/ContextSnapshotBuilder.js +342 -0
- package/dist/core/ContextSnapshotBuilder.js.map +1 -0
- package/dist/core/ContextualEvaluator.d.ts +103 -0
- package/dist/core/ContextualEvaluator.d.ts.map +1 -0
- package/dist/core/ContextualEvaluator.js +389 -0
- package/dist/core/ContextualEvaluator.js.map +1 -0
- package/dist/core/ConvergenceChecker.d.ts +24 -0
- package/dist/core/ConvergenceChecker.d.ts.map +1 -0
- package/dist/core/ConvergenceChecker.js +113 -0
- package/dist/core/ConvergenceChecker.js.map +1 -0
- package/dist/core/CoordinationProtocol.d.ts +198 -0
- package/dist/core/CoordinationProtocol.d.ts.map +1 -0
- package/dist/core/CoordinationProtocol.js +363 -0
- package/dist/core/CoordinationProtocol.js.map +1 -0
- package/dist/core/CustomReviewerLoader.d.ts +45 -0
- package/dist/core/CustomReviewerLoader.d.ts.map +1 -0
- package/dist/core/CustomReviewerLoader.js +153 -0
- package/dist/core/CustomReviewerLoader.js.map +1 -0
- package/dist/core/DecisionJournal.d.ts +56 -0
- package/dist/core/DecisionJournal.d.ts.map +1 -0
- package/dist/core/DecisionJournal.js +132 -0
- package/dist/core/DecisionJournal.js.map +1 -0
- package/dist/core/DeferredDispatchTracker.d.ts +91 -0
- package/dist/core/DeferredDispatchTracker.d.ts.map +1 -0
- package/dist/core/DeferredDispatchTracker.js +213 -0
- package/dist/core/DeferredDispatchTracker.js.map +1 -0
- package/dist/core/DiscoveryEvaluator.d.ts +131 -0
- package/dist/core/DiscoveryEvaluator.d.ts.map +1 -0
- package/dist/core/DiscoveryEvaluator.js +377 -0
- package/dist/core/DiscoveryEvaluator.js.map +1 -0
- package/dist/core/DispatchDecisionJournal.d.ts +83 -0
- package/dist/core/DispatchDecisionJournal.d.ts.map +1 -0
- package/dist/core/DispatchDecisionJournal.js +181 -0
- package/dist/core/DispatchDecisionJournal.js.map +1 -0
- package/dist/core/DispatchExecutor.d.ts +127 -0
- package/dist/core/DispatchExecutor.d.ts.map +1 -0
- package/dist/core/DispatchExecutor.js +355 -0
- package/dist/core/DispatchExecutor.js.map +1 -0
- package/dist/core/DispatchManager.d.ts +200 -0
- package/dist/core/DispatchManager.d.ts.map +1 -0
- package/dist/core/DispatchManager.js +524 -0
- package/dist/core/DispatchManager.js.map +1 -0
- package/dist/core/DispatchScopeEnforcer.d.ts +57 -0
- package/dist/core/DispatchScopeEnforcer.d.ts.map +1 -0
- package/dist/core/DispatchScopeEnforcer.js +173 -0
- package/dist/core/DispatchScopeEnforcer.js.map +1 -0
- package/dist/core/DispatchVerifier.d.ts +76 -0
- package/dist/core/DispatchVerifier.d.ts.map +1 -0
- package/dist/core/DispatchVerifier.js +128 -0
- package/dist/core/DispatchVerifier.js.map +1 -0
- package/dist/core/EvolutionManager.d.ts +223 -0
- package/dist/core/EvolutionManager.d.ts.map +1 -0
- package/dist/core/EvolutionManager.js +630 -0
- package/dist/core/EvolutionManager.js.map +1 -0
- package/dist/core/ExecutionJournal.d.ts +101 -0
- package/dist/core/ExecutionJournal.d.ts.map +1 -0
- package/dist/core/ExecutionJournal.js +301 -0
- package/dist/core/ExecutionJournal.js.map +1 -0
- package/dist/core/ExternalOperationGate.d.ts +204 -0
- package/dist/core/ExternalOperationGate.d.ts.map +1 -0
- package/dist/core/ExternalOperationGate.js +413 -0
- package/dist/core/ExternalOperationGate.js.map +1 -0
- package/dist/core/FeatureDefinitions.d.ts +14 -0
- package/dist/core/FeatureDefinitions.d.ts.map +1 -0
- package/dist/core/FeatureDefinitions.js +374 -0
- package/dist/core/FeatureDefinitions.js.map +1 -0
- package/dist/core/FeatureRegistry.d.ts +337 -0
- package/dist/core/FeatureRegistry.d.ts.map +1 -0
- package/dist/core/FeatureRegistry.js +863 -0
- package/dist/core/FeatureRegistry.js.map +1 -0
- package/dist/core/FeedbackManager.d.ts +69 -0
- package/dist/core/FeedbackManager.d.ts.map +1 -0
- package/dist/core/FeedbackManager.js +284 -0
- package/dist/core/FeedbackManager.js.map +1 -0
- package/dist/core/FileClassifier.d.ts +74 -0
- package/dist/core/FileClassifier.d.ts.map +1 -0
- package/dist/core/FileClassifier.js +377 -0
- package/dist/core/FileClassifier.js.map +1 -0
- package/dist/core/ForegroundRestartWatcher.d.ts +55 -0
- package/dist/core/ForegroundRestartWatcher.d.ts.map +1 -0
- package/dist/core/ForegroundRestartWatcher.js +116 -0
- package/dist/core/ForegroundRestartWatcher.js.map +1 -0
- package/dist/core/GitStateManager.d.ts +78 -0
- package/dist/core/GitStateManager.d.ts.map +1 -0
- package/dist/core/GitStateManager.js +366 -0
- package/dist/core/GitStateManager.js.map +1 -0
- package/dist/core/GitSync.d.ts +199 -0
- package/dist/core/GitSync.d.ts.map +1 -0
- package/dist/core/GitSync.js +955 -0
- package/dist/core/GitSync.js.map +1 -0
- package/dist/core/GlobalInstallCleanup.d.ts +23 -0
- package/dist/core/GlobalInstallCleanup.d.ts.map +1 -0
- package/dist/core/GlobalInstallCleanup.js +130 -0
- package/dist/core/GlobalInstallCleanup.js.map +1 -0
- package/dist/core/GlobalSecretStore.d.ts +112 -0
- package/dist/core/GlobalSecretStore.d.ts.map +1 -0
- package/dist/core/GlobalSecretStore.js +396 -0
- package/dist/core/GlobalSecretStore.js.map +1 -0
- package/dist/core/HandoffManager.d.ts +163 -0
- package/dist/core/HandoffManager.d.ts.map +1 -0
- package/dist/core/HandoffManager.js +370 -0
- package/dist/core/HandoffManager.js.map +1 -0
- package/dist/core/HeartbeatManager.d.ts +120 -0
- package/dist/core/HeartbeatManager.d.ts.map +1 -0
- package/dist/core/HeartbeatManager.js +240 -0
- package/dist/core/HeartbeatManager.js.map +1 -0
- package/dist/core/InputGuard.d.ts +98 -0
- package/dist/core/InputGuard.d.ts.map +1 -0
- package/dist/core/InputGuard.js +316 -0
- package/dist/core/InputGuard.js.map +1 -0
- package/dist/core/IntentDriftDetector.d.ts +100 -0
- package/dist/core/IntentDriftDetector.d.ts.map +1 -0
- package/dist/core/IntentDriftDetector.js +325 -0
- package/dist/core/IntentDriftDetector.js.map +1 -0
- package/dist/core/JobReflector.d.ts +81 -0
- package/dist/core/JobReflector.d.ts.map +1 -0
- package/dist/core/JobReflector.js +244 -0
- package/dist/core/JobReflector.js.map +1 -0
- package/dist/core/LLMConflictResolver.d.ts +132 -0
- package/dist/core/LLMConflictResolver.d.ts.map +1 -0
- package/dist/core/LLMConflictResolver.js +372 -0
- package/dist/core/LLMConflictResolver.js.map +1 -0
- package/dist/core/LedgerAuth.d.ts +99 -0
- package/dist/core/LedgerAuth.d.ts.map +1 -0
- package/dist/core/LedgerAuth.js +215 -0
- package/dist/core/LedgerAuth.js.map +1 -0
- package/dist/core/MachineIdentity.d.ts +196 -0
- package/dist/core/MachineIdentity.d.ts.map +1 -0
- package/dist/core/MachineIdentity.js +476 -0
- package/dist/core/MachineIdentity.js.map +1 -0
- package/dist/core/MessageSentinel.d.ts +142 -0
- package/dist/core/MessageSentinel.d.ts.map +1 -0
- package/dist/core/MessageSentinel.js +426 -0
- package/dist/core/MessageSentinel.js.map +1 -0
- package/dist/core/MigrationProvenance.d.ts +62 -0
- package/dist/core/MigrationProvenance.d.ts.map +1 -0
- package/dist/core/MigrationProvenance.js +183 -0
- package/dist/core/MigrationProvenance.js.map +1 -0
- package/dist/core/MultiMachineCoordinator.d.ts +106 -0
- package/dist/core/MultiMachineCoordinator.d.ts.map +1 -0
- package/dist/core/MultiMachineCoordinator.js +311 -0
- package/dist/core/MultiMachineCoordinator.js.map +1 -0
- package/dist/core/NonceStore.d.ts +72 -0
- package/dist/core/NonceStore.d.ts.map +1 -0
- package/dist/core/NonceStore.js +163 -0
- package/dist/core/NonceStore.js.map +1 -0
- package/dist/core/OrgIntentManager.d.ts +58 -0
- package/dist/core/OrgIntentManager.d.ts.map +1 -0
- package/dist/core/OrgIntentManager.js +250 -0
- package/dist/core/OrgIntentManager.js.map +1 -0
- package/dist/core/OverlapGuard.d.ts +112 -0
- package/dist/core/OverlapGuard.d.ts.map +1 -0
- package/dist/core/OverlapGuard.js +241 -0
- package/dist/core/OverlapGuard.js.map +1 -0
- package/dist/core/PairingProtocol.d.ts +129 -0
- package/dist/core/PairingProtocol.d.ts.map +1 -0
- package/dist/core/PairingProtocol.js +265 -0
- package/dist/core/PairingProtocol.js.map +1 -0
- package/dist/core/PatternAnalyzer.d.ts +128 -0
- package/dist/core/PatternAnalyzer.d.ts.map +1 -0
- package/dist/core/PatternAnalyzer.js +388 -0
- package/dist/core/PatternAnalyzer.js.map +1 -0
- package/dist/core/PlatformActivityRegistry.d.ts +163 -0
- package/dist/core/PlatformActivityRegistry.d.ts.map +1 -0
- package/dist/core/PlatformActivityRegistry.js +307 -0
- package/dist/core/PlatformActivityRegistry.js.map +1 -0
- package/dist/core/PolicyEnforcementLayer.d.ts +63 -0
- package/dist/core/PolicyEnforcementLayer.d.ts.map +1 -0
- package/dist/core/PolicyEnforcementLayer.js +250 -0
- package/dist/core/PolicyEnforcementLayer.js.map +1 -0
- package/dist/core/PortRegistry.d.ts +9 -0
- package/dist/core/PortRegistry.d.ts.map +1 -0
- package/dist/core/PortRegistry.js +8 -0
- package/dist/core/PortRegistry.js.map +1 -0
- package/dist/core/PostUpdateMigrator.d.ts +170 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -0
- package/dist/core/PostUpdateMigrator.js +3674 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -0
- package/dist/core/Prerequisites.d.ts +37 -0
- package/dist/core/Prerequisites.d.ts.map +1 -0
- package/dist/core/Prerequisites.js +272 -0
- package/dist/core/Prerequisites.js.map +1 -0
- package/dist/core/ProcessIntegrity.d.ts +90 -0
- package/dist/core/ProcessIntegrity.d.ts.map +1 -0
- package/dist/core/ProcessIntegrity.js +119 -0
- package/dist/core/ProcessIntegrity.js.map +1 -0
- package/dist/core/ProjectMapper.d.ts +97 -0
- package/dist/core/ProjectMapper.d.ts.map +1 -0
- package/dist/core/ProjectMapper.js +370 -0
- package/dist/core/ProjectMapper.js.map +1 -0
- package/dist/core/PromptGuard.d.ts +121 -0
- package/dist/core/PromptGuard.d.ts.map +1 -0
- package/dist/core/PromptGuard.js +259 -0
- package/dist/core/PromptGuard.js.map +1 -0
- package/dist/core/RecipientResolver.d.ts +54 -0
- package/dist/core/RecipientResolver.d.ts.map +1 -0
- package/dist/core/RecipientResolver.js +143 -0
- package/dist/core/RecipientResolver.js.map +1 -0
- package/dist/core/ReflectionConsolidator.d.ts +73 -0
- package/dist/core/ReflectionConsolidator.d.ts.map +1 -0
- package/dist/core/ReflectionConsolidator.js +202 -0
- package/dist/core/ReflectionConsolidator.js.map +1 -0
- package/dist/core/RelationshipManager.d.ts +146 -0
- package/dist/core/RelationshipManager.d.ts.map +1 -0
- package/dist/core/RelationshipManager.js +736 -0
- package/dist/core/RelationshipManager.js.map +1 -0
- package/dist/core/RelevanceFilter.d.ts +61 -0
- package/dist/core/RelevanceFilter.d.ts.map +1 -0
- package/dist/core/RelevanceFilter.js +160 -0
- package/dist/core/RelevanceFilter.js.map +1 -0
- package/dist/core/ResearchRateLimiter.d.ts +76 -0
- package/dist/core/ResearchRateLimiter.d.ts.map +1 -0
- package/dist/core/ResearchRateLimiter.js +168 -0
- package/dist/core/ResearchRateLimiter.js.map +1 -0
- package/dist/core/ResumeValidator.d.ts +58 -0
- package/dist/core/ResumeValidator.d.ts.map +1 -0
- package/dist/core/ResumeValidator.js +195 -0
- package/dist/core/ResumeValidator.js.map +1 -0
- package/dist/core/ScopeCoherenceTracker.d.ts +87 -0
- package/dist/core/ScopeCoherenceTracker.d.ts.map +1 -0
- package/dist/core/ScopeCoherenceTracker.js +226 -0
- package/dist/core/ScopeCoherenceTracker.js.map +1 -0
- package/dist/core/ScopeVerifier.d.ts +122 -0
- package/dist/core/ScopeVerifier.d.ts.map +1 -0
- package/dist/core/ScopeVerifier.js +350 -0
- package/dist/core/ScopeVerifier.js.map +1 -0
- package/dist/core/SecretManager.d.ts +120 -0
- package/dist/core/SecretManager.d.ts.map +1 -0
- package/dist/core/SecretManager.js +324 -0
- package/dist/core/SecretManager.js.map +1 -0
- package/dist/core/SecretMigrator.d.ts +39 -0
- package/dist/core/SecretMigrator.d.ts.map +1 -0
- package/dist/core/SecretMigrator.js +182 -0
- package/dist/core/SecretMigrator.js.map +1 -0
- package/dist/core/SecretRedactor.d.ts +121 -0
- package/dist/core/SecretRedactor.d.ts.map +1 -0
- package/dist/core/SecretRedactor.js +309 -0
- package/dist/core/SecretRedactor.js.map +1 -0
- package/dist/core/SecretStore.d.ts +104 -0
- package/dist/core/SecretStore.d.ts.map +1 -0
- package/dist/core/SecretStore.js +405 -0
- package/dist/core/SecretStore.js.map +1 -0
- package/dist/core/SecurityLog.d.ts +58 -0
- package/dist/core/SecurityLog.d.ts.map +1 -0
- package/dist/core/SecurityLog.js +123 -0
- package/dist/core/SecurityLog.js.map +1 -0
- package/dist/core/SendGateway.d.ts +77 -0
- package/dist/core/SendGateway.d.ts.map +1 -0
- package/dist/core/SendGateway.js +181 -0
- package/dist/core/SendGateway.js.map +1 -0
- package/dist/core/SessionManager.d.ts +304 -0
- package/dist/core/SessionManager.d.ts.map +1 -0
- package/dist/core/SessionManager.js +1402 -0
- package/dist/core/SessionManager.js.map +1 -0
- package/dist/core/SleepWakeDetector.d.ts +37 -0
- package/dist/core/SleepWakeDetector.d.ts.map +1 -0
- package/dist/core/SleepWakeDetector.js +59 -0
- package/dist/core/SleepWakeDetector.js.map +1 -0
- package/dist/core/SoulManager.d.ts +107 -0
- package/dist/core/SoulManager.d.ts.map +1 -0
- package/dist/core/SoulManager.js +574 -0
- package/dist/core/SoulManager.js.map +1 -0
- package/dist/core/StaleProcessGuard.d.ts +113 -0
- package/dist/core/StaleProcessGuard.d.ts.map +1 -0
- package/dist/core/StaleProcessGuard.js +134 -0
- package/dist/core/StaleProcessGuard.js.map +1 -0
- package/dist/core/StateManager.d.ts +56 -0
- package/dist/core/StateManager.d.ts.map +1 -0
- package/dist/core/StateManager.js +266 -0
- package/dist/core/StateManager.js.map +1 -0
- package/dist/core/StateWriteAuthority.d.ts +101 -0
- package/dist/core/StateWriteAuthority.d.ts.map +1 -0
- package/dist/core/StateWriteAuthority.js +169 -0
- package/dist/core/StateWriteAuthority.js.map +1 -0
- package/dist/core/SurfacingTemplates.d.ts +63 -0
- package/dist/core/SurfacingTemplates.d.ts.map +1 -0
- package/dist/core/SurfacingTemplates.js +138 -0
- package/dist/core/SurfacingTemplates.js.map +1 -0
- package/dist/core/SyncOrchestrator.d.ts +308 -0
- package/dist/core/SyncOrchestrator.d.ts.map +1 -0
- package/dist/core/SyncOrchestrator.js +925 -0
- package/dist/core/SyncOrchestrator.js.map +1 -0
- package/dist/core/TemporalCoherenceChecker.d.ts +140 -0
- package/dist/core/TemporalCoherenceChecker.d.ts.map +1 -0
- package/dist/core/TemporalCoherenceChecker.js +375 -0
- package/dist/core/TemporalCoherenceChecker.js.map +1 -0
- package/dist/core/TopicClassifier.d.ts +54 -0
- package/dist/core/TopicClassifier.d.ts.map +1 -0
- package/dist/core/TopicClassifier.js +144 -0
- package/dist/core/TopicClassifier.js.map +1 -0
- package/dist/core/TopicResumeMap.d.ts +76 -0
- package/dist/core/TopicResumeMap.d.ts.map +1 -0
- package/dist/core/TopicResumeMap.js +252 -0
- package/dist/core/TopicResumeMap.js.map +1 -0
- package/dist/core/TrustElevationTracker.d.ts +178 -0
- package/dist/core/TrustElevationTracker.d.ts.map +1 -0
- package/dist/core/TrustElevationTracker.js +343 -0
- package/dist/core/TrustElevationTracker.js.map +1 -0
- package/dist/core/TrustRecovery.d.ts +109 -0
- package/dist/core/TrustRecovery.d.ts.map +1 -0
- package/dist/core/TrustRecovery.js +190 -0
- package/dist/core/TrustRecovery.js.map +1 -0
- package/dist/core/UpdateChecker.d.ts +108 -0
- package/dist/core/UpdateChecker.d.ts.map +1 -0
- package/dist/core/UpdateChecker.js +593 -0
- package/dist/core/UpdateChecker.js.map +1 -0
- package/dist/core/UpdateGate.d.ts +102 -0
- package/dist/core/UpdateGate.d.ts.map +1 -0
- package/dist/core/UpdateGate.js +149 -0
- package/dist/core/UpdateGate.js.map +1 -0
- package/dist/core/UpgradeGuideProcessor.d.ts +105 -0
- package/dist/core/UpgradeGuideProcessor.d.ts.map +1 -0
- package/dist/core/UpgradeGuideProcessor.js +278 -0
- package/dist/core/UpgradeGuideProcessor.js.map +1 -0
- package/dist/core/UpgradeNotifyManager.d.ts +98 -0
- package/dist/core/UpgradeNotifyManager.d.ts.map +1 -0
- package/dist/core/UpgradeNotifyManager.js +205 -0
- package/dist/core/UpgradeNotifyManager.js.map +1 -0
- package/dist/core/WorkLedger.d.ts +144 -0
- package/dist/core/WorkLedger.d.ts.map +1 -0
- package/dist/core/WorkLedger.js +246 -0
- package/dist/core/WorkLedger.js.map +1 -0
- package/dist/core/models.d.ts +70 -0
- package/dist/core/models.d.ts.map +1 -0
- package/dist/core/models.js +110 -0
- package/dist/core/models.js.map +1 -0
- package/dist/core/reviewers/capability-accuracy.d.ts +13 -0
- package/dist/core/reviewers/capability-accuracy.d.ts.map +1 -0
- package/dist/core/reviewers/capability-accuracy.js +38 -0
- package/dist/core/reviewers/capability-accuracy.js.map +1 -0
- package/dist/core/reviewers/claim-provenance.d.ts +14 -0
- package/dist/core/reviewers/claim-provenance.d.ts.map +1 -0
- package/dist/core/reviewers/claim-provenance.js +50 -0
- package/dist/core/reviewers/claim-provenance.js.map +1 -0
- package/dist/core/reviewers/context-completeness.d.ts +13 -0
- package/dist/core/reviewers/context-completeness.d.ts.map +1 -0
- package/dist/core/reviewers/context-completeness.js +43 -0
- package/dist/core/reviewers/context-completeness.js.map +1 -0
- package/dist/core/reviewers/conversational-tone.d.ts +13 -0
- package/dist/core/reviewers/conversational-tone.d.ts.map +1 -0
- package/dist/core/reviewers/conversational-tone.js +55 -0
- package/dist/core/reviewers/conversational-tone.js.map +1 -0
- package/dist/core/reviewers/escalation-resolution.d.ts +56 -0
- package/dist/core/reviewers/escalation-resolution.d.ts.map +1 -0
- package/dist/core/reviewers/escalation-resolution.js +239 -0
- package/dist/core/reviewers/escalation-resolution.js.map +1 -0
- package/dist/core/reviewers/gate-reviewer.d.ts +26 -0
- package/dist/core/reviewers/gate-reviewer.d.ts.map +1 -0
- package/dist/core/reviewers/gate-reviewer.js +130 -0
- package/dist/core/reviewers/gate-reviewer.js.map +1 -0
- package/dist/core/reviewers/information-leakage.d.ts +21 -0
- package/dist/core/reviewers/information-leakage.d.ts.map +1 -0
- package/dist/core/reviewers/information-leakage.js +72 -0
- package/dist/core/reviewers/information-leakage.js.map +1 -0
- package/dist/core/reviewers/settling-detection.d.ts +13 -0
- package/dist/core/reviewers/settling-detection.d.ts.map +1 -0
- package/dist/core/reviewers/settling-detection.js +48 -0
- package/dist/core/reviewers/settling-detection.js.map +1 -0
- package/dist/core/reviewers/url-validity.d.ts +18 -0
- package/dist/core/reviewers/url-validity.d.ts.map +1 -0
- package/dist/core/reviewers/url-validity.js +60 -0
- package/dist/core/reviewers/url-validity.js.map +1 -0
- package/dist/core/reviewers/value-alignment.d.ts +14 -0
- package/dist/core/reviewers/value-alignment.d.ts.map +1 -0
- package/dist/core/reviewers/value-alignment.js +71 -0
- package/dist/core/reviewers/value-alignment.js.map +1 -0
- package/dist/core/types.d.ts +2159 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +20 -0
- package/dist/core/types.js.map +1 -0
- package/dist/data/http-hook-templates.d.ts +53 -0
- package/dist/data/http-hook-templates.d.ts.map +1 -0
- package/dist/data/http-hook-templates.js +64 -0
- package/dist/data/http-hook-templates.js.map +1 -0
- package/dist/index.d.ts +263 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +164 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge/CoverageAuditor.d.ts +58 -0
- package/dist/knowledge/CoverageAuditor.d.ts.map +1 -0
- package/dist/knowledge/CoverageAuditor.js +153 -0
- package/dist/knowledge/CoverageAuditor.js.map +1 -0
- package/dist/knowledge/IntegrityManager.d.ts +46 -0
- package/dist/knowledge/IntegrityManager.d.ts.map +1 -0
- package/dist/knowledge/IntegrityManager.js +101 -0
- package/dist/knowledge/IntegrityManager.js.map +1 -0
- package/dist/knowledge/KnowledgeManager.d.ts +85 -0
- package/dist/knowledge/KnowledgeManager.d.ts.map +1 -0
- package/dist/knowledge/KnowledgeManager.js +194 -0
- package/dist/knowledge/KnowledgeManager.js.map +1 -0
- package/dist/knowledge/ProbeRegistry.d.ts +54 -0
- package/dist/knowledge/ProbeRegistry.d.ts.map +1 -0
- package/dist/knowledge/ProbeRegistry.js +119 -0
- package/dist/knowledge/ProbeRegistry.js.map +1 -0
- package/dist/knowledge/SelfKnowledgeTree.d.ts +108 -0
- package/dist/knowledge/SelfKnowledgeTree.d.ts.map +1 -0
- package/dist/knowledge/SelfKnowledgeTree.js +560 -0
- package/dist/knowledge/SelfKnowledgeTree.js.map +1 -0
- package/dist/knowledge/TreeGenerator.d.ts +57 -0
- package/dist/knowledge/TreeGenerator.d.ts.map +1 -0
- package/dist/knowledge/TreeGenerator.js +527 -0
- package/dist/knowledge/TreeGenerator.js.map +1 -0
- package/dist/knowledge/TreeSynthesis.d.ts +24 -0
- package/dist/knowledge/TreeSynthesis.d.ts.map +1 -0
- package/dist/knowledge/TreeSynthesis.js +61 -0
- package/dist/knowledge/TreeSynthesis.js.map +1 -0
- package/dist/knowledge/TreeTraversal.d.ts +93 -0
- package/dist/knowledge/TreeTraversal.d.ts.map +1 -0
- package/dist/knowledge/TreeTraversal.js +359 -0
- package/dist/knowledge/TreeTraversal.js.map +1 -0
- package/dist/knowledge/TreeTriage.d.ts +80 -0
- package/dist/knowledge/TreeTriage.d.ts.map +1 -0
- package/dist/knowledge/TreeTriage.js +413 -0
- package/dist/knowledge/TreeTriage.js.map +1 -0
- package/dist/knowledge/types.d.ts +183 -0
- package/dist/knowledge/types.d.ts.map +1 -0
- package/dist/knowledge/types.js +28 -0
- package/dist/knowledge/types.js.map +1 -0
- package/dist/lifeline/MessageQueue.d.ts +42 -0
- package/dist/lifeline/MessageQueue.d.ts.map +1 -0
- package/dist/lifeline/MessageQueue.js +63 -0
- package/dist/lifeline/MessageQueue.js.map +1 -0
- package/dist/lifeline/ServerSupervisor.d.ts +203 -0
- package/dist/lifeline/ServerSupervisor.d.ts.map +1 -0
- package/dist/lifeline/ServerSupervisor.js +1103 -0
- package/dist/lifeline/ServerSupervisor.js.map +1 -0
- package/dist/lifeline/SlackLifeline.d.ts +43 -0
- package/dist/lifeline/SlackLifeline.d.ts.map +1 -0
- package/dist/lifeline/SlackLifeline.js +227 -0
- package/dist/lifeline/SlackLifeline.js.map +1 -0
- package/dist/lifeline/TelegramLifeline.d.ts +180 -0
- package/dist/lifeline/TelegramLifeline.d.ts.map +1 -0
- package/dist/lifeline/TelegramLifeline.js +1533 -0
- package/dist/lifeline/TelegramLifeline.js.map +1 -0
- package/dist/memory/ActivityPartitioner.d.ts +67 -0
- package/dist/memory/ActivityPartitioner.d.ts.map +1 -0
- package/dist/memory/ActivityPartitioner.js +193 -0
- package/dist/memory/ActivityPartitioner.js.map +1 -0
- package/dist/memory/Chunker.d.ts +39 -0
- package/dist/memory/Chunker.d.ts.map +1 -0
- package/dist/memory/Chunker.js +154 -0
- package/dist/memory/Chunker.js.map +1 -0
- package/dist/memory/EmbeddingProvider.d.ts +82 -0
- package/dist/memory/EmbeddingProvider.d.ts.map +1 -0
- package/dist/memory/EmbeddingProvider.js +168 -0
- package/dist/memory/EmbeddingProvider.js.map +1 -0
- package/dist/memory/EpisodicMemory.d.ts +141 -0
- package/dist/memory/EpisodicMemory.d.ts.map +1 -0
- package/dist/memory/EpisodicMemory.js +303 -0
- package/dist/memory/EpisodicMemory.js.map +1 -0
- package/dist/memory/MemoryExporter.d.ts +82 -0
- package/dist/memory/MemoryExporter.d.ts.map +1 -0
- package/dist/memory/MemoryExporter.js +233 -0
- package/dist/memory/MemoryExporter.js.map +1 -0
- package/dist/memory/MemoryIndex.d.ts +76 -0
- package/dist/memory/MemoryIndex.d.ts.map +1 -0
- package/dist/memory/MemoryIndex.js +413 -0
- package/dist/memory/MemoryIndex.js.map +1 -0
- package/dist/memory/MemoryMigrator.d.ts +103 -0
- package/dist/memory/MemoryMigrator.d.ts.map +1 -0
- package/dist/memory/MemoryMigrator.js +510 -0
- package/dist/memory/MemoryMigrator.js.map +1 -0
- package/dist/memory/SemanticMemory.d.ts +255 -0
- package/dist/memory/SemanticMemory.d.ts.map +1 -0
- package/dist/memory/SemanticMemory.js +1130 -0
- package/dist/memory/SemanticMemory.js.map +1 -0
- package/dist/memory/TopicMemory.d.ts +227 -0
- package/dist/memory/TopicMemory.d.ts.map +1 -0
- package/dist/memory/TopicMemory.js +731 -0
- package/dist/memory/TopicMemory.js.map +1 -0
- package/dist/memory/TopicSummarizer.d.ts +69 -0
- package/dist/memory/TopicSummarizer.d.ts.map +1 -0
- package/dist/memory/TopicSummarizer.js +163 -0
- package/dist/memory/TopicSummarizer.js.map +1 -0
- package/dist/memory/VectorSearch.d.ts +80 -0
- package/dist/memory/VectorSearch.d.ts.map +1 -0
- package/dist/memory/VectorSearch.js +148 -0
- package/dist/memory/VectorSearch.js.map +1 -0
- package/dist/memory/WorkingMemoryAssembler.d.ts +122 -0
- package/dist/memory/WorkingMemoryAssembler.d.ts.map +1 -0
- package/dist/memory/WorkingMemoryAssembler.js +406 -0
- package/dist/memory/WorkingMemoryAssembler.js.map +1 -0
- package/dist/messaging/AdapterRegistry.d.ts +27 -0
- package/dist/messaging/AdapterRegistry.d.ts.map +1 -0
- package/dist/messaging/AdapterRegistry.js +40 -0
- package/dist/messaging/AdapterRegistry.js.map +1 -0
- package/dist/messaging/AgentTokenManager.d.ts +86 -0
- package/dist/messaging/AgentTokenManager.d.ts.map +1 -0
- package/dist/messaging/AgentTokenManager.js +213 -0
- package/dist/messaging/AgentTokenManager.js.map +1 -0
- package/dist/messaging/DeliveryRetryManager.d.ts +47 -0
- package/dist/messaging/DeliveryRetryManager.d.ts.map +1 -0
- package/dist/messaging/DeliveryRetryManager.js +201 -0
- package/dist/messaging/DeliveryRetryManager.js.map +1 -0
- package/dist/messaging/DropPickup.d.ts +37 -0
- package/dist/messaging/DropPickup.d.ts.map +1 -0
- package/dist/messaging/DropPickup.js +120 -0
- package/dist/messaging/DropPickup.js.map +1 -0
- package/dist/messaging/GitSyncTransport.d.ts +120 -0
- package/dist/messaging/GitSyncTransport.d.ts.map +1 -0
- package/dist/messaging/GitSyncTransport.js +296 -0
- package/dist/messaging/GitSyncTransport.js.map +1 -0
- package/dist/messaging/MessageDelivery.d.ts +27 -0
- package/dist/messaging/MessageDelivery.d.ts.map +1 -0
- package/dist/messaging/MessageDelivery.js +90 -0
- package/dist/messaging/MessageDelivery.js.map +1 -0
- package/dist/messaging/MessageFormatter.d.ts +30 -0
- package/dist/messaging/MessageFormatter.d.ts.map +1 -0
- package/dist/messaging/MessageFormatter.js +97 -0
- package/dist/messaging/MessageFormatter.js.map +1 -0
- package/dist/messaging/MessageRouter.d.ts +157 -0
- package/dist/messaging/MessageRouter.d.ts.map +1 -0
- package/dist/messaging/MessageRouter.js +657 -0
- package/dist/messaging/MessageRouter.js.map +1 -0
- package/dist/messaging/MessageStore.d.ts +52 -0
- package/dist/messaging/MessageStore.d.ts.map +1 -0
- package/dist/messaging/MessageStore.js +363 -0
- package/dist/messaging/MessageStore.js.map +1 -0
- package/dist/messaging/NotificationBatcher.d.ts +95 -0
- package/dist/messaging/NotificationBatcher.d.ts.map +1 -0
- package/dist/messaging/NotificationBatcher.js +253 -0
- package/dist/messaging/NotificationBatcher.js.map +1 -0
- package/dist/messaging/SessionSummarySentinel.d.ts +104 -0
- package/dist/messaging/SessionSummarySentinel.d.ts.map +1 -0
- package/dist/messaging/SessionSummarySentinel.js +386 -0
- package/dist/messaging/SessionSummarySentinel.js.map +1 -0
- package/dist/messaging/SpawnRequestManager.d.ts +88 -0
- package/dist/messaging/SpawnRequestManager.d.ts.map +1 -0
- package/dist/messaging/SpawnRequestManager.js +159 -0
- package/dist/messaging/SpawnRequestManager.js.map +1 -0
- package/dist/messaging/TelegramAdapter.d.ts +636 -0
- package/dist/messaging/TelegramAdapter.d.ts.map +1 -0
- package/dist/messaging/TelegramAdapter.js +3434 -0
- package/dist/messaging/TelegramAdapter.js.map +1 -0
- package/dist/messaging/TopicContentValidator.d.ts +81 -0
- package/dist/messaging/TopicContentValidator.d.ts.map +1 -0
- package/dist/messaging/TopicContentValidator.js +113 -0
- package/dist/messaging/TopicContentValidator.js.map +1 -0
- package/dist/messaging/WhatsAppAdapter.d.ts +224 -0
- package/dist/messaging/WhatsAppAdapter.d.ts.map +1 -0
- package/dist/messaging/WhatsAppAdapter.js +736 -0
- package/dist/messaging/WhatsAppAdapter.js.map +1 -0
- package/dist/messaging/backends/BaileysBackend.d.ts +74 -0
- package/dist/messaging/backends/BaileysBackend.d.ts.map +1 -0
- package/dist/messaging/backends/BaileysBackend.js +481 -0
- package/dist/messaging/backends/BaileysBackend.js.map +1 -0
- package/dist/messaging/backends/BusinessApiBackend.d.ts +173 -0
- package/dist/messaging/backends/BusinessApiBackend.d.ts.map +1 -0
- package/dist/messaging/backends/BusinessApiBackend.js +269 -0
- package/dist/messaging/backends/BusinessApiBackend.js.map +1 -0
- package/dist/messaging/backends/WhatsAppWebhookRoutes.d.ts +26 -0
- package/dist/messaging/backends/WhatsAppWebhookRoutes.d.ts.map +1 -0
- package/dist/messaging/backends/WhatsAppWebhookRoutes.js +50 -0
- package/dist/messaging/backends/WhatsAppWebhookRoutes.js.map +1 -0
- package/dist/messaging/shared/AuthGate.d.ts +102 -0
- package/dist/messaging/shared/AuthGate.d.ts.map +1 -0
- package/dist/messaging/shared/AuthGate.js +159 -0
- package/dist/messaging/shared/AuthGate.js.map +1 -0
- package/dist/messaging/shared/CommandRouter.d.ts +84 -0
- package/dist/messaging/shared/CommandRouter.d.ts.map +1 -0
- package/dist/messaging/shared/CommandRouter.js +145 -0
- package/dist/messaging/shared/CommandRouter.js.map +1 -0
- package/dist/messaging/shared/CrossPlatformAlerts.d.ts +67 -0
- package/dist/messaging/shared/CrossPlatformAlerts.d.ts.map +1 -0
- package/dist/messaging/shared/CrossPlatformAlerts.js +134 -0
- package/dist/messaging/shared/CrossPlatformAlerts.js.map +1 -0
- package/dist/messaging/shared/EncryptedAuthStore.d.ts +51 -0
- package/dist/messaging/shared/EncryptedAuthStore.d.ts.map +1 -0
- package/dist/messaging/shared/EncryptedAuthStore.js +194 -0
- package/dist/messaging/shared/EncryptedAuthStore.js.map +1 -0
- package/dist/messaging/shared/FeatureFlags.d.ts +21 -0
- package/dist/messaging/shared/FeatureFlags.d.ts.map +1 -0
- package/dist/messaging/shared/FeatureFlags.js +21 -0
- package/dist/messaging/shared/FeatureFlags.js.map +1 -0
- package/dist/messaging/shared/MessageBridge.d.ts +70 -0
- package/dist/messaging/shared/MessageBridge.d.ts.map +1 -0
- package/dist/messaging/shared/MessageBridge.js +178 -0
- package/dist/messaging/shared/MessageBridge.js.map +1 -0
- package/dist/messaging/shared/MessageLogger.d.ts +94 -0
- package/dist/messaging/shared/MessageLogger.d.ts.map +1 -0
- package/dist/messaging/shared/MessageLogger.js +173 -0
- package/dist/messaging/shared/MessageLogger.js.map +1 -0
- package/dist/messaging/shared/MessagingEventBus.d.ts +149 -0
- package/dist/messaging/shared/MessagingEventBus.d.ts.map +1 -0
- package/dist/messaging/shared/MessagingEventBus.js +111 -0
- package/dist/messaging/shared/MessagingEventBus.js.map +1 -0
- package/dist/messaging/shared/PhoneUtils.d.ts +44 -0
- package/dist/messaging/shared/PhoneUtils.d.ts.map +1 -0
- package/dist/messaging/shared/PhoneUtils.js +110 -0
- package/dist/messaging/shared/PhoneUtils.js.map +1 -0
- package/dist/messaging/shared/PrivacyConsent.d.ts +61 -0
- package/dist/messaging/shared/PrivacyConsent.d.ts.map +1 -0
- package/dist/messaging/shared/PrivacyConsent.js +132 -0
- package/dist/messaging/shared/PrivacyConsent.js.map +1 -0
- package/dist/messaging/shared/SessionChannelRegistry.d.ts +48 -0
- package/dist/messaging/shared/SessionChannelRegistry.d.ts.map +1 -0
- package/dist/messaging/shared/SessionChannelRegistry.js +144 -0
- package/dist/messaging/shared/SessionChannelRegistry.js.map +1 -0
- package/dist/messaging/shared/SmartChunker.d.ts +16 -0
- package/dist/messaging/shared/SmartChunker.d.ts.map +1 -0
- package/dist/messaging/shared/SmartChunker.js +100 -0
- package/dist/messaging/shared/SmartChunker.js.map +1 -0
- package/dist/messaging/shared/StallDetector.d.ts +85 -0
- package/dist/messaging/shared/StallDetector.d.ts.map +1 -0
- package/dist/messaging/shared/StallDetector.js +225 -0
- package/dist/messaging/shared/StallDetector.js.map +1 -0
- package/dist/messaging/shared/index.d.ts +22 -0
- package/dist/messaging/shared/index.d.ts.map +1 -0
- package/dist/messaging/shared/index.js +13 -0
- package/dist/messaging/shared/index.js.map +1 -0
- package/dist/messaging/slack/ChannelManager.d.ts +36 -0
- package/dist/messaging/slack/ChannelManager.d.ts.map +1 -0
- package/dist/messaging/slack/ChannelManager.js +100 -0
- package/dist/messaging/slack/ChannelManager.js.map +1 -0
- package/dist/messaging/slack/FileHandler.d.ts +30 -0
- package/dist/messaging/slack/FileHandler.d.ts.map +1 -0
- package/dist/messaging/slack/FileHandler.js +87 -0
- package/dist/messaging/slack/FileHandler.js.map +1 -0
- package/dist/messaging/slack/RingBuffer.d.ts +22 -0
- package/dist/messaging/slack/RingBuffer.d.ts.map +1 -0
- package/dist/messaging/slack/RingBuffer.js +48 -0
- package/dist/messaging/slack/RingBuffer.js.map +1 -0
- package/dist/messaging/slack/SlackAdapter.d.ts +283 -0
- package/dist/messaging/slack/SlackAdapter.d.ts.map +1 -0
- package/dist/messaging/slack/SlackAdapter.js +1524 -0
- package/dist/messaging/slack/SlackAdapter.js.map +1 -0
- package/dist/messaging/slack/SlackApiClient.d.ts +51 -0
- package/dist/messaging/slack/SlackApiClient.d.ts.map +1 -0
- package/dist/messaging/slack/SlackApiClient.js +94 -0
- package/dist/messaging/slack/SlackApiClient.js.map +1 -0
- package/dist/messaging/slack/SocketModeClient.d.ts +44 -0
- package/dist/messaging/slack/SocketModeClient.d.ts.map +1 -0
- package/dist/messaging/slack/SocketModeClient.js +209 -0
- package/dist/messaging/slack/SocketModeClient.js.map +1 -0
- package/dist/messaging/slack/index.d.ts +12 -0
- package/dist/messaging/slack/index.d.ts.map +1 -0
- package/dist/messaging/slack/index.js +15 -0
- package/dist/messaging/slack/index.js.map +1 -0
- package/dist/messaging/slack/sanitize.d.ts +39 -0
- package/dist/messaging/slack/sanitize.d.ts.map +1 -0
- package/dist/messaging/slack/sanitize.js +71 -0
- package/dist/messaging/slack/sanitize.js.map +1 -0
- package/dist/messaging/slack/types.d.ts +186 -0
- package/dist/messaging/slack/types.d.ts.map +1 -0
- package/dist/messaging/slack/types.js +54 -0
- package/dist/messaging/slack/types.js.map +1 -0
- package/dist/messaging/types.d.ts +400 -0
- package/dist/messaging/types.d.ts.map +1 -0
- package/dist/messaging/types.js +89 -0
- package/dist/messaging/types.js.map +1 -0
- package/dist/monitoring/AccountSwitcher.d.ts +61 -0
- package/dist/monitoring/AccountSwitcher.d.ts.map +1 -0
- package/dist/monitoring/AccountSwitcher.js +196 -0
- package/dist/monitoring/AccountSwitcher.js.map +1 -0
- package/dist/monitoring/CoherenceMonitor.d.ts +133 -0
- package/dist/monitoring/CoherenceMonitor.d.ts.map +1 -0
- package/dist/monitoring/CoherenceMonitor.js +550 -0
- package/dist/monitoring/CoherenceMonitor.js.map +1 -0
- package/dist/monitoring/CommitmentSentinel.d.ts +57 -0
- package/dist/monitoring/CommitmentSentinel.d.ts.map +1 -0
- package/dist/monitoring/CommitmentSentinel.js +251 -0
- package/dist/monitoring/CommitmentSentinel.js.map +1 -0
- package/dist/monitoring/CommitmentTracker.d.ts +186 -0
- package/dist/monitoring/CommitmentTracker.d.ts.map +1 -0
- package/dist/monitoring/CommitmentTracker.js +522 -0
- package/dist/monitoring/CommitmentTracker.js.map +1 -0
- package/dist/monitoring/CredentialProvider.d.ts +84 -0
- package/dist/monitoring/CredentialProvider.d.ts.map +1 -0
- package/dist/monitoring/CredentialProvider.js +196 -0
- package/dist/monitoring/CredentialProvider.js.map +1 -0
- package/dist/monitoring/DegradationReporter.d.ts +123 -0
- package/dist/monitoring/DegradationReporter.d.ts.map +1 -0
- package/dist/monitoring/DegradationReporter.js +241 -0
- package/dist/monitoring/DegradationReporter.js.map +1 -0
- package/dist/monitoring/FeedbackAnomalyDetector.d.ts +51 -0
- package/dist/monitoring/FeedbackAnomalyDetector.d.ts.map +1 -0
- package/dist/monitoring/FeedbackAnomalyDetector.js +120 -0
- package/dist/monitoring/FeedbackAnomalyDetector.js.map +1 -0
- package/dist/monitoring/HealthChecker.d.ts +45 -0
- package/dist/monitoring/HealthChecker.d.ts.map +1 -0
- package/dist/monitoring/HealthChecker.js +219 -0
- package/dist/monitoring/HealthChecker.js.map +1 -0
- package/dist/monitoring/HomeostasisMonitor.d.ts +102 -0
- package/dist/monitoring/HomeostasisMonitor.d.ts.map +1 -0
- package/dist/monitoring/HomeostasisMonitor.js +185 -0
- package/dist/monitoring/HomeostasisMonitor.js.map +1 -0
- package/dist/monitoring/HookEventReceiver.d.ts +132 -0
- package/dist/monitoring/HookEventReceiver.d.ts.map +1 -0
- package/dist/monitoring/HookEventReceiver.js +209 -0
- package/dist/monitoring/HookEventReceiver.js.map +1 -0
- package/dist/monitoring/InputClassifier.d.ts +68 -0
- package/dist/monitoring/InputClassifier.d.ts.map +1 -0
- package/dist/monitoring/InputClassifier.js +243 -0
- package/dist/monitoring/InputClassifier.js.map +1 -0
- package/dist/monitoring/InstructionsVerifier.d.ts +76 -0
- package/dist/monitoring/InstructionsVerifier.d.ts.map +1 -0
- package/dist/monitoring/InstructionsVerifier.js +116 -0
- package/dist/monitoring/InstructionsVerifier.js.map +1 -0
- package/dist/monitoring/MemoryPressureMonitor.d.ts +107 -0
- package/dist/monitoring/MemoryPressureMonitor.d.ts.map +1 -0
- package/dist/monitoring/MemoryPressureMonitor.js +329 -0
- package/dist/monitoring/MemoryPressureMonitor.js.map +1 -0
- package/dist/monitoring/OrphanProcessReaper.d.ts +125 -0
- package/dist/monitoring/OrphanProcessReaper.d.ts.map +1 -0
- package/dist/monitoring/OrphanProcessReaper.js +476 -0
- package/dist/monitoring/OrphanProcessReaper.js.map +1 -0
- package/dist/monitoring/PresenceProxy.d.ts +167 -0
- package/dist/monitoring/PresenceProxy.d.ts.map +1 -0
- package/dist/monitoring/PresenceProxy.js +972 -0
- package/dist/monitoring/PresenceProxy.js.map +1 -0
- package/dist/monitoring/PromptGate.d.ts +91 -0
- package/dist/monitoring/PromptGate.d.ts.map +1 -0
- package/dist/monitoring/PromptGate.js +411 -0
- package/dist/monitoring/PromptGate.js.map +1 -0
- package/dist/monitoring/QuotaCollector.d.ts +267 -0
- package/dist/monitoring/QuotaCollector.d.ts.map +1 -0
- package/dist/monitoring/QuotaCollector.js +790 -0
- package/dist/monitoring/QuotaCollector.js.map +1 -0
- package/dist/monitoring/QuotaExhaustionDetector.d.ts +21 -0
- package/dist/monitoring/QuotaExhaustionDetector.d.ts.map +1 -0
- package/dist/monitoring/QuotaExhaustionDetector.js +136 -0
- package/dist/monitoring/QuotaExhaustionDetector.js.map +1 -0
- package/dist/monitoring/QuotaManager.d.ts +191 -0
- package/dist/monitoring/QuotaManager.d.ts.map +1 -0
- package/dist/monitoring/QuotaManager.js +575 -0
- package/dist/monitoring/QuotaManager.js.map +1 -0
- package/dist/monitoring/QuotaNotifier.d.ts +38 -0
- package/dist/monitoring/QuotaNotifier.d.ts.map +1 -0
- package/dist/monitoring/QuotaNotifier.js +144 -0
- package/dist/monitoring/QuotaNotifier.js.map +1 -0
- package/dist/monitoring/QuotaTracker.d.ts +92 -0
- package/dist/monitoring/QuotaTracker.d.ts.map +1 -0
- package/dist/monitoring/QuotaTracker.js +239 -0
- package/dist/monitoring/QuotaTracker.js.map +1 -0
- package/dist/monitoring/ReflectionMetrics.d.ts +97 -0
- package/dist/monitoring/ReflectionMetrics.d.ts.map +1 -0
- package/dist/monitoring/ReflectionMetrics.js +170 -0
- package/dist/monitoring/ReflectionMetrics.js.map +1 -0
- package/dist/monitoring/SessionActivitySentinel.d.ts +95 -0
- package/dist/monitoring/SessionActivitySentinel.d.ts.map +1 -0
- package/dist/monitoring/SessionActivitySentinel.js +391 -0
- package/dist/monitoring/SessionActivitySentinel.js.map +1 -0
- package/dist/monitoring/SessionCredentialManager.d.ts +56 -0
- package/dist/monitoring/SessionCredentialManager.d.ts.map +1 -0
- package/dist/monitoring/SessionCredentialManager.js +91 -0
- package/dist/monitoring/SessionCredentialManager.js.map +1 -0
- package/dist/monitoring/SessionMigrator.d.ts +234 -0
- package/dist/monitoring/SessionMigrator.d.ts.map +1 -0
- package/dist/monitoring/SessionMigrator.js +604 -0
- package/dist/monitoring/SessionMigrator.js.map +1 -0
- package/dist/monitoring/SessionMonitor.d.ts +102 -0
- package/dist/monitoring/SessionMonitor.d.ts.map +1 -0
- package/dist/monitoring/SessionMonitor.js +238 -0
- package/dist/monitoring/SessionMonitor.js.map +1 -0
- package/dist/monitoring/SessionRecovery.d.ts +129 -0
- package/dist/monitoring/SessionRecovery.d.ts.map +1 -0
- package/dist/monitoring/SessionRecovery.js +496 -0
- package/dist/monitoring/SessionRecovery.js.map +1 -0
- package/dist/monitoring/SessionWatchdog.d.ts +138 -0
- package/dist/monitoring/SessionWatchdog.d.ts.map +1 -0
- package/dist/monitoring/SessionWatchdog.js +549 -0
- package/dist/monitoring/SessionWatchdog.js.map +1 -0
- package/dist/monitoring/StallTriageNurse.d.ts +96 -0
- package/dist/monitoring/StallTriageNurse.d.ts.map +1 -0
- package/dist/monitoring/StallTriageNurse.js +711 -0
- package/dist/monitoring/StallTriageNurse.js.map +1 -0
- package/dist/monitoring/StallTriageNurse.types.d.ts +124 -0
- package/dist/monitoring/StallTriageNurse.types.d.ts.map +1 -0
- package/dist/monitoring/StallTriageNurse.types.js +5 -0
- package/dist/monitoring/StallTriageNurse.types.js.map +1 -0
- package/dist/monitoring/SubagentTracker.d.ts +86 -0
- package/dist/monitoring/SubagentTracker.d.ts.map +1 -0
- package/dist/monitoring/SubagentTracker.js +199 -0
- package/dist/monitoring/SubagentTracker.js.map +1 -0
- package/dist/monitoring/SystemReviewer.d.ts +243 -0
- package/dist/monitoring/SystemReviewer.d.ts.map +1 -0
- package/dist/monitoring/SystemReviewer.js +697 -0
- package/dist/monitoring/SystemReviewer.js.map +1 -0
- package/dist/monitoring/TelemetryAuth.d.ts +64 -0
- package/dist/monitoring/TelemetryAuth.d.ts.map +1 -0
- package/dist/monitoring/TelemetryAuth.js +141 -0
- package/dist/monitoring/TelemetryAuth.js.map +1 -0
- package/dist/monitoring/TelemetryCollector.d.ts +95 -0
- package/dist/monitoring/TelemetryCollector.d.ts.map +1 -0
- package/dist/monitoring/TelemetryCollector.js +326 -0
- package/dist/monitoring/TelemetryCollector.js.map +1 -0
- package/dist/monitoring/TelemetryHeartbeat.d.ts +160 -0
- package/dist/monitoring/TelemetryHeartbeat.d.ts.map +1 -0
- package/dist/monitoring/TelemetryHeartbeat.js +450 -0
- package/dist/monitoring/TelemetryHeartbeat.js.map +1 -0
- package/dist/monitoring/TriageOrchestrator.d.ts +217 -0
- package/dist/monitoring/TriageOrchestrator.d.ts.map +1 -0
- package/dist/monitoring/TriageOrchestrator.js +801 -0
- package/dist/monitoring/TriageOrchestrator.js.map +1 -0
- package/dist/monitoring/WorktreeMonitor.d.ts +124 -0
- package/dist/monitoring/WorktreeMonitor.d.ts.map +1 -0
- package/dist/monitoring/WorktreeMonitor.js +379 -0
- package/dist/monitoring/WorktreeMonitor.js.map +1 -0
- package/dist/monitoring/crash-detector.d.ts +50 -0
- package/dist/monitoring/crash-detector.d.ts.map +1 -0
- package/dist/monitoring/crash-detector.js +224 -0
- package/dist/monitoring/crash-detector.js.map +1 -0
- package/dist/monitoring/jsonl-truncator.d.ts +44 -0
- package/dist/monitoring/jsonl-truncator.d.ts.map +1 -0
- package/dist/monitoring/jsonl-truncator.js +224 -0
- package/dist/monitoring/jsonl-truncator.js.map +1 -0
- package/dist/monitoring/probes/LifelineProbe.d.ts +38 -0
- package/dist/monitoring/probes/LifelineProbe.d.ts.map +1 -0
- package/dist/monitoring/probes/LifelineProbe.js +285 -0
- package/dist/monitoring/probes/LifelineProbe.js.map +1 -0
- package/dist/monitoring/probes/MessagingProbe.d.ts +23 -0
- package/dist/monitoring/probes/MessagingProbe.d.ts.map +1 -0
- package/dist/monitoring/probes/MessagingProbe.js +214 -0
- package/dist/monitoring/probes/MessagingProbe.js.map +1 -0
- package/dist/monitoring/probes/PlatformProbe.d.ts +15 -0
- package/dist/monitoring/probes/PlatformProbe.d.ts.map +1 -0
- package/dist/monitoring/probes/PlatformProbe.js +222 -0
- package/dist/monitoring/probes/PlatformProbe.js.map +1 -0
- package/dist/monitoring/probes/SchedulerProbe.d.ts +33 -0
- package/dist/monitoring/probes/SchedulerProbe.d.ts.map +1 -0
- package/dist/monitoring/probes/SchedulerProbe.js +196 -0
- package/dist/monitoring/probes/SchedulerProbe.js.map +1 -0
- package/dist/monitoring/probes/SessionProbe.d.ts +28 -0
- package/dist/monitoring/probes/SessionProbe.d.ts.map +1 -0
- package/dist/monitoring/probes/SessionProbe.js +234 -0
- package/dist/monitoring/probes/SessionProbe.js.map +1 -0
- package/dist/monitoring/stall-detector.d.ts +34 -0
- package/dist/monitoring/stall-detector.d.ts.map +1 -0
- package/dist/monitoring/stall-detector.js +151 -0
- package/dist/monitoring/stall-detector.js.map +1 -0
- package/dist/paste/PasteManager.d.ts +154 -0
- package/dist/paste/PasteManager.d.ts.map +1 -0
- package/dist/paste/PasteManager.js +524 -0
- package/dist/paste/PasteManager.js.map +1 -0
- package/dist/paste/TruncationDetector.d.ts +51 -0
- package/dist/paste/TruncationDetector.d.ts.map +1 -0
- package/dist/paste/TruncationDetector.js +220 -0
- package/dist/paste/TruncationDetector.js.map +1 -0
- package/dist/privacy/OutputPrivacyRouter.d.ts +65 -0
- package/dist/privacy/OutputPrivacyRouter.d.ts.map +1 -0
- package/dist/privacy/OutputPrivacyRouter.js +156 -0
- package/dist/privacy/OutputPrivacyRouter.js.map +1 -0
- package/dist/publishing/PrivateViewer.d.ts +63 -0
- package/dist/publishing/PrivateViewer.d.ts.map +1 -0
- package/dist/publishing/PrivateViewer.js +398 -0
- package/dist/publishing/PrivateViewer.js.map +1 -0
- package/dist/publishing/TelegraphService.d.ts +137 -0
- package/dist/publishing/TelegraphService.d.ts.map +1 -0
- package/dist/publishing/TelegraphService.js +410 -0
- package/dist/publishing/TelegraphService.js.map +1 -0
- package/dist/scaffold/bootstrap.d.ts +21 -0
- package/dist/scaffold/bootstrap.d.ts.map +1 -0
- package/dist/scaffold/bootstrap.js +125 -0
- package/dist/scaffold/bootstrap.js.map +1 -0
- package/dist/scaffold/templates.d.ts +47 -0
- package/dist/scaffold/templates.d.ts.map +1 -0
- package/dist/scaffold/templates.js +1506 -0
- package/dist/scaffold/templates.js.map +1 -0
- package/dist/scheduler/IntegrationGate.d.ts +81 -0
- package/dist/scheduler/IntegrationGate.d.ts.map +1 -0
- package/dist/scheduler/IntegrationGate.js +242 -0
- package/dist/scheduler/IntegrationGate.js.map +1 -0
- package/dist/scheduler/JobClaimManager.d.ts +137 -0
- package/dist/scheduler/JobClaimManager.d.ts.map +1 -0
- package/dist/scheduler/JobClaimManager.js +283 -0
- package/dist/scheduler/JobClaimManager.js.map +1 -0
- package/dist/scheduler/JobLoader.d.ts +28 -0
- package/dist/scheduler/JobLoader.d.ts.map +1 -0
- package/dist/scheduler/JobLoader.js +269 -0
- package/dist/scheduler/JobLoader.js.map +1 -0
- package/dist/scheduler/JobRunHistory.d.ts +180 -0
- package/dist/scheduler/JobRunHistory.d.ts.map +1 -0
- package/dist/scheduler/JobRunHistory.js +349 -0
- package/dist/scheduler/JobRunHistory.js.map +1 -0
- package/dist/scheduler/JobScheduler.d.ts +244 -0
- package/dist/scheduler/JobScheduler.d.ts.map +1 -0
- package/dist/scheduler/JobScheduler.js +1085 -0
- package/dist/scheduler/JobScheduler.js.map +1 -0
- package/dist/scheduler/SkipLedger.d.ts +65 -0
- package/dist/scheduler/SkipLedger.d.ts.map +1 -0
- package/dist/scheduler/SkipLedger.js +179 -0
- package/dist/scheduler/SkipLedger.js.map +1 -0
- package/dist/security/LLMSanitizer.d.ts +65 -0
- package/dist/security/LLMSanitizer.d.ts.map +1 -0
- package/dist/security/LLMSanitizer.js +153 -0
- package/dist/security/LLMSanitizer.js.map +1 -0
- package/dist/security/ManifestIntegrity.d.ts +72 -0
- package/dist/security/ManifestIntegrity.d.ts.map +1 -0
- package/dist/security/ManifestIntegrity.js +159 -0
- package/dist/security/ManifestIntegrity.js.map +1 -0
- package/dist/server/AgentServer.d.ts +134 -0
- package/dist/server/AgentServer.d.ts.map +1 -0
- package/dist/server/AgentServer.js +307 -0
- package/dist/server/AgentServer.js.map +1 -0
- package/dist/server/SecretDrop.d.ts +133 -0
- package/dist/server/SecretDrop.d.ts.map +1 -0
- package/dist/server/SecretDrop.js +473 -0
- package/dist/server/SecretDrop.js.map +1 -0
- package/dist/server/WebSocketManager.d.ts +80 -0
- package/dist/server/WebSocketManager.d.ts.map +1 -0
- package/dist/server/WebSocketManager.js +367 -0
- package/dist/server/WebSocketManager.js.map +1 -0
- package/dist/server/fileRoutes.d.ts +19 -0
- package/dist/server/fileRoutes.d.ts.map +1 -0
- package/dist/server/fileRoutes.js +578 -0
- package/dist/server/fileRoutes.js.map +1 -0
- package/dist/server/machineAuth.d.ts +87 -0
- package/dist/server/machineAuth.d.ts.map +1 -0
- package/dist/server/machineAuth.js +188 -0
- package/dist/server/machineAuth.js.map +1 -0
- package/dist/server/machineRoutes.d.ts +49 -0
- package/dist/server/machineRoutes.d.ts.map +1 -0
- package/dist/server/machineRoutes.js +305 -0
- package/dist/server/machineRoutes.js.map +1 -0
- package/dist/server/middleware.d.ts +32 -0
- package/dist/server/middleware.d.ts.map +1 -0
- package/dist/server/middleware.js +202 -0
- package/dist/server/middleware.js.map +1 -0
- package/dist/server/routes.d.ts +132 -0
- package/dist/server/routes.d.ts.map +1 -0
- package/dist/server/routes.js +8124 -0
- package/dist/server/routes.js.map +1 -0
- package/dist/threadline/A2AGateway.d.ts +184 -0
- package/dist/threadline/A2AGateway.d.ts.map +1 -0
- package/dist/threadline/A2AGateway.js +438 -0
- package/dist/threadline/A2AGateway.js.map +1 -0
- package/dist/threadline/AgentCard.d.ts +116 -0
- package/dist/threadline/AgentCard.d.ts.map +1 -0
- package/dist/threadline/AgentCard.js +212 -0
- package/dist/threadline/AgentCard.js.map +1 -0
- package/dist/threadline/AgentDiscovery.d.ts +156 -0
- package/dist/threadline/AgentDiscovery.d.ts.map +1 -0
- package/dist/threadline/AgentDiscovery.js +390 -0
- package/dist/threadline/AgentDiscovery.js.map +1 -0
- package/dist/threadline/AgentTrustManager.d.ts +190 -0
- package/dist/threadline/AgentTrustManager.d.ts.map +1 -0
- package/dist/threadline/AgentTrustManager.js +526 -0
- package/dist/threadline/AgentTrustManager.js.map +1 -0
- package/dist/threadline/ApprovalQueue.d.ts +71 -0
- package/dist/threadline/ApprovalQueue.d.ts.map +1 -0
- package/dist/threadline/ApprovalQueue.js +154 -0
- package/dist/threadline/ApprovalQueue.js.map +1 -0
- package/dist/threadline/AutonomyGate.d.ts +130 -0
- package/dist/threadline/AutonomyGate.d.ts.map +1 -0
- package/dist/threadline/AutonomyGate.js +267 -0
- package/dist/threadline/AutonomyGate.js.map +1 -0
- package/dist/threadline/CircuitBreaker.d.ts +89 -0
- package/dist/threadline/CircuitBreaker.d.ts.map +1 -0
- package/dist/threadline/CircuitBreaker.js +238 -0
- package/dist/threadline/CircuitBreaker.js.map +1 -0
- package/dist/threadline/ComputeMeter.d.ts +114 -0
- package/dist/threadline/ComputeMeter.d.ts.map +1 -0
- package/dist/threadline/ComputeMeter.js +350 -0
- package/dist/threadline/ComputeMeter.js.map +1 -0
- package/dist/threadline/ContentClassifier.d.ts +83 -0
- package/dist/threadline/ContentClassifier.d.ts.map +1 -0
- package/dist/threadline/ContentClassifier.js +201 -0
- package/dist/threadline/ContentClassifier.js.map +1 -0
- package/dist/threadline/ContextThreadMap.d.ts +103 -0
- package/dist/threadline/ContextThreadMap.d.ts.map +1 -0
- package/dist/threadline/ContextThreadMap.js +279 -0
- package/dist/threadline/ContextThreadMap.js.map +1 -0
- package/dist/threadline/DNSVerifier.d.ts +48 -0
- package/dist/threadline/DNSVerifier.d.ts.map +1 -0
- package/dist/threadline/DNSVerifier.js +138 -0
- package/dist/threadline/DNSVerifier.js.map +1 -0
- package/dist/threadline/DigestCollector.d.ts +70 -0
- package/dist/threadline/DigestCollector.d.ts.map +1 -0
- package/dist/threadline/DigestCollector.js +146 -0
- package/dist/threadline/DigestCollector.js.map +1 -0
- package/dist/threadline/HandshakeManager.d.ts +130 -0
- package/dist/threadline/HandshakeManager.d.ts.map +1 -0
- package/dist/threadline/HandshakeManager.js +402 -0
- package/dist/threadline/HandshakeManager.js.map +1 -0
- package/dist/threadline/InboundMessageGate.d.ts +80 -0
- package/dist/threadline/InboundMessageGate.d.ts.map +1 -0
- package/dist/threadline/InboundMessageGate.js +241 -0
- package/dist/threadline/InboundMessageGate.js.map +1 -0
- package/dist/threadline/InvitationManager.d.ts +91 -0
- package/dist/threadline/InvitationManager.d.ts.map +1 -0
- package/dist/threadline/InvitationManager.js +228 -0
- package/dist/threadline/InvitationManager.js.map +1 -0
- package/dist/threadline/ListenerSessionManager.d.ts +147 -0
- package/dist/threadline/ListenerSessionManager.d.ts.map +1 -0
- package/dist/threadline/ListenerSessionManager.js +326 -0
- package/dist/threadline/ListenerSessionManager.js.map +1 -0
- package/dist/threadline/MCPAuth.d.ts +98 -0
- package/dist/threadline/MCPAuth.d.ts.map +1 -0
- package/dist/threadline/MCPAuth.js +228 -0
- package/dist/threadline/MCPAuth.js.map +1 -0
- package/dist/threadline/OpenClawBridge.d.ts +143 -0
- package/dist/threadline/OpenClawBridge.d.ts.map +1 -0
- package/dist/threadline/OpenClawBridge.js +336 -0
- package/dist/threadline/OpenClawBridge.js.map +1 -0
- package/dist/threadline/OpenClawSkillManifest.d.ts +47 -0
- package/dist/threadline/OpenClawSkillManifest.d.ts.map +1 -0
- package/dist/threadline/OpenClawSkillManifest.js +148 -0
- package/dist/threadline/OpenClawSkillManifest.js.map +1 -0
- package/dist/threadline/RateLimiter.d.ts +105 -0
- package/dist/threadline/RateLimiter.d.ts.map +1 -0
- package/dist/threadline/RateLimiter.js +236 -0
- package/dist/threadline/RateLimiter.js.map +1 -0
- package/dist/threadline/RelayGroundingPreamble.d.ts +48 -0
- package/dist/threadline/RelayGroundingPreamble.d.ts.map +1 -0
- package/dist/threadline/RelayGroundingPreamble.js +68 -0
- package/dist/threadline/RelayGroundingPreamble.js.map +1 -0
- package/dist/threadline/SessionLifecycle.d.ts +136 -0
- package/dist/threadline/SessionLifecycle.d.ts.map +1 -0
- package/dist/threadline/SessionLifecycle.js +317 -0
- package/dist/threadline/SessionLifecycle.js.map +1 -0
- package/dist/threadline/ThreadResumeMap.d.ts +128 -0
- package/dist/threadline/ThreadResumeMap.d.ts.map +1 -0
- package/dist/threadline/ThreadResumeMap.js +324 -0
- package/dist/threadline/ThreadResumeMap.js.map +1 -0
- package/dist/threadline/ThreadlineBootstrap.d.ts +68 -0
- package/dist/threadline/ThreadlineBootstrap.d.ts.map +1 -0
- package/dist/threadline/ThreadlineBootstrap.js +293 -0
- package/dist/threadline/ThreadlineBootstrap.js.map +1 -0
- package/dist/threadline/ThreadlineCrypto.d.ts +53 -0
- package/dist/threadline/ThreadlineCrypto.d.ts.map +1 -0
- package/dist/threadline/ThreadlineCrypto.js +123 -0
- package/dist/threadline/ThreadlineCrypto.js.map +1 -0
- package/dist/threadline/ThreadlineEndpoints.d.ts +35 -0
- package/dist/threadline/ThreadlineEndpoints.d.ts.map +1 -0
- package/dist/threadline/ThreadlineEndpoints.js +313 -0
- package/dist/threadline/ThreadlineEndpoints.js.map +1 -0
- package/dist/threadline/ThreadlineMCPServer.d.ts +165 -0
- package/dist/threadline/ThreadlineMCPServer.d.ts.map +1 -0
- package/dist/threadline/ThreadlineMCPServer.js +885 -0
- package/dist/threadline/ThreadlineMCPServer.js.map +1 -0
- package/dist/threadline/ThreadlineRouter.d.ts +105 -0
- package/dist/threadline/ThreadlineRouter.d.ts.map +1 -0
- package/dist/threadline/ThreadlineRouter.js +323 -0
- package/dist/threadline/ThreadlineRouter.js.map +1 -0
- package/dist/threadline/TrustBootstrap.d.ts +92 -0
- package/dist/threadline/TrustBootstrap.d.ts.map +1 -0
- package/dist/threadline/TrustBootstrap.js +256 -0
- package/dist/threadline/TrustBootstrap.js.map +1 -0
- package/dist/threadline/adapters/AutoGenTool.d.ts +42 -0
- package/dist/threadline/adapters/AutoGenTool.d.ts.map +1 -0
- package/dist/threadline/adapters/AutoGenTool.js +145 -0
- package/dist/threadline/adapters/AutoGenTool.js.map +1 -0
- package/dist/threadline/adapters/CrewAITool.d.ts +31 -0
- package/dist/threadline/adapters/CrewAITool.d.ts.map +1 -0
- package/dist/threadline/adapters/CrewAITool.js +112 -0
- package/dist/threadline/adapters/CrewAITool.js.map +1 -0
- package/dist/threadline/adapters/LangGraphTool.d.ts +48 -0
- package/dist/threadline/adapters/LangGraphTool.d.ts.map +1 -0
- package/dist/threadline/adapters/LangGraphTool.js +153 -0
- package/dist/threadline/adapters/LangGraphTool.js.map +1 -0
- package/dist/threadline/adapters/RESTServer.d.ts +74 -0
- package/dist/threadline/adapters/RESTServer.d.ts.map +1 -0
- package/dist/threadline/adapters/RESTServer.js +291 -0
- package/dist/threadline/adapters/RESTServer.js.map +1 -0
- package/dist/threadline/adapters/index.d.ts +14 -0
- package/dist/threadline/adapters/index.d.ts.map +1 -0
- package/dist/threadline/adapters/index.js +10 -0
- package/dist/threadline/adapters/index.js.map +1 -0
- package/dist/threadline/client/IdentityManager.d.ts +40 -0
- package/dist/threadline/client/IdentityManager.d.ts.map +1 -0
- package/dist/threadline/client/IdentityManager.js +106 -0
- package/dist/threadline/client/IdentityManager.js.map +1 -0
- package/dist/threadline/client/MessageEncryptor.d.ts +63 -0
- package/dist/threadline/client/MessageEncryptor.d.ts.map +1 -0
- package/dist/threadline/client/MessageEncryptor.js +195 -0
- package/dist/threadline/client/MessageEncryptor.js.map +1 -0
- package/dist/threadline/client/RegistryRestClient.d.ts +46 -0
- package/dist/threadline/client/RegistryRestClient.d.ts.map +1 -0
- package/dist/threadline/client/RegistryRestClient.js +114 -0
- package/dist/threadline/client/RegistryRestClient.js.map +1 -0
- package/dist/threadline/client/RelayClient.d.ts +77 -0
- package/dist/threadline/client/RelayClient.d.ts.map +1 -0
- package/dist/threadline/client/RelayClient.js +249 -0
- package/dist/threadline/client/RelayClient.js.map +1 -0
- package/dist/threadline/client/ThreadlineClient.d.ts +117 -0
- package/dist/threadline/client/ThreadlineClient.d.ts.map +1 -0
- package/dist/threadline/client/ThreadlineClient.js +286 -0
- package/dist/threadline/client/ThreadlineClient.js.map +1 -0
- package/dist/threadline/client/index.d.ts +14 -0
- package/dist/threadline/client/index.d.ts.map +1 -0
- package/dist/threadline/client/index.js +9 -0
- package/dist/threadline/client/index.js.map +1 -0
- package/dist/threadline/index.d.ts +81 -0
- package/dist/threadline/index.d.ts.map +1 -0
- package/dist/threadline/index.js +57 -0
- package/dist/threadline/index.js.map +1 -0
- package/dist/threadline/mcp-stdio-entry.d.ts +24 -0
- package/dist/threadline/mcp-stdio-entry.d.ts.map +1 -0
- package/dist/threadline/mcp-stdio-entry.js +230 -0
- package/dist/threadline/mcp-stdio-entry.js.map +1 -0
- package/dist/threadline/relay/A2ABridge.d.ts +91 -0
- package/dist/threadline/relay/A2ABridge.d.ts.map +1 -0
- package/dist/threadline/relay/A2ABridge.js +457 -0
- package/dist/threadline/relay/A2ABridge.js.map +1 -0
- package/dist/threadline/relay/AbuseDetector.d.ts +131 -0
- package/dist/threadline/relay/AbuseDetector.d.ts.map +1 -0
- package/dist/threadline/relay/AbuseDetector.js +358 -0
- package/dist/threadline/relay/AbuseDetector.js.map +1 -0
- package/dist/threadline/relay/AdminServer.d.ts +55 -0
- package/dist/threadline/relay/AdminServer.d.ts.map +1 -0
- package/dist/threadline/relay/AdminServer.js +215 -0
- package/dist/threadline/relay/AdminServer.js.map +1 -0
- package/dist/threadline/relay/ConnectionManager.d.ts +86 -0
- package/dist/threadline/relay/ConnectionManager.d.ts.map +1 -0
- package/dist/threadline/relay/ConnectionManager.js +356 -0
- package/dist/threadline/relay/ConnectionManager.js.map +1 -0
- package/dist/threadline/relay/MessageRouter.d.ts +46 -0
- package/dist/threadline/relay/MessageRouter.d.ts.map +1 -0
- package/dist/threadline/relay/MessageRouter.js +138 -0
- package/dist/threadline/relay/MessageRouter.js.map +1 -0
- package/dist/threadline/relay/OfflineQueue.d.ts +87 -0
- package/dist/threadline/relay/OfflineQueue.d.ts.map +1 -0
- package/dist/threadline/relay/OfflineQueue.js +137 -0
- package/dist/threadline/relay/OfflineQueue.js.map +1 -0
- package/dist/threadline/relay/PresenceRegistry.d.ts +62 -0
- package/dist/threadline/relay/PresenceRegistry.d.ts.map +1 -0
- package/dist/threadline/relay/PresenceRegistry.js +148 -0
- package/dist/threadline/relay/PresenceRegistry.js.map +1 -0
- package/dist/threadline/relay/RegistryAuth.d.ts +45 -0
- package/dist/threadline/relay/RegistryAuth.d.ts.map +1 -0
- package/dist/threadline/relay/RegistryAuth.js +118 -0
- package/dist/threadline/relay/RegistryAuth.js.map +1 -0
- package/dist/threadline/relay/RegistryStore.d.ts +149 -0
- package/dist/threadline/relay/RegistryStore.d.ts.map +1 -0
- package/dist/threadline/relay/RegistryStore.js +542 -0
- package/dist/threadline/relay/RegistryStore.js.map +1 -0
- package/dist/threadline/relay/RelayMetrics.d.ts +62 -0
- package/dist/threadline/relay/RelayMetrics.d.ts.map +1 -0
- package/dist/threadline/relay/RelayMetrics.js +149 -0
- package/dist/threadline/relay/RelayMetrics.js.map +1 -0
- package/dist/threadline/relay/RelayRateLimiter.d.ts +58 -0
- package/dist/threadline/relay/RelayRateLimiter.d.ts.map +1 -0
- package/dist/threadline/relay/RelayRateLimiter.js +116 -0
- package/dist/threadline/relay/RelayRateLimiter.js.map +1 -0
- package/dist/threadline/relay/RelayServer.d.ts +94 -0
- package/dist/threadline/relay/RelayServer.d.ts.map +1 -0
- package/dist/threadline/relay/RelayServer.js +1049 -0
- package/dist/threadline/relay/RelayServer.js.map +1 -0
- package/dist/threadline/relay/index.d.ts +28 -0
- package/dist/threadline/relay/index.d.ts.map +1 -0
- package/dist/threadline/relay/index.js +17 -0
- package/dist/threadline/relay/index.js.map +1 -0
- package/dist/threadline/relay/types.d.ts +215 -0
- package/dist/threadline/relay/types.d.ts.map +1 -0
- package/dist/threadline/relay/types.js +21 -0
- package/dist/threadline/relay/types.js.map +1 -0
- package/dist/threadline/types.d.ts +39 -0
- package/dist/threadline/types.d.ts.map +1 -0
- package/dist/threadline/types.js +10 -0
- package/dist/threadline/types.js.map +1 -0
- package/dist/tunnel/TunnelManager.d.ts +113 -0
- package/dist/tunnel/TunnelManager.d.ts.map +1 -0
- package/dist/tunnel/TunnelManager.js +474 -0
- package/dist/tunnel/TunnelManager.js.map +1 -0
- package/dist/types/pipeline.d.ts +203 -0
- package/dist/types/pipeline.d.ts.map +1 -0
- package/dist/types/pipeline.js +152 -0
- package/dist/types/pipeline.js.map +1 -0
- package/dist/users/GdprCommands.d.ts +44 -0
- package/dist/users/GdprCommands.d.ts.map +1 -0
- package/dist/users/GdprCommands.js +153 -0
- package/dist/users/GdprCommands.js.map +1 -0
- package/dist/users/OnboardingGate.d.ts +107 -0
- package/dist/users/OnboardingGate.d.ts.map +1 -0
- package/dist/users/OnboardingGate.js +240 -0
- package/dist/users/OnboardingGate.js.map +1 -0
- package/dist/users/UserContextBuilder.d.ts +47 -0
- package/dist/users/UserContextBuilder.d.ts.map +1 -0
- package/dist/users/UserContextBuilder.js +174 -0
- package/dist/users/UserContextBuilder.js.map +1 -0
- package/dist/users/UserManager.d.ts +76 -0
- package/dist/users/UserManager.d.ts.map +1 -0
- package/dist/users/UserManager.js +213 -0
- package/dist/users/UserManager.js.map +1 -0
- package/dist/users/UserOnboarding.d.ts +145 -0
- package/dist/users/UserOnboarding.d.ts.map +1 -0
- package/dist/users/UserOnboarding.js +488 -0
- package/dist/users/UserOnboarding.js.map +1 -0
- package/dist/users/UserPropagator.d.ts +75 -0
- package/dist/users/UserPropagator.d.ts.map +1 -0
- package/dist/users/UserPropagator.js +145 -0
- package/dist/users/UserPropagator.js.map +1 -0
- package/dist/utils/jsonl-rotation.d.ts +27 -0
- package/dist/utils/jsonl-rotation.d.ts.map +1 -0
- package/dist/utils/jsonl-rotation.js +63 -0
- package/dist/utils/jsonl-rotation.js.map +1 -0
- package/dist/utils/privacy.d.ts +88 -0
- package/dist/utils/privacy.d.ts.map +1 -0
- package/dist/utils/privacy.js +182 -0
- package/dist/utils/privacy.js.map +1 -0
- package/dist/utils/sanitize.d.ts +81 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/sanitize.js +122 -0
- package/dist/utils/sanitize.js.map +1 -0
- package/package.json +1 -0
- package/playbook-scripts/atomic_write.py +133 -0
- package/playbook-scripts/bootstrap-manifest.json +92 -0
- package/playbook-scripts/playbook-annotate-context.py +239 -0
- package/playbook-scripts/playbook-assemble.py +385 -0
- package/playbook-scripts/playbook-dashboard.py +242 -0
- package/playbook-scripts/playbook-decay.py +377 -0
- package/playbook-scripts/playbook-dedup-job.py +252 -0
- package/playbook-scripts/playbook-dedup.py +341 -0
- package/playbook-scripts/playbook-delta-validator.py +576 -0
- package/playbook-scripts/playbook-dsar.py +291 -0
- package/playbook-scripts/playbook-eval-log.py +425 -0
- package/playbook-scripts/playbook-failsafe.py +513 -0
- package/playbook-scripts/playbook-feedback-quarantine.py +335 -0
- package/playbook-scripts/playbook-history.py +293 -0
- package/playbook-scripts/playbook-hmac.py +224 -0
- package/playbook-scripts/playbook-lifecycle.py +952 -0
- package/playbook-scripts/playbook-manifest.py +458 -0
- package/playbook-scripts/playbook-micro-eval.py +316 -0
- package/playbook-scripts/playbook-migrate-lessons.py +396 -0
- package/playbook-scripts/playbook-mount.py +393 -0
- package/playbook-scripts/playbook-offline-adapt.py +323 -0
- package/playbook-scripts/playbook-pii-screen.py +207 -0
- package/playbook-scripts/playbook-reflector.py +266 -0
- package/playbook-scripts/playbook-relevance.py +269 -0
- package/playbook-scripts/playbook-retirement.py +365 -0
- package/playbook-scripts/playbook-schema-validate.py +267 -0
- package/playbook-scripts/playbook-scratchpad.py +346 -0
- package/playbook-scripts/playbook-semantic-verify.py +280 -0
- package/playbook-scripts/playbook-spawn-contract.py +341 -0
- package/playbook-scripts/playbook-token-reestimate.py +248 -0
- package/playbook-scripts/playbook-verify.py +357 -0
- package/playbook-scripts/playbook_backend.py +249 -0
- package/playbook-scripts/playbook_paths.py +232 -0
- package/playbook-scripts/schemas/context-delta.schema.json +137 -0
- package/playbook-scripts/schemas/context-manifest.schema.json +200 -0
- package/playbook-scripts/schemas/playbook-config.schema.json +184 -0
- package/scripts/analyze-release.js +752 -0
- package/scripts/check-upgrade-guide.js +373 -0
- package/scripts/collect-metrics.py +248 -0
- package/scripts/demo-two-agents.mjs +187 -0
- package/scripts/fix-better-sqlite3.cjs +100 -0
- package/scripts/generate-builtin-manifest.cjs +440 -0
- package/scripts/pre-push-gate.js +177 -0
- package/scripts/relay-entrypoint.mjs +18 -0
- package/scripts/seed-registry.mjs +258 -0
- package/scripts/telemetry-worker/worker.js +776 -0
- package/scripts/telemetry-worker/wrangler.toml +7 -0
- package/scripts/test-bootstrap-relay.mjs +90 -0
- package/scripts/test-multi-agent-relay.mjs +395 -0
- package/scripts/test-relay-cloud.mjs +389 -0
- package/scripts/test-relay-live.mjs +550 -0
- package/src/data/builtin-manifest.json +1463 -0
- package/src/data/http-hook-templates.ts +81 -0
- package/src/templates/hooks/compaction-recovery.sh +371 -0
- package/src/templates/hooks/dangerous-command-guard.sh +100 -0
- package/src/templates/hooks/free-text-guard.sh +96 -0
- package/src/templates/hooks/grounding-before-messaging.sh +52 -0
- package/src/templates/hooks/session-start.sh +339 -0
- package/src/templates/hooks/settings-template.json +142 -0
- package/src/templates/hooks/slack-channel-context.sh +98 -0
- package/src/templates/hooks/telegram-topic-context.sh +117 -0
- package/src/templates/scripts/convergence-check.sh +99 -0
- package/src/templates/scripts/git-sync-gate.sh +89 -0
- package/src/templates/scripts/health-watchdog.sh +63 -0
- package/src/templates/scripts/serendipity-capture.sh +345 -0
- package/src/templates/scripts/slack-reply.sh +74 -0
- package/src/templates/scripts/smart-fetch.py +215 -0
- package/src/templates/scripts/telegram-reply.sh +67 -0
- package/src/templates/scripts/whatsapp-reply.sh +68 -0
- package/upgrades/0.10.0.md +254 -0
- package/upgrades/0.10.1.md +47 -0
- package/upgrades/0.10.2.md +26 -0
- package/upgrades/0.10.3.md +23 -0
- package/upgrades/0.10.4.md +26 -0
- package/upgrades/0.10.5.md +19 -0
- package/upgrades/0.10.6.md +35 -0
- package/upgrades/0.10.7.md +48 -0
- package/upgrades/0.10.8.md +53 -0
- package/upgrades/0.10.9.md +21 -0
- package/upgrades/0.11.0.md +146 -0
- package/upgrades/0.12.0.md +31 -0
- package/upgrades/0.12.1.md +21 -0
- package/upgrades/0.12.10.md +26 -0
- package/upgrades/0.12.11.md +23 -0
- package/upgrades/0.12.12.md +23 -0
- package/upgrades/0.12.13.md +19 -0
- package/upgrades/0.12.14.md +21 -0
- package/upgrades/0.12.15.md +26 -0
- package/upgrades/0.12.16.md +33 -0
- package/upgrades/0.12.17.md +38 -0
- package/upgrades/0.12.18.md +27 -0
- package/upgrades/0.12.19.md +31 -0
- package/upgrades/0.12.2.md +27 -0
- package/upgrades/0.12.20.md +24 -0
- package/upgrades/0.12.21.md +28 -0
- package/upgrades/0.12.22.md +23 -0
- package/upgrades/0.12.23.md +44 -0
- package/upgrades/0.12.24.md +24 -0
- package/upgrades/0.12.25.md +55 -0
- package/upgrades/0.12.26.md +31 -0
- package/upgrades/0.12.27.md +19 -0
- package/upgrades/0.12.28.md +19 -0
- package/upgrades/0.12.29.md +42 -0
- package/upgrades/0.12.3.md +22 -0
- package/upgrades/0.12.31.md +24 -0
- package/upgrades/0.12.32.md +34 -0
- package/upgrades/0.12.33.md +62 -0
- package/upgrades/0.12.34.md +59 -0
- package/upgrades/0.12.4.md +19 -0
- package/upgrades/0.12.5.md +31 -0
- package/upgrades/0.12.6.md +34 -0
- package/upgrades/0.12.7.md +24 -0
- package/upgrades/0.12.8.md +28 -0
- package/upgrades/0.12.9.md +30 -0
- package/upgrades/0.13.0.md +26 -0
- package/upgrades/0.14.0.md +75 -0
- package/upgrades/0.14.1.md +41 -0
- package/upgrades/0.15.0.md +59 -0
- package/upgrades/0.16.0.md +61 -0
- package/upgrades/0.17.0.md +88 -0
- package/upgrades/0.17.10.md +23 -0
- package/upgrades/0.17.11.md +25 -0
- package/upgrades/0.17.12.md +43 -0
- package/upgrades/0.17.13.md +24 -0
- package/upgrades/0.17.14.md +26 -0
- package/upgrades/0.17.2.md +42 -0
- package/upgrades/0.17.3.md +37 -0
- package/upgrades/0.17.4.md +27 -0
- package/upgrades/0.17.5.md +32 -0
- package/upgrades/0.17.6.md +32 -0
- package/upgrades/0.17.7.md +39 -0
- package/upgrades/0.17.8.md +34 -0
- package/upgrades/0.17.9.md +25 -0
- package/upgrades/0.18.1.md +34 -0
- package/upgrades/0.18.2.md +29 -0
- package/upgrades/0.18.3.md +26 -0
- package/upgrades/0.18.4.md +28 -0
- package/upgrades/0.18.5.md +25 -0
- package/upgrades/0.18.6.md +25 -0
- package/upgrades/0.18.7.md +30 -0
- package/upgrades/0.19.0.md +136 -0
- package/upgrades/0.19.1.md +27 -0
- package/upgrades/0.19.2.md +27 -0
- package/upgrades/0.19.3.md +32 -0
- package/upgrades/0.19.4.md +19 -0
- package/upgrades/0.19.6.md +17 -0
- package/upgrades/0.19.7.md +33 -0
- package/upgrades/0.20.0.md +54 -0
- package/upgrades/0.21.1.md +55 -0
- package/upgrades/0.21.2.md +48 -0
- package/upgrades/0.21.3.md +29 -0
- package/upgrades/0.21.4.md +33 -0
- package/upgrades/0.22.0.md +114 -0
- package/upgrades/0.23.0.md +81 -0
- package/upgrades/0.23.1.md +28 -0
- package/upgrades/0.23.10.md +19 -0
- package/upgrades/0.23.11.md +21 -0
- package/upgrades/0.23.12.md +30 -0
- package/upgrades/0.23.13.md +25 -0
- package/upgrades/0.23.14.md +23 -0
- package/upgrades/0.23.15.md +30 -0
- package/upgrades/0.23.16.md +21 -0
- package/upgrades/0.23.17.md +23 -0
- package/upgrades/0.23.18.md +41 -0
- package/upgrades/0.23.2.md +32 -0
- package/upgrades/0.23.4.md +21 -0
- package/upgrades/0.23.6.md +19 -0
- package/upgrades/0.23.7.md +33 -0
- package/upgrades/0.23.8.md +38 -0
- package/upgrades/0.23.9.md +35 -0
- package/upgrades/0.24.1.md +32 -0
- package/upgrades/0.24.10.md +23 -0
- package/upgrades/0.24.12.md +17 -0
- package/upgrades/0.24.13.md +16 -0
- package/upgrades/0.24.14.md +26 -0
- package/upgrades/0.24.15.md +49 -0
- package/upgrades/0.24.16.md +48 -0
- package/upgrades/0.24.17.md +40 -0
- package/upgrades/0.24.18-beta.0.md +35 -0
- package/upgrades/0.24.18.md +35 -0
- package/upgrades/0.24.19.md +21 -0
- package/upgrades/0.24.2.md +13 -0
- package/upgrades/0.24.20.md +45 -0
- package/upgrades/0.24.21.md +25 -0
- package/upgrades/0.24.22.md +35 -0
- package/upgrades/0.24.23.md +17 -0
- package/upgrades/0.24.24.md +15 -0
- package/upgrades/0.24.25.md +15 -0
- package/upgrades/0.24.26.md +15 -0
- package/upgrades/0.24.27.md +17 -0
- package/upgrades/0.24.28.md +35 -0
- package/upgrades/0.24.29.md +15 -0
- package/upgrades/0.24.30.md +40 -0
- package/upgrades/0.24.31.md +45 -0
- package/upgrades/0.24.32.md +19 -0
- package/upgrades/0.24.33.md +35 -0
- package/upgrades/0.24.34.md +29 -0
- package/upgrades/0.24.4.md +19 -0
- package/upgrades/0.24.5.md +20 -0
- package/upgrades/0.25.0.md +34 -0
- package/upgrades/0.25.1.md +24 -0
- package/upgrades/0.25.10.md +26 -0
- package/upgrades/0.25.2.md +23 -0
- package/upgrades/0.25.3.md +25 -0
- package/upgrades/0.25.4.md +24 -0
- package/upgrades/0.25.5.md +19 -0
- package/upgrades/0.25.6.md +35 -0
- package/upgrades/0.25.7.md +18 -0
- package/upgrades/0.25.8.md +24 -0
- package/upgrades/0.25.9.md +19 -0
- package/upgrades/0.26.0.md +23 -0
- package/upgrades/0.26.1.md +22 -0
- package/upgrades/0.26.2.md +15 -0
- package/upgrades/0.8.12.md +49 -0
- package/upgrades/0.8.13.md +38 -0
- package/upgrades/0.8.17.md +36 -0
- package/upgrades/0.8.22.md +43 -0
- package/upgrades/0.8.23.md +106 -0
- package/upgrades/0.9.1.md +91 -0
- package/upgrades/0.9.10.md +40 -0
- package/upgrades/0.9.11.md +77 -0
- package/upgrades/0.9.12.md +42 -0
- package/upgrades/0.9.13.md +55 -0
- package/upgrades/0.9.14.md +23 -0
- package/upgrades/0.9.15.md +106 -0
- package/upgrades/0.9.16.md +37 -0
- package/upgrades/0.9.17.md +15 -0
- package/upgrades/0.9.19.md +17 -0
- package/upgrades/0.9.20.md +24 -0
- package/upgrades/0.9.21.md +37 -0
- package/upgrades/0.9.22.md +41 -0
- package/upgrades/0.9.23.md +37 -0
- package/upgrades/0.9.24.md +46 -0
- package/upgrades/0.9.25.md +37 -0
- package/upgrades/0.9.28.md +20 -0
- package/upgrades/0.9.29.md +34 -0
- package/upgrades/0.9.32.md +30 -0
- package/upgrades/0.9.36.md +27 -0
- package/upgrades/0.9.8.md +125 -0
- package/upgrades/0.9.9.md +34 -0
- package/upgrades/NEXT.md +35 -0
package/dist/cli.js
ADDED
|
@@ -0,0 +1,1782 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* instar CLI — Persistent autonomy infrastructure for AI agents.
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* instar init my-project # Create a new agent project from scratch
|
|
7
|
+
* instar init # Add agent infrastructure to existing project
|
|
8
|
+
* instar setup # Interactive setup wizard
|
|
9
|
+
* instar server start # Start the persistent agent server
|
|
10
|
+
* instar server stop # Stop the server
|
|
11
|
+
* instar status # Show agent infrastructure status
|
|
12
|
+
* instar user add # Add a user profile
|
|
13
|
+
* instar job add # Add a job definition
|
|
14
|
+
* instar job list # List all jobs
|
|
15
|
+
* instar relationship list # List tracked relationships
|
|
16
|
+
* instar relationship import # Import from Portal people-registry
|
|
17
|
+
* instar relationship export # Export for Portal import
|
|
18
|
+
* instar add telegram # Add Telegram messaging adapter
|
|
19
|
+
*/
|
|
20
|
+
import fs from 'node:fs';
|
|
21
|
+
import path from 'node:path';
|
|
22
|
+
import { Command } from 'commander';
|
|
23
|
+
import { initProject } from './commands/init.js';
|
|
24
|
+
// setup.ts is imported dynamically — it depends on @inquirer/prompts which requires Node 20.12+
|
|
25
|
+
import { startServer, stopServer, restartServer } from './commands/server.js';
|
|
26
|
+
import { showStatus } from './commands/status.js';
|
|
27
|
+
import { addUser, listUsers } from './commands/user.js';
|
|
28
|
+
import { addJob, listJobs } from './commands/job.js';
|
|
29
|
+
import { listRelationships, importRelationships, exportRelationships } from './commands/relationship.js';
|
|
30
|
+
import { listMachines, removeMachine, whoami, startPairing, joinMesh, leaveMesh, wakeup, doctor } from './commands/machine.js';
|
|
31
|
+
import pc from 'picocolors';
|
|
32
|
+
import { getInstarVersion } from './core/Config.js';
|
|
33
|
+
import { listAgents } from './core/AgentRegistry.js';
|
|
34
|
+
/**
|
|
35
|
+
* Add or update Telegram configuration in the project config.
|
|
36
|
+
*/
|
|
37
|
+
async function addTelegram(opts) {
|
|
38
|
+
const configPath = path.join(process.cwd(), '.instar', 'config.json');
|
|
39
|
+
if (!fs.existsSync(configPath)) {
|
|
40
|
+
console.log(pc.red('No .instar/config.json found. Run `instar init` first.'));
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
let token = opts.token;
|
|
44
|
+
let chatId = opts.chatId;
|
|
45
|
+
// If not provided via flags, show usage
|
|
46
|
+
if (!token || !chatId) {
|
|
47
|
+
console.log(pc.yellow('Both --token and --chat-id are required.'));
|
|
48
|
+
console.log();
|
|
49
|
+
console.log('Usage:');
|
|
50
|
+
console.log(` instar add telegram --token YOUR_BOT_TOKEN --chat-id -100YOUR_GROUP_ID`);
|
|
51
|
+
console.log();
|
|
52
|
+
console.log('Get a bot token from @BotFather on Telegram.');
|
|
53
|
+
console.log('Get the chat ID by adding @RawDataBot to your forum group.');
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
// Read, update, write config
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
58
|
+
let config;
|
|
59
|
+
try {
|
|
60
|
+
config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
console.log(pc.red('Failed to parse .instar/config.json. Check that it contains valid JSON.'));
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
if (!config.messaging)
|
|
67
|
+
config.messaging = [];
|
|
68
|
+
// Remove existing Telegram config if any
|
|
69
|
+
config.messaging = config.messaging.filter((m) => m.type !== 'telegram');
|
|
70
|
+
config.messaging.push({
|
|
71
|
+
type: 'telegram',
|
|
72
|
+
enabled: true,
|
|
73
|
+
config: {
|
|
74
|
+
token,
|
|
75
|
+
chatId,
|
|
76
|
+
pollIntervalMs: 2000,
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
const tmpPath = configPath + `.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;
|
|
80
|
+
try {
|
|
81
|
+
fs.writeFileSync(tmpPath, JSON.stringify(config, null, 2));
|
|
82
|
+
fs.renameSync(tmpPath, configPath);
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
try {
|
|
86
|
+
fs.unlinkSync(tmpPath);
|
|
87
|
+
}
|
|
88
|
+
catch { /* ignore */ }
|
|
89
|
+
throw err;
|
|
90
|
+
}
|
|
91
|
+
console.log(pc.green('Telegram adapter configured successfully!'));
|
|
92
|
+
console.log(` Bot token: ${token.slice(0, 8)}...`);
|
|
93
|
+
console.log(` Chat ID: ${chatId}`);
|
|
94
|
+
console.log();
|
|
95
|
+
console.log(`Restart the server to apply: ${pc.cyan('instar server stop && instar server start')}`);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Add Sentry error monitoring configuration.
|
|
99
|
+
*/
|
|
100
|
+
async function addSentry(opts) {
|
|
101
|
+
const configPath = path.join(process.cwd(), '.instar', 'config.json');
|
|
102
|
+
if (!fs.existsSync(configPath)) {
|
|
103
|
+
console.log(pc.red('No .instar/config.json found. Run `instar init` first.'));
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
106
|
+
if (!opts.dsn) {
|
|
107
|
+
console.log(pc.yellow('The --dsn option is required.'));
|
|
108
|
+
console.log();
|
|
109
|
+
console.log('Usage:');
|
|
110
|
+
console.log(` instar add sentry --dsn https://examplePublicKey@o0.ingest.sentry.io/0`);
|
|
111
|
+
console.log();
|
|
112
|
+
console.log('Get your DSN from https://sentry.io → Project Settings → Client Keys (DSN)');
|
|
113
|
+
process.exit(1);
|
|
114
|
+
}
|
|
115
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
116
|
+
let config;
|
|
117
|
+
try {
|
|
118
|
+
config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
console.log(pc.red('Failed to parse .instar/config.json. Check that it contains valid JSON.'));
|
|
122
|
+
process.exit(1);
|
|
123
|
+
}
|
|
124
|
+
if (!config.monitoring) {
|
|
125
|
+
config.monitoring = {};
|
|
126
|
+
}
|
|
127
|
+
config.monitoring.sentry = {
|
|
128
|
+
enabled: true,
|
|
129
|
+
dsn: opts.dsn,
|
|
130
|
+
};
|
|
131
|
+
const tmpPath = configPath + `.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;
|
|
132
|
+
try {
|
|
133
|
+
fs.writeFileSync(tmpPath, JSON.stringify(config, null, 2));
|
|
134
|
+
fs.renameSync(tmpPath, configPath);
|
|
135
|
+
}
|
|
136
|
+
catch (err) {
|
|
137
|
+
try {
|
|
138
|
+
fs.unlinkSync(tmpPath);
|
|
139
|
+
}
|
|
140
|
+
catch { /* ignore */ }
|
|
141
|
+
throw err;
|
|
142
|
+
}
|
|
143
|
+
console.log(pc.green('Sentry error monitoring configured!'));
|
|
144
|
+
console.log(` DSN: ${opts.dsn.slice(0, 30)}...`);
|
|
145
|
+
console.log();
|
|
146
|
+
console.log(`Restart the server to apply: ${pc.cyan('instar server stop && instar server start')}`);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Add email (Gmail) integration configuration.
|
|
150
|
+
*/
|
|
151
|
+
async function addEmail(opts) {
|
|
152
|
+
const configPath = path.join(process.cwd(), '.instar', 'config.json');
|
|
153
|
+
if (!fs.existsSync(configPath)) {
|
|
154
|
+
console.log(pc.red('No .instar/config.json found. Run `instar init` first.'));
|
|
155
|
+
process.exit(1);
|
|
156
|
+
}
|
|
157
|
+
if (!opts.credentialsFile) {
|
|
158
|
+
console.log(pc.yellow('The --credentials-file option is required.'));
|
|
159
|
+
console.log();
|
|
160
|
+
console.log('Usage:');
|
|
161
|
+
console.log(` instar add email --credentials-file ./credentials.json`);
|
|
162
|
+
console.log();
|
|
163
|
+
console.log('To get credentials:');
|
|
164
|
+
console.log(' 1. Go to https://console.cloud.google.com → APIs & Services → Credentials');
|
|
165
|
+
console.log(' 2. Create OAuth 2.0 Client ID (Desktop app)');
|
|
166
|
+
console.log(' 3. Download the credentials JSON file');
|
|
167
|
+
process.exit(1);
|
|
168
|
+
}
|
|
169
|
+
// Read, update, write config
|
|
170
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
171
|
+
let config;
|
|
172
|
+
try {
|
|
173
|
+
config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
console.log(pc.red('Failed to parse .instar/config.json. Check that it contains valid JSON.'));
|
|
177
|
+
process.exit(1);
|
|
178
|
+
}
|
|
179
|
+
if (!config.messaging)
|
|
180
|
+
config.messaging = [];
|
|
181
|
+
// Remove existing email config if any
|
|
182
|
+
config.messaging = config.messaging.filter((m) => m.type !== 'email');
|
|
183
|
+
config.messaging.push({
|
|
184
|
+
type: 'email',
|
|
185
|
+
enabled: true,
|
|
186
|
+
config: {
|
|
187
|
+
credentialsFile: opts.credentialsFile,
|
|
188
|
+
tokenFile: opts.tokenFile || path.join(process.cwd(), '.instar', 'gmail-token.json'),
|
|
189
|
+
},
|
|
190
|
+
});
|
|
191
|
+
const tmpPath = configPath + `.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;
|
|
192
|
+
try {
|
|
193
|
+
fs.writeFileSync(tmpPath, JSON.stringify(config, null, 2));
|
|
194
|
+
fs.renameSync(tmpPath, configPath);
|
|
195
|
+
}
|
|
196
|
+
catch (err) {
|
|
197
|
+
try {
|
|
198
|
+
fs.unlinkSync(tmpPath);
|
|
199
|
+
}
|
|
200
|
+
catch { /* ignore */ }
|
|
201
|
+
throw err;
|
|
202
|
+
}
|
|
203
|
+
console.log(pc.green('Email (Gmail) integration configured!'));
|
|
204
|
+
console.log(` Credentials: ${opts.credentialsFile}`);
|
|
205
|
+
console.log(` Token file: ${opts.tokenFile || '.instar/gmail-token.json'}`);
|
|
206
|
+
console.log();
|
|
207
|
+
console.log(`Restart the server to apply: ${pc.cyan('instar server stop && instar server start')}`);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Enable quota tracking in the project config.
|
|
211
|
+
*/
|
|
212
|
+
async function addQuota(opts) {
|
|
213
|
+
const configPath = path.join(process.cwd(), '.instar', 'config.json');
|
|
214
|
+
if (!fs.existsSync(configPath)) {
|
|
215
|
+
console.log(pc.red('No .instar/config.json found. Run `instar init` first.'));
|
|
216
|
+
process.exit(1);
|
|
217
|
+
}
|
|
218
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
219
|
+
let config;
|
|
220
|
+
try {
|
|
221
|
+
config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
222
|
+
}
|
|
223
|
+
catch {
|
|
224
|
+
console.log(pc.red('Failed to parse .instar/config.json. Check that it contains valid JSON.'));
|
|
225
|
+
process.exit(1);
|
|
226
|
+
}
|
|
227
|
+
if (!config.monitoring) {
|
|
228
|
+
config.monitoring = {};
|
|
229
|
+
}
|
|
230
|
+
config.monitoring.quotaTracking = true;
|
|
231
|
+
if (opts.stateFile) {
|
|
232
|
+
config.monitoring.quotaStateFile = opts.stateFile;
|
|
233
|
+
}
|
|
234
|
+
const tmpPath = configPath + `.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;
|
|
235
|
+
try {
|
|
236
|
+
fs.writeFileSync(tmpPath, JSON.stringify(config, null, 2));
|
|
237
|
+
fs.renameSync(tmpPath, configPath);
|
|
238
|
+
}
|
|
239
|
+
catch (err) {
|
|
240
|
+
try {
|
|
241
|
+
fs.unlinkSync(tmpPath);
|
|
242
|
+
}
|
|
243
|
+
catch { /* ignore */ }
|
|
244
|
+
throw err;
|
|
245
|
+
}
|
|
246
|
+
console.log(pc.green('Quota tracking enabled!'));
|
|
247
|
+
console.log();
|
|
248
|
+
if (opts.stateFile) {
|
|
249
|
+
console.log(` State file: ${opts.stateFile}`);
|
|
250
|
+
}
|
|
251
|
+
console.log('The agent will now track Claude API usage and throttle jobs when usage is high.');
|
|
252
|
+
console.log();
|
|
253
|
+
console.log(`Restart the server to apply: ${pc.cyan('instar server stop && instar server start')}`);
|
|
254
|
+
}
|
|
255
|
+
const program = new Command();
|
|
256
|
+
program
|
|
257
|
+
.name('instar')
|
|
258
|
+
.description('Persistent autonomy infrastructure for AI agents')
|
|
259
|
+
.version(getInstarVersion())
|
|
260
|
+
.action(async () => {
|
|
261
|
+
const [major, minor] = process.versions.node.split('.').map(Number);
|
|
262
|
+
if (major < 20 || (major === 20 && minor < 12)) {
|
|
263
|
+
console.error(`\n Instar setup requires Node.js 20.12 or later.`);
|
|
264
|
+
console.error(` You're running Node.js ${process.versions.node}.`);
|
|
265
|
+
console.error(`\n Upgrade: https://nodejs.org/en/download\n`);
|
|
266
|
+
process.exit(1);
|
|
267
|
+
}
|
|
268
|
+
const { runSetup } = await import('./commands/setup.js');
|
|
269
|
+
return runSetup();
|
|
270
|
+
}); // Default: run interactive setup when no subcommand given
|
|
271
|
+
// ── Setup (explicit alias) ────────────────────────────────────────
|
|
272
|
+
program
|
|
273
|
+
.command('setup')
|
|
274
|
+
.description('Interactive setup wizard (same as running `instar` with no args)')
|
|
275
|
+
.option('--non-interactive', 'Run setup without LLM wizard (requires all flags)')
|
|
276
|
+
.option('--name <name>', 'Agent name (non-interactive)')
|
|
277
|
+
.option('--user <user>', 'User name (non-interactive)')
|
|
278
|
+
.option('--telegram-token <token>', 'Telegram bot token (non-interactive)')
|
|
279
|
+
.option('--telegram-group <group>', 'Telegram group/chat ID (non-interactive)')
|
|
280
|
+
.option('--whatsapp-backend <backend>', 'WhatsApp backend: baileys or business-api (non-interactive)')
|
|
281
|
+
.option('--whatsapp-phone <phone>', 'WhatsApp authorized phone number (non-interactive)')
|
|
282
|
+
.option('--whatsapp-phone-number-id <id>', 'Business API phone number ID (non-interactive)')
|
|
283
|
+
.option('--whatsapp-access-token <token>', 'Business API access token (non-interactive)')
|
|
284
|
+
.option('--whatsapp-verify-token <token>', 'Business API webhook verify token (non-interactive)')
|
|
285
|
+
.option('--scenario <number>', 'Scenario number 1-8 (non-interactive)')
|
|
286
|
+
.action(async (opts) => {
|
|
287
|
+
const [major, minor] = process.versions.node.split('.').map(Number);
|
|
288
|
+
if (major < 20 || (major === 20 && minor < 12)) {
|
|
289
|
+
console.error(`\n Instar setup requires Node.js 20.12 or later.`);
|
|
290
|
+
console.error(` You're running Node.js ${process.versions.node}.`);
|
|
291
|
+
console.error(`\n Upgrade: https://nodejs.org/en/download\n`);
|
|
292
|
+
process.exit(1);
|
|
293
|
+
}
|
|
294
|
+
const { runSetup, runNonInteractiveSetup } = await import('./commands/setup.js');
|
|
295
|
+
if (opts.nonInteractive) {
|
|
296
|
+
return runNonInteractiveSetup(opts);
|
|
297
|
+
}
|
|
298
|
+
return runSetup();
|
|
299
|
+
});
|
|
300
|
+
// ── Init ─────────────────────────────────────────────────────────
|
|
301
|
+
program
|
|
302
|
+
.command('init [project-name]')
|
|
303
|
+
.description('Initialize agent infrastructure (fresh project, existing, or standalone)')
|
|
304
|
+
.option('-d, --dir <path>', 'Project directory (default: current directory)')
|
|
305
|
+
.option('--port <port>', 'Server port (default: 4040)', (v) => parseInt(v, 10))
|
|
306
|
+
.option('--standalone', 'Create a standalone agent at ~/.instar/agents/<name>/')
|
|
307
|
+
.action((projectName, opts) => {
|
|
308
|
+
return initProject({ ...opts, name: projectName });
|
|
309
|
+
});
|
|
310
|
+
// ── Add ───────────────────────────────────────────────────────────
|
|
311
|
+
const addCmd = program
|
|
312
|
+
.command('add')
|
|
313
|
+
.description('Add capabilities to the agent');
|
|
314
|
+
addCmd
|
|
315
|
+
.command('telegram')
|
|
316
|
+
.description('Add Telegram messaging adapter')
|
|
317
|
+
.option('--token <token>', 'Telegram bot token (from @BotFather)')
|
|
318
|
+
.option('--chat-id <id>', 'Telegram forum supergroup chat ID')
|
|
319
|
+
.action((opts) => addTelegram(opts));
|
|
320
|
+
addCmd
|
|
321
|
+
.command('email')
|
|
322
|
+
.description('Add email integration (Gmail)')
|
|
323
|
+
.option('--credentials-file <path>', 'Path to Google OAuth credentials JSON file')
|
|
324
|
+
.option('--token-file <path>', 'Path to store Gmail auth token')
|
|
325
|
+
.action((opts) => addEmail(opts));
|
|
326
|
+
addCmd
|
|
327
|
+
.command('whatsapp')
|
|
328
|
+
.description('Add WhatsApp messaging adapter')
|
|
329
|
+
.option('--backend <backend>', 'Backend: baileys (free, QR auth) or business-api (paid, Meta API)', 'baileys')
|
|
330
|
+
.option('--auth-method <method>', 'Auth method: qr (scan code) or pairing-code (8-digit code)', 'qr')
|
|
331
|
+
.option('--phone <number>', 'Phone number for pairing code auth (E.164 format: +1234567890)')
|
|
332
|
+
.option('--authorized <numbers>', 'Comma-separated authorized phone numbers (E.164). Empty = allow all.')
|
|
333
|
+
.option('--encrypt', 'Encrypt auth credentials at rest (recommended)')
|
|
334
|
+
.option('--phone-number-id <id>', 'Meta Phone Number ID (Business API)')
|
|
335
|
+
.option('--access-token <token>', 'Meta access token (Business API)')
|
|
336
|
+
.option('--webhook-verify-token <token>', 'Webhook verification token (Business API)')
|
|
337
|
+
.option('--webhook-port <port>', 'Webhook port if different from server port (Business API)', parseInt)
|
|
338
|
+
.action(async (opts) => {
|
|
339
|
+
const { addWhatsApp } = await import('./commands/whatsapp.js');
|
|
340
|
+
return addWhatsApp(opts);
|
|
341
|
+
});
|
|
342
|
+
addCmd
|
|
343
|
+
.command('slack')
|
|
344
|
+
.description('Add Slack messaging adapter (tokens entered interactively)')
|
|
345
|
+
.action(async () => {
|
|
346
|
+
const { addSlack } = await import('./commands/slack-cli.js');
|
|
347
|
+
return addSlack();
|
|
348
|
+
});
|
|
349
|
+
addCmd
|
|
350
|
+
.command('sentry')
|
|
351
|
+
.description('Add Sentry error monitoring')
|
|
352
|
+
.option('--dsn <dsn>', 'Sentry DSN')
|
|
353
|
+
.action((opts) => addSentry(opts));
|
|
354
|
+
addCmd
|
|
355
|
+
.command('quota')
|
|
356
|
+
.description('Add Claude API quota tracking')
|
|
357
|
+
.option('--state-file <path>', 'Path to quota state file (default: .instar/state/quota.json)')
|
|
358
|
+
.action((opts) => addQuota(opts));
|
|
359
|
+
// ── Remove ──────────────────────────────────────────────────────
|
|
360
|
+
const removeAdapterCmd = program
|
|
361
|
+
.command('remove')
|
|
362
|
+
.description('Remove capabilities from the agent');
|
|
363
|
+
removeAdapterCmd
|
|
364
|
+
.command('slack')
|
|
365
|
+
.description('Remove Slack messaging adapter and purge associated data')
|
|
366
|
+
.action(async () => {
|
|
367
|
+
const { removeSlack } = await import('./commands/slack-cli.js');
|
|
368
|
+
return removeSlack();
|
|
369
|
+
});
|
|
370
|
+
// ── Backup ───────────────────────────────────────────────────────
|
|
371
|
+
const backupCmd = program
|
|
372
|
+
.command('backup')
|
|
373
|
+
.description('Manage agent state backups');
|
|
374
|
+
backupCmd
|
|
375
|
+
.command('create')
|
|
376
|
+
.description('Create a manual backup')
|
|
377
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
378
|
+
.action(async (opts) => {
|
|
379
|
+
const { createBackup } = await import('./commands/backup.js');
|
|
380
|
+
return createBackup(opts);
|
|
381
|
+
});
|
|
382
|
+
backupCmd
|
|
383
|
+
.command('list')
|
|
384
|
+
.description('List available backup snapshots')
|
|
385
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
386
|
+
.action(async (opts) => {
|
|
387
|
+
const { listBackups } = await import('./commands/backup.js');
|
|
388
|
+
return listBackups(opts);
|
|
389
|
+
});
|
|
390
|
+
backupCmd
|
|
391
|
+
.command('restore [id]')
|
|
392
|
+
.description('Restore from a backup snapshot (latest if no ID)')
|
|
393
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
394
|
+
.action(async (id, opts) => {
|
|
395
|
+
const { restoreBackup } = await import('./commands/backup.js');
|
|
396
|
+
return restoreBackup(id, opts);
|
|
397
|
+
});
|
|
398
|
+
// ── Git State ────────────────────────────────────────────────────
|
|
399
|
+
const gitCmd = program
|
|
400
|
+
.command('git')
|
|
401
|
+
.description('Git-backed state tracking (standalone agents only)');
|
|
402
|
+
gitCmd
|
|
403
|
+
.command('init')
|
|
404
|
+
.description('Initialize git tracking in the agent state directory')
|
|
405
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
406
|
+
.action(async (opts) => {
|
|
407
|
+
const { gitInit } = await import('./commands/git.js');
|
|
408
|
+
return gitInit(opts);
|
|
409
|
+
});
|
|
410
|
+
gitCmd
|
|
411
|
+
.command('status')
|
|
412
|
+
.description('Show git tracking status')
|
|
413
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
414
|
+
.action(async (opts) => {
|
|
415
|
+
const { gitStatus } = await import('./commands/git.js');
|
|
416
|
+
return gitStatus(opts);
|
|
417
|
+
});
|
|
418
|
+
gitCmd
|
|
419
|
+
.command('push')
|
|
420
|
+
.description('Push state to remote')
|
|
421
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
422
|
+
.option('--confirm', 'Confirm first push to remote')
|
|
423
|
+
.action(async (opts) => {
|
|
424
|
+
const { gitPush } = await import('./commands/git.js');
|
|
425
|
+
return gitPush(opts);
|
|
426
|
+
});
|
|
427
|
+
gitCmd
|
|
428
|
+
.command('pull')
|
|
429
|
+
.description('Pull state from remote')
|
|
430
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
431
|
+
.action(async (opts) => {
|
|
432
|
+
const { gitPull } = await import('./commands/git.js');
|
|
433
|
+
return gitPull(opts);
|
|
434
|
+
});
|
|
435
|
+
gitCmd
|
|
436
|
+
.command('log')
|
|
437
|
+
.description('Show recent commit history')
|
|
438
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
439
|
+
.action(async (opts) => {
|
|
440
|
+
const { gitLog } = await import('./commands/git.js');
|
|
441
|
+
return gitLog(opts);
|
|
442
|
+
});
|
|
443
|
+
gitCmd
|
|
444
|
+
.command('remote <url>')
|
|
445
|
+
.description('Set remote URL for push/pull')
|
|
446
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
447
|
+
.action(async (url, opts) => {
|
|
448
|
+
const { gitRemote } = await import('./commands/git.js');
|
|
449
|
+
return gitRemote(url, opts);
|
|
450
|
+
});
|
|
451
|
+
gitCmd
|
|
452
|
+
.command('commit [message]')
|
|
453
|
+
.description('Manual commit of state changes')
|
|
454
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
455
|
+
.action(async (message, opts) => {
|
|
456
|
+
const { gitCommit } = await import('./commands/git.js');
|
|
457
|
+
return gitCommit(message, opts);
|
|
458
|
+
});
|
|
459
|
+
// ── Memory Search ────────────────────────────────────────────────
|
|
460
|
+
const memoryCmd = program
|
|
461
|
+
.command('memory')
|
|
462
|
+
.description('Search and manage agent memory index (FTS5)');
|
|
463
|
+
memoryCmd
|
|
464
|
+
.command('search <query>')
|
|
465
|
+
.description('Full-text search over agent memory files')
|
|
466
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
467
|
+
.option('-l, --limit <count>', 'Max results (default: 10)', (v) => parseInt(v, 10))
|
|
468
|
+
.action(async (query, opts) => {
|
|
469
|
+
const { memorySearch } = await import('./commands/memory.js');
|
|
470
|
+
return memorySearch(query, opts);
|
|
471
|
+
});
|
|
472
|
+
memoryCmd
|
|
473
|
+
.command('reindex')
|
|
474
|
+
.description('Full rebuild of the SQLite memory index')
|
|
475
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
476
|
+
.action(async (opts) => {
|
|
477
|
+
const { memoryReindex } = await import('./commands/memory.js');
|
|
478
|
+
return memoryReindex(opts);
|
|
479
|
+
});
|
|
480
|
+
memoryCmd
|
|
481
|
+
.command('status')
|
|
482
|
+
.description('Show memory index statistics')
|
|
483
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
484
|
+
.action(async (opts) => {
|
|
485
|
+
const { memoryStatus } = await import('./commands/memory.js');
|
|
486
|
+
return memoryStatus(opts);
|
|
487
|
+
});
|
|
488
|
+
memoryCmd
|
|
489
|
+
.command('export')
|
|
490
|
+
.description('Generate MEMORY.md from SemanticMemory knowledge graph')
|
|
491
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
492
|
+
.option('-o, --output <path>', 'Output file path (prints to stdout if omitted)')
|
|
493
|
+
.option('-a, --agent <name>', 'Agent name for the header (default: Agent)')
|
|
494
|
+
.option('--min-confidence <value>', 'Minimum confidence threshold (default: 0.2)', (v) => parseFloat(v))
|
|
495
|
+
.option('--max-entities <count>', 'Maximum entities to include (default: 200)', (v) => parseInt(v, 10))
|
|
496
|
+
.action(async (opts) => {
|
|
497
|
+
const { memoryExport } = await import('./commands/memory.js');
|
|
498
|
+
return memoryExport(opts);
|
|
499
|
+
});
|
|
500
|
+
// ── Knowledge Base ────────────────────────────────────────────────
|
|
501
|
+
const knowledgeCmd = program
|
|
502
|
+
.command('knowledge')
|
|
503
|
+
.description('Ingest URLs, documents, and transcripts into a searchable knowledge base');
|
|
504
|
+
knowledgeCmd
|
|
505
|
+
.command('ingest <content>')
|
|
506
|
+
.description('Ingest content into the knowledge base')
|
|
507
|
+
.requiredOption('-t, --title <title>', 'Title for the content')
|
|
508
|
+
.option('-u, --url <url>', 'Source URL')
|
|
509
|
+
.option('--type <type>', 'Content type: article, transcript, doc (default: article)')
|
|
510
|
+
.option('--tags <tags>', 'Comma-separated tags')
|
|
511
|
+
.option('-s, --summary <summary>', 'Brief summary')
|
|
512
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
513
|
+
.action(async (content, opts) => {
|
|
514
|
+
const { knowledgeIngest } = await import('./commands/knowledge.js');
|
|
515
|
+
return knowledgeIngest(content, opts);
|
|
516
|
+
});
|
|
517
|
+
knowledgeCmd
|
|
518
|
+
.command('list')
|
|
519
|
+
.description('List all ingested knowledge sources')
|
|
520
|
+
.option('--tag <tag>', 'Filter by tag')
|
|
521
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
522
|
+
.action(async (opts) => {
|
|
523
|
+
const { knowledgeList } = await import('./commands/knowledge.js');
|
|
524
|
+
return knowledgeList(opts);
|
|
525
|
+
});
|
|
526
|
+
knowledgeCmd
|
|
527
|
+
.command('search <query>')
|
|
528
|
+
.description('Search knowledge base (scoped to knowledge/ sources)')
|
|
529
|
+
.option('-l, --limit <count>', 'Max results (default: 10)', (v) => parseInt(v, 10))
|
|
530
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
531
|
+
.action(async (query, opts) => {
|
|
532
|
+
const { knowledgeSearch } = await import('./commands/knowledge.js');
|
|
533
|
+
return knowledgeSearch(query, opts);
|
|
534
|
+
});
|
|
535
|
+
knowledgeCmd
|
|
536
|
+
.command('remove <sourceId>')
|
|
537
|
+
.description('Remove a source from the knowledge base')
|
|
538
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
539
|
+
.action(async (sourceId, opts) => {
|
|
540
|
+
const { knowledgeRemove } = await import('./commands/knowledge.js');
|
|
541
|
+
return knowledgeRemove(sourceId, opts);
|
|
542
|
+
});
|
|
543
|
+
// ── Semantic Memory ──────────────────────────────────────────────
|
|
544
|
+
const semanticCmd = program
|
|
545
|
+
.command('semantic')
|
|
546
|
+
.description('Manage the semantic memory knowledge graph');
|
|
547
|
+
semanticCmd
|
|
548
|
+
.command('search <query>')
|
|
549
|
+
.description('Search the knowledge graph')
|
|
550
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
551
|
+
.option('-l, --limit <count>', 'Max results (default: 10)', (v) => parseInt(v, 10))
|
|
552
|
+
.option('-t, --type <type>', 'Filter by entity type (fact, person, project, tool, pattern, decision, lesson)')
|
|
553
|
+
.option('--domain <domain>', 'Filter by domain')
|
|
554
|
+
.option('--min-confidence <value>', 'Minimum confidence (0.0-1.0)')
|
|
555
|
+
.action(async (query, opts) => {
|
|
556
|
+
const { semanticSearch } = await import('./commands/semantic.js');
|
|
557
|
+
return semanticSearch(query, opts);
|
|
558
|
+
});
|
|
559
|
+
semanticCmd
|
|
560
|
+
.command('remember')
|
|
561
|
+
.description('Add a knowledge entity to the graph')
|
|
562
|
+
.requiredOption('-t, --type <type>', 'Entity type (fact, person, project, tool, pattern, decision, lesson)')
|
|
563
|
+
.requiredOption('-n, --name <name>', 'Entity name')
|
|
564
|
+
.requiredOption('-c, --content <content>', 'Entity content')
|
|
565
|
+
.option('--confidence <value>', 'Confidence (0.0-1.0, default: 0.8)')
|
|
566
|
+
.option('--source <source>', 'Source (default: cli)')
|
|
567
|
+
.option('--tags <tags>', 'Comma-separated tags')
|
|
568
|
+
.option('--domain <domain>', 'Domain grouping')
|
|
569
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
570
|
+
.action(async (opts) => {
|
|
571
|
+
const { semanticRemember } = await import('./commands/semantic.js');
|
|
572
|
+
return semanticRemember(opts);
|
|
573
|
+
});
|
|
574
|
+
semanticCmd
|
|
575
|
+
.command('forget <id>')
|
|
576
|
+
.description('Remove an entity and its edges')
|
|
577
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
578
|
+
.action(async (id, opts) => {
|
|
579
|
+
const { semanticForget } = await import('./commands/semantic.js');
|
|
580
|
+
return semanticForget(id, opts);
|
|
581
|
+
});
|
|
582
|
+
semanticCmd
|
|
583
|
+
.command('stats')
|
|
584
|
+
.description('Show knowledge graph statistics')
|
|
585
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
586
|
+
.action(async (opts) => {
|
|
587
|
+
const { semanticStats } = await import('./commands/semantic.js');
|
|
588
|
+
return semanticStats(opts);
|
|
589
|
+
});
|
|
590
|
+
semanticCmd
|
|
591
|
+
.command('export')
|
|
592
|
+
.description('Export all entities and edges as JSON')
|
|
593
|
+
.option('-o, --output <path>', 'Output file (defaults to stdout)')
|
|
594
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
595
|
+
.action(async (opts) => {
|
|
596
|
+
const { semanticExport } = await import('./commands/semantic.js');
|
|
597
|
+
return semanticExport(opts);
|
|
598
|
+
});
|
|
599
|
+
semanticCmd
|
|
600
|
+
.command('decay')
|
|
601
|
+
.description('Run confidence decay on all entities')
|
|
602
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
603
|
+
.action(async (opts) => {
|
|
604
|
+
const { semanticDecay } = await import('./commands/semantic.js');
|
|
605
|
+
return semanticDecay(opts);
|
|
606
|
+
});
|
|
607
|
+
// ── Intent ────────────────────────────────────────────────────────
|
|
608
|
+
const intentCmd = program
|
|
609
|
+
.command('intent')
|
|
610
|
+
.description('Intent engineering — review decisions against stated intent');
|
|
611
|
+
intentCmd
|
|
612
|
+
.command('reflect')
|
|
613
|
+
.description('Review recent decisions against stated intent from AGENT.md')
|
|
614
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
615
|
+
.option('--days <days>', 'Number of days to review (default: 7)', (v) => parseInt(v, 10))
|
|
616
|
+
.option('--limit <count>', 'Max entries to show (default: 100)', (v) => parseInt(v, 10))
|
|
617
|
+
.action(async (opts) => {
|
|
618
|
+
const { intentReflect } = await import('./commands/intent.js');
|
|
619
|
+
return intentReflect(opts);
|
|
620
|
+
});
|
|
621
|
+
intentCmd
|
|
622
|
+
.command('org-init [name]')
|
|
623
|
+
.description('Create ORG-INTENT.md for organizational intent')
|
|
624
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
625
|
+
.action(async (name, opts) => {
|
|
626
|
+
const { orgInit } = await import('./commands/org.js');
|
|
627
|
+
return orgInit({ ...opts, name });
|
|
628
|
+
});
|
|
629
|
+
intentCmd
|
|
630
|
+
.command('validate')
|
|
631
|
+
.description('Validate agent intent against org constraints')
|
|
632
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
633
|
+
.action(async (opts) => {
|
|
634
|
+
const { intentValidate } = await import('./commands/intent.js');
|
|
635
|
+
return intentValidate(opts);
|
|
636
|
+
});
|
|
637
|
+
intentCmd
|
|
638
|
+
.command('drift')
|
|
639
|
+
.description('Detect intent drift from decision journal trends')
|
|
640
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
641
|
+
.option('--window <days>', 'Window size in days (default: 14)', (v) => parseInt(v, 10))
|
|
642
|
+
.action(async (opts) => {
|
|
643
|
+
const { intentDrift } = await import('./commands/intent.js');
|
|
644
|
+
return intentDrift(opts);
|
|
645
|
+
});
|
|
646
|
+
// ── Reflect (Living Skills) ──────────────────────────────────────
|
|
647
|
+
const reflectCmd = program
|
|
648
|
+
.command('reflect')
|
|
649
|
+
.description('Living Skills — view execution journal and patterns for jobs');
|
|
650
|
+
reflectCmd
|
|
651
|
+
.command('job <slug>')
|
|
652
|
+
.description('Show execution journal for a specific job')
|
|
653
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
654
|
+
.option('--days <days>', 'Number of days to show (default: 30)', (v) => parseInt(v, 10))
|
|
655
|
+
.option('--limit <count>', 'Max records to show (default: 10)', (v) => parseInt(v, 10))
|
|
656
|
+
.option('--agent <id>', 'Agent ID (default: "default")')
|
|
657
|
+
.action(async (slug, opts) => {
|
|
658
|
+
const { reflectJob } = await import('./commands/reflect.js');
|
|
659
|
+
return reflectJob(slug, opts);
|
|
660
|
+
});
|
|
661
|
+
reflectCmd
|
|
662
|
+
.command('all')
|
|
663
|
+
.description('Show execution journal summary for all jobs')
|
|
664
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
665
|
+
.option('--days <days>', 'Number of days to show (default: 30)', (v) => parseInt(v, 10))
|
|
666
|
+
.option('--agent <id>', 'Agent ID (default: "default")')
|
|
667
|
+
.action(async (opts) => {
|
|
668
|
+
const { reflectAll } = await import('./commands/reflect.js');
|
|
669
|
+
return reflectAll(opts);
|
|
670
|
+
});
|
|
671
|
+
reflectCmd
|
|
672
|
+
.command('analyze [slug]')
|
|
673
|
+
.description('Detect patterns across execution history')
|
|
674
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
675
|
+
.option('--days <days>', 'Number of days to analyze (default: 30)', (v) => parseInt(v, 10))
|
|
676
|
+
.option('--agent <id>', 'Agent ID (default: "default")')
|
|
677
|
+
.option('--all', 'Analyze all jobs')
|
|
678
|
+
.option('--proposals', 'Show evolution proposals for detected patterns')
|
|
679
|
+
.option('--min-runs <count>', 'Minimum runs for pattern detection (default: 3)', (v) => parseInt(v, 10))
|
|
680
|
+
.action(async (slug, opts) => {
|
|
681
|
+
const { analyzePatterns } = await import('./commands/reflect.js');
|
|
682
|
+
return analyzePatterns(slug, opts);
|
|
683
|
+
});
|
|
684
|
+
reflectCmd
|
|
685
|
+
.command('consolidate')
|
|
686
|
+
.description('Run full reflection cycle — analyze patterns, create proposals, record learnings')
|
|
687
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
688
|
+
.option('--days <days>', 'Number of days to analyze (default: 7)', (v) => parseInt(v, 10))
|
|
689
|
+
.option('--agent <id>', 'Agent ID (default: "default")')
|
|
690
|
+
.option('--min-runs <count>', 'Minimum runs for pattern detection (default: 3)', (v) => parseInt(v, 10))
|
|
691
|
+
.option('--dry-run', 'Show what would be proposed without writing to EvolutionManager')
|
|
692
|
+
.action(async (opts) => {
|
|
693
|
+
const { consolidateReflection } = await import('./commands/reflect.js');
|
|
694
|
+
return consolidateReflection(opts);
|
|
695
|
+
});
|
|
696
|
+
reflectCmd
|
|
697
|
+
.command('run [slug]')
|
|
698
|
+
.description('Run LLM-powered per-job reflection (requires Claude CLI or ANTHROPIC_API_KEY)')
|
|
699
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
700
|
+
.option('--days <days>', 'Number of days of history to include (default: 30)', (v) => parseInt(v, 10))
|
|
701
|
+
.option('--agent <id>', 'Agent ID (default: "default")')
|
|
702
|
+
.option('--session <id>', 'Specific session ID to reflect on')
|
|
703
|
+
.option('--model <tier>', 'Model tier: fast, balanced, capable (default: capable)')
|
|
704
|
+
.option('--all', 'Reflect on all jobs')
|
|
705
|
+
.action(async (slug, opts) => {
|
|
706
|
+
const { runReflection } = await import('./commands/reflect.js');
|
|
707
|
+
return runReflection(slug, opts);
|
|
708
|
+
});
|
|
709
|
+
// ── Feedback ─────────────────────────────────────────────────────
|
|
710
|
+
program
|
|
711
|
+
.command('feedback')
|
|
712
|
+
.description('Submit feedback about Instar (bugs, features, improvements)')
|
|
713
|
+
.option('--type <type>', 'Feedback type (bug|feature|improvement|question)', 'other')
|
|
714
|
+
.option('--title <title>', 'Short title')
|
|
715
|
+
.option('--description <desc>', 'Detailed description')
|
|
716
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
717
|
+
.option('--port <port>', 'Server port (default: 4040)', (v) => parseInt(v, 10))
|
|
718
|
+
.action(async (opts) => {
|
|
719
|
+
const port = opts.port || 4040;
|
|
720
|
+
const title = opts.title || 'CLI feedback submission';
|
|
721
|
+
const description = opts.description || opts.title || 'No description provided';
|
|
722
|
+
// Load config to get auth token if available
|
|
723
|
+
let authToken;
|
|
724
|
+
try {
|
|
725
|
+
const { loadConfig } = await import('./core/Config.js');
|
|
726
|
+
const config = loadConfig(opts.dir);
|
|
727
|
+
authToken = config.authToken;
|
|
728
|
+
}
|
|
729
|
+
catch { /* project may not be initialized yet */ }
|
|
730
|
+
try {
|
|
731
|
+
const headers = { 'Content-Type': 'application/json' };
|
|
732
|
+
if (authToken)
|
|
733
|
+
headers['Authorization'] = `Bearer ${authToken}`;
|
|
734
|
+
const response = await fetch(`http://localhost:${port}/feedback`, {
|
|
735
|
+
method: 'POST',
|
|
736
|
+
headers,
|
|
737
|
+
body: JSON.stringify({ type: opts.type, title, description }),
|
|
738
|
+
signal: AbortSignal.timeout(10_000),
|
|
739
|
+
});
|
|
740
|
+
if (response.ok) {
|
|
741
|
+
const result = await response.json();
|
|
742
|
+
console.log(`Feedback submitted: ${result.id}`);
|
|
743
|
+
console.log(`Forwarded upstream: ${result.forwarded ? 'yes' : 'no (will retry later)'}`);
|
|
744
|
+
}
|
|
745
|
+
else {
|
|
746
|
+
console.error(`Failed to submit feedback: ${response.statusText}`);
|
|
747
|
+
console.error('Is the instar server running? Try: instar server start');
|
|
748
|
+
process.exit(1);
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
catch {
|
|
752
|
+
console.error('Could not connect to instar server. Is it running?');
|
|
753
|
+
console.error('Start it with: instar server start');
|
|
754
|
+
process.exit(1);
|
|
755
|
+
}
|
|
756
|
+
});
|
|
757
|
+
// ── Telemetry (Baseline) ──────────────────────────────────────────
|
|
758
|
+
const telemetryCmd = program
|
|
759
|
+
.command('telemetry')
|
|
760
|
+
.description('Manage Baseline telemetry — anonymous cross-agent metrics');
|
|
761
|
+
telemetryCmd
|
|
762
|
+
.command('status')
|
|
763
|
+
.description('Show current Baseline telemetry status')
|
|
764
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
765
|
+
.option('--port <port>', 'Server port (default: 4040)', (v) => parseInt(v, 10))
|
|
766
|
+
.action(async (opts) => {
|
|
767
|
+
const port = opts.port || 4040;
|
|
768
|
+
let authToken;
|
|
769
|
+
try {
|
|
770
|
+
const { loadConfig } = await import('./core/Config.js');
|
|
771
|
+
const config = loadConfig(opts.dir);
|
|
772
|
+
authToken = config.authToken;
|
|
773
|
+
}
|
|
774
|
+
catch { /* project may not be initialized */ }
|
|
775
|
+
try {
|
|
776
|
+
const headers = {};
|
|
777
|
+
if (authToken)
|
|
778
|
+
headers['Authorization'] = `Bearer ${authToken}`;
|
|
779
|
+
const response = await fetch(`http://localhost:${port}/telemetry/status`, {
|
|
780
|
+
headers,
|
|
781
|
+
signal: AbortSignal.timeout(5000),
|
|
782
|
+
});
|
|
783
|
+
if (response.ok) {
|
|
784
|
+
const status = await response.json();
|
|
785
|
+
const baseline = status.baseline;
|
|
786
|
+
const pc = (await import('picocolors')).default;
|
|
787
|
+
console.log(pc.bold('Baseline Telemetry'));
|
|
788
|
+
console.log(` Enabled: ${status.enabled ? pc.green('yes') : pc.dim('no')}`);
|
|
789
|
+
console.log(` Provisioned: ${baseline?.provisioned ? pc.green('yes') : pc.dim('no')}`);
|
|
790
|
+
if (baseline?.installationIdPrefix) {
|
|
791
|
+
console.log(` Installation: ${baseline.installationIdPrefix}...`);
|
|
792
|
+
}
|
|
793
|
+
if (baseline?.lastSubmission) {
|
|
794
|
+
console.log(` Last sent: ${baseline.lastSubmission}`);
|
|
795
|
+
}
|
|
796
|
+
if (baseline?.nextWindow) {
|
|
797
|
+
console.log(` Next window: ${baseline.nextWindow}`);
|
|
798
|
+
}
|
|
799
|
+
if (baseline?.lastErrorCode) {
|
|
800
|
+
console.log(` Last error: ${pc.red(String(baseline.lastErrorCode))}`);
|
|
801
|
+
}
|
|
802
|
+
}
|
|
803
|
+
else {
|
|
804
|
+
console.error(`Failed to get status: ${response.statusText}`);
|
|
805
|
+
process.exit(1);
|
|
806
|
+
}
|
|
807
|
+
}
|
|
808
|
+
catch {
|
|
809
|
+
console.error('Could not connect to instar server. Is it running?');
|
|
810
|
+
process.exit(1);
|
|
811
|
+
}
|
|
812
|
+
});
|
|
813
|
+
telemetryCmd
|
|
814
|
+
.command('enable')
|
|
815
|
+
.description('Enable Baseline — see how your agent compares to the population')
|
|
816
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
817
|
+
.option('--port <port>', 'Server port (default: 4040)', (v) => parseInt(v, 10))
|
|
818
|
+
.action(async (opts) => {
|
|
819
|
+
const port = opts.port || 4040;
|
|
820
|
+
const pc = (await import('picocolors')).default;
|
|
821
|
+
const readline = await import('node:readline');
|
|
822
|
+
// Show consent disclosure
|
|
823
|
+
console.log(pc.bold('\n┌─ Enable Baseline ─────────────────────────────────────────┐'));
|
|
824
|
+
console.log('│ │');
|
|
825
|
+
console.log('│ Baseline helps your agent know if it\'s healthy by │');
|
|
826
|
+
console.log('│ comparing its behavior to the population — anonymously. │');
|
|
827
|
+
console.log('│ │');
|
|
828
|
+
console.log(pc.bold('│ What\'s collected:'));
|
|
829
|
+
console.log('│ • Job skip rates (with reasons), durations, results │');
|
|
830
|
+
console.log('│ • Model usage per job, schedule adherence │');
|
|
831
|
+
console.log('│ • Version, uptime, feature flags (curated list only) │');
|
|
832
|
+
console.log('│ • Session activity (coarse bucket, not exact count) │');
|
|
833
|
+
console.log('│ │');
|
|
834
|
+
console.log(pc.bold('│ What\'s NEVER collected:'));
|
|
835
|
+
console.log('│ • Names, prompts, memory, conversations, file paths │');
|
|
836
|
+
console.log('│ • Error messages, IP addresses, Telegram data │');
|
|
837
|
+
console.log('│ • Security configuration flags │');
|
|
838
|
+
console.log('│ │');
|
|
839
|
+
console.log(pc.bold('│ How it works:'));
|
|
840
|
+
console.log('│ • Anonymous ID: random UUID (not derived from your machine)│');
|
|
841
|
+
console.log('│ • Submitted to: instar-telemetry.sagemind-ai.workers.dev │');
|
|
842
|
+
console.log('│ • Frequency: every 6 hours │');
|
|
843
|
+
console.log('│ • Retention: 30 days (local and remote) │');
|
|
844
|
+
console.log('│ • Every submission is logged locally for your review: │');
|
|
845
|
+
console.log('│ run `instar telemetry submissions` to inspect │');
|
|
846
|
+
console.log('│ │');
|
|
847
|
+
console.log('│ You can disable at any time with `instar telemetry disable`│');
|
|
848
|
+
console.log('│ which deletes your local ID and requests remote deletion. │');
|
|
849
|
+
console.log(pc.bold('└──────────────────────────────────────────────────────────┘\n'));
|
|
850
|
+
// Ask for confirmation
|
|
851
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
852
|
+
const answer = await new Promise(resolve => {
|
|
853
|
+
rl.question(' Enable Baseline? [y/N] ', resolve);
|
|
854
|
+
});
|
|
855
|
+
rl.close();
|
|
856
|
+
if (answer.toLowerCase() !== 'y' && answer.toLowerCase() !== 'yes') {
|
|
857
|
+
console.log(pc.dim(' Declined. No data will be sent.'));
|
|
858
|
+
return;
|
|
859
|
+
}
|
|
860
|
+
let authToken;
|
|
861
|
+
try {
|
|
862
|
+
const { loadConfig } = await import('./core/Config.js');
|
|
863
|
+
const config = loadConfig(opts.dir);
|
|
864
|
+
authToken = config.authToken;
|
|
865
|
+
}
|
|
866
|
+
catch { /* project may not be initialized */ }
|
|
867
|
+
try {
|
|
868
|
+
const headers = { 'Content-Type': 'application/json' };
|
|
869
|
+
if (authToken)
|
|
870
|
+
headers['Authorization'] = `Bearer ${authToken}`;
|
|
871
|
+
const response = await fetch(`http://localhost:${port}/telemetry/enable`, {
|
|
872
|
+
method: 'POST',
|
|
873
|
+
headers,
|
|
874
|
+
signal: AbortSignal.timeout(5000),
|
|
875
|
+
});
|
|
876
|
+
if (response.ok) {
|
|
877
|
+
const result = await response.json();
|
|
878
|
+
console.log(pc.green(`\n ✓ ${result.message}`));
|
|
879
|
+
console.log(pc.dim(` Installation ID: ${result.installationId}`));
|
|
880
|
+
console.log(pc.dim(' Restart the server for submissions to begin.'));
|
|
881
|
+
}
|
|
882
|
+
else {
|
|
883
|
+
const err = await response.json();
|
|
884
|
+
console.error(pc.red(` Failed: ${err.error}`));
|
|
885
|
+
process.exit(1);
|
|
886
|
+
}
|
|
887
|
+
}
|
|
888
|
+
catch {
|
|
889
|
+
console.error('Could not connect to instar server. Is it running?');
|
|
890
|
+
process.exit(1);
|
|
891
|
+
}
|
|
892
|
+
});
|
|
893
|
+
telemetryCmd
|
|
894
|
+
.command('disable')
|
|
895
|
+
.description('Disable Baseline telemetry and delete local identity')
|
|
896
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
897
|
+
.option('--port <port>', 'Server port (default: 4040)', (v) => parseInt(v, 10))
|
|
898
|
+
.action(async (opts) => {
|
|
899
|
+
const port = opts.port || 4040;
|
|
900
|
+
const pc = (await import('picocolors')).default;
|
|
901
|
+
console.log(pc.yellow('\n Warning: Re-enabling telemetry will create a new identity.'));
|
|
902
|
+
console.log(pc.yellow(' Prior submission history is not recoverable.\n'));
|
|
903
|
+
const readline = await import('node:readline');
|
|
904
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
905
|
+
const answer = await new Promise(resolve => {
|
|
906
|
+
rl.question(' Disable Baseline and delete identity? [y/N] ', resolve);
|
|
907
|
+
});
|
|
908
|
+
rl.close();
|
|
909
|
+
if (answer.toLowerCase() !== 'y' && answer.toLowerCase() !== 'yes') {
|
|
910
|
+
console.log(pc.dim(' Cancelled.'));
|
|
911
|
+
return;
|
|
912
|
+
}
|
|
913
|
+
let authToken;
|
|
914
|
+
try {
|
|
915
|
+
const { loadConfig } = await import('./core/Config.js');
|
|
916
|
+
const config = loadConfig(opts.dir);
|
|
917
|
+
authToken = config.authToken;
|
|
918
|
+
}
|
|
919
|
+
catch { /* project may not be initialized */ }
|
|
920
|
+
try {
|
|
921
|
+
const headers = { 'Content-Type': 'application/json' };
|
|
922
|
+
if (authToken)
|
|
923
|
+
headers['Authorization'] = `Bearer ${authToken}`;
|
|
924
|
+
const response = await fetch(`http://localhost:${port}/telemetry/disable`, {
|
|
925
|
+
method: 'POST',
|
|
926
|
+
headers,
|
|
927
|
+
signal: AbortSignal.timeout(10000),
|
|
928
|
+
});
|
|
929
|
+
if (response.ok) {
|
|
930
|
+
const result = await response.json();
|
|
931
|
+
console.log(pc.green(` ✓ ${result.message}`));
|
|
932
|
+
if (result.remoteDeletion !== 'success') {
|
|
933
|
+
console.log(pc.dim(` Remote deletion: ${result.remoteDeletion}`));
|
|
934
|
+
}
|
|
935
|
+
}
|
|
936
|
+
else {
|
|
937
|
+
const err = await response.json();
|
|
938
|
+
console.error(pc.red(` Failed: ${err.error}`));
|
|
939
|
+
process.exit(1);
|
|
940
|
+
}
|
|
941
|
+
}
|
|
942
|
+
catch {
|
|
943
|
+
console.error('Could not connect to instar server. Is it running?');
|
|
944
|
+
process.exit(1);
|
|
945
|
+
}
|
|
946
|
+
});
|
|
947
|
+
telemetryCmd
|
|
948
|
+
.command('submissions')
|
|
949
|
+
.description('View the local transparency log of Baseline submissions')
|
|
950
|
+
.option('-n, --limit <limit>', 'Number of entries to show', (v) => parseInt(v, 10), 10)
|
|
951
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
952
|
+
.option('--port <port>', 'Server port (default: 4040)', (v) => parseInt(v, 10))
|
|
953
|
+
.action(async (opts) => {
|
|
954
|
+
const port = opts.port || 4040;
|
|
955
|
+
let authToken;
|
|
956
|
+
try {
|
|
957
|
+
const { loadConfig } = await import('./core/Config.js');
|
|
958
|
+
const config = loadConfig(opts.dir);
|
|
959
|
+
authToken = config.authToken;
|
|
960
|
+
}
|
|
961
|
+
catch { /* project may not be initialized */ }
|
|
962
|
+
try {
|
|
963
|
+
const headers = {};
|
|
964
|
+
if (authToken)
|
|
965
|
+
headers['Authorization'] = `Bearer ${authToken}`;
|
|
966
|
+
const response = await fetch(`http://localhost:${port}/telemetry/submissions?limit=${opts.limit}`, {
|
|
967
|
+
headers,
|
|
968
|
+
signal: AbortSignal.timeout(5000),
|
|
969
|
+
});
|
|
970
|
+
if (response.ok) {
|
|
971
|
+
const { submissions } = await response.json();
|
|
972
|
+
const pc = (await import('picocolors')).default;
|
|
973
|
+
if (submissions.length === 0) {
|
|
974
|
+
console.log(pc.dim('No Baseline submissions yet.'));
|
|
975
|
+
return;
|
|
976
|
+
}
|
|
977
|
+
for (const sub of submissions) {
|
|
978
|
+
const status = sub.responseStatus === 200 ? pc.green('✓') : pc.red(`✗ ${sub.responseStatus}`);
|
|
979
|
+
const jobCount = sub.payload?.jobs?.skips?.length ?? 0;
|
|
980
|
+
console.log(`${status} ${sub.timestamp} (${jobCount} skip metrics)`);
|
|
981
|
+
}
|
|
982
|
+
console.log(pc.dim(`\nShowing ${submissions.length} most recent. Use --limit for more.`));
|
|
983
|
+
}
|
|
984
|
+
else {
|
|
985
|
+
console.error(`Failed: ${response.statusText}`);
|
|
986
|
+
process.exit(1);
|
|
987
|
+
}
|
|
988
|
+
}
|
|
989
|
+
catch {
|
|
990
|
+
console.error('Could not connect to instar server. Is it running?');
|
|
991
|
+
process.exit(1);
|
|
992
|
+
}
|
|
993
|
+
});
|
|
994
|
+
telemetryCmd
|
|
995
|
+
.command('purge')
|
|
996
|
+
.description('Request remote data deletion (secret-loss fallback)')
|
|
997
|
+
.option('--force', 'Use unsigned deletion with 72h grace period')
|
|
998
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
999
|
+
.option('--port <port>', 'Server port (default: 4040)', (v) => parseInt(v, 10))
|
|
1000
|
+
.action(async (opts) => {
|
|
1001
|
+
if (!opts.force) {
|
|
1002
|
+
console.error('This command requires --force. It sends an unsigned DELETE with a 72-hour grace period.');
|
|
1003
|
+
console.error('Use `instar telemetry disable` for normal deactivation.');
|
|
1004
|
+
process.exit(1);
|
|
1005
|
+
}
|
|
1006
|
+
const pc = (await import('picocolors')).default;
|
|
1007
|
+
console.log(pc.yellow('\n This sends an unsigned DELETE request with a 72-hour grace period.'));
|
|
1008
|
+
console.log(pc.yellow(' During those 72 hours, anyone with the original secret can cancel it.\n'));
|
|
1009
|
+
const readline = await import('node:readline');
|
|
1010
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
1011
|
+
const answer = await new Promise(resolve => {
|
|
1012
|
+
rl.question(' Proceed with unsigned purge? [y/N] ', resolve);
|
|
1013
|
+
});
|
|
1014
|
+
rl.close();
|
|
1015
|
+
if (answer.toLowerCase() !== 'y' && answer.toLowerCase() !== 'yes') {
|
|
1016
|
+
console.log(pc.dim(' Cancelled.'));
|
|
1017
|
+
return;
|
|
1018
|
+
}
|
|
1019
|
+
// Read install-id from state dir (even if secret is lost)
|
|
1020
|
+
let installationId;
|
|
1021
|
+
try {
|
|
1022
|
+
const { loadConfig } = await import('./core/Config.js');
|
|
1023
|
+
const config = loadConfig(opts.dir);
|
|
1024
|
+
const { TelemetryAuth } = await import('./monitoring/TelemetryAuth.js');
|
|
1025
|
+
const auth = new TelemetryAuth(config.stateDir);
|
|
1026
|
+
installationId = auth.getInstallationId() ?? undefined;
|
|
1027
|
+
}
|
|
1028
|
+
catch { /* best-effort */ }
|
|
1029
|
+
if (!installationId) {
|
|
1030
|
+
console.error(pc.red(' Cannot find installation ID. No telemetry identity to purge.'));
|
|
1031
|
+
process.exit(1);
|
|
1032
|
+
}
|
|
1033
|
+
try {
|
|
1034
|
+
const controller = new AbortController();
|
|
1035
|
+
const timeout = setTimeout(() => controller.abort(), 10000);
|
|
1036
|
+
const resp = await fetch(`https://instar-telemetry.sagemind-ai.workers.dev/v1/telemetry/${installationId}`, {
|
|
1037
|
+
method: 'DELETE',
|
|
1038
|
+
headers: { 'X-Instar-Purge-Reason': 'secret-lost' },
|
|
1039
|
+
signal: controller.signal,
|
|
1040
|
+
});
|
|
1041
|
+
clearTimeout(timeout);
|
|
1042
|
+
if (resp.ok) {
|
|
1043
|
+
console.log(pc.green(' ✓ Unsigned purge request accepted. Data will be deleted in 72 hours.'));
|
|
1044
|
+
console.log(pc.dim(' The original secret holder can cancel this within that window.'));
|
|
1045
|
+
}
|
|
1046
|
+
else {
|
|
1047
|
+
console.error(pc.red(` Purge request failed: ${resp.status} ${resp.statusText}`));
|
|
1048
|
+
process.exit(1);
|
|
1049
|
+
}
|
|
1050
|
+
}
|
|
1051
|
+
catch {
|
|
1052
|
+
console.error(pc.red(' Network error — could not reach telemetry endpoint.'));
|
|
1053
|
+
process.exit(1);
|
|
1054
|
+
}
|
|
1055
|
+
});
|
|
1056
|
+
// ── Server ────────────────────────────────────────────────────────
|
|
1057
|
+
/** Guard: prevent sessions from inadvertently starting/stopping/restarting the server. */
|
|
1058
|
+
function rejectIfInsideSession(action) {
|
|
1059
|
+
if (process.env.INSTAR_SESSION_ID) {
|
|
1060
|
+
console.error(pc.red(`Cannot '${action}' from inside a session (session ${process.env.INSTAR_SESSION_ID}).`));
|
|
1061
|
+
console.error(pc.dim('The server is managed by the supervisor. Sessions should not start, stop, or restart it.'));
|
|
1062
|
+
return true;
|
|
1063
|
+
}
|
|
1064
|
+
return false;
|
|
1065
|
+
}
|
|
1066
|
+
const serverCmd = program
|
|
1067
|
+
.command('server')
|
|
1068
|
+
.description('Manage the persistent agent server');
|
|
1069
|
+
serverCmd
|
|
1070
|
+
.command('start [name]')
|
|
1071
|
+
.description('Start the agent server (optional: standalone agent name)')
|
|
1072
|
+
.option('--foreground', 'Run in foreground (default: background via tmux)')
|
|
1073
|
+
.option('--no-telegram', 'Skip Telegram polling (use when lifeline manages Telegram)')
|
|
1074
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1075
|
+
.action(async (name, opts) => {
|
|
1076
|
+
if (rejectIfInsideSession('server start'))
|
|
1077
|
+
return;
|
|
1078
|
+
if (name && !opts.dir) {
|
|
1079
|
+
// Resolve standalone agent name to directory
|
|
1080
|
+
const { resolveAgentDir } = await import('./core/Config.js');
|
|
1081
|
+
try {
|
|
1082
|
+
opts.dir = resolveAgentDir(name);
|
|
1083
|
+
}
|
|
1084
|
+
catch (err) {
|
|
1085
|
+
console.log(pc.red(`Agent "${name}" not found: ${err instanceof Error ? err.message : err}`));
|
|
1086
|
+
process.exit(1);
|
|
1087
|
+
}
|
|
1088
|
+
}
|
|
1089
|
+
return startServer(opts);
|
|
1090
|
+
});
|
|
1091
|
+
serverCmd
|
|
1092
|
+
.command('stop [name]')
|
|
1093
|
+
.description('Stop the agent server (optional: standalone agent name)')
|
|
1094
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1095
|
+
.action(async (name, opts) => {
|
|
1096
|
+
if (rejectIfInsideSession('server stop'))
|
|
1097
|
+
return;
|
|
1098
|
+
if (name && !opts.dir) {
|
|
1099
|
+
const { resolveAgentDir } = await import('./core/Config.js');
|
|
1100
|
+
try {
|
|
1101
|
+
opts.dir = resolveAgentDir(name);
|
|
1102
|
+
}
|
|
1103
|
+
catch (err) {
|
|
1104
|
+
console.log(pc.red(`Agent "${name}" not found: ${err instanceof Error ? err.message : err}`));
|
|
1105
|
+
process.exit(1);
|
|
1106
|
+
}
|
|
1107
|
+
}
|
|
1108
|
+
return stopServer(opts);
|
|
1109
|
+
});
|
|
1110
|
+
serverCmd
|
|
1111
|
+
.command('restart [name]')
|
|
1112
|
+
.description('Restart the agent server (handles launchd/systemd lifecycle)')
|
|
1113
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1114
|
+
.action(async (name, opts) => {
|
|
1115
|
+
if (rejectIfInsideSession('server restart'))
|
|
1116
|
+
return;
|
|
1117
|
+
if (name && !opts.dir) {
|
|
1118
|
+
const { resolveAgentDir } = await import('./core/Config.js');
|
|
1119
|
+
try {
|
|
1120
|
+
opts.dir = resolveAgentDir(name);
|
|
1121
|
+
}
|
|
1122
|
+
catch (err) {
|
|
1123
|
+
console.log(pc.red(`Agent "${name}" not found: ${err instanceof Error ? err.message : err}`));
|
|
1124
|
+
process.exit(1);
|
|
1125
|
+
}
|
|
1126
|
+
}
|
|
1127
|
+
return restartServer(opts);
|
|
1128
|
+
});
|
|
1129
|
+
// ── Status ────────────────────────────────────────────────────────
|
|
1130
|
+
program
|
|
1131
|
+
.command('status [name]')
|
|
1132
|
+
.description('Show agent infrastructure status (optional: standalone agent name)')
|
|
1133
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1134
|
+
.action(async (name, opts) => {
|
|
1135
|
+
if (name && !opts.dir) {
|
|
1136
|
+
const { resolveAgentDir } = await import('./core/Config.js');
|
|
1137
|
+
try {
|
|
1138
|
+
opts.dir = resolveAgentDir(name);
|
|
1139
|
+
}
|
|
1140
|
+
catch (err) {
|
|
1141
|
+
console.log(pc.red(`Agent "${name}" not found: ${err instanceof Error ? err.message : err}`));
|
|
1142
|
+
process.exit(1);
|
|
1143
|
+
}
|
|
1144
|
+
}
|
|
1145
|
+
return showStatus(opts);
|
|
1146
|
+
});
|
|
1147
|
+
// ── User ──────────────────────────────────────────────────────────
|
|
1148
|
+
const userCmd = program
|
|
1149
|
+
.command('user')
|
|
1150
|
+
.description('Manage users');
|
|
1151
|
+
userCmd
|
|
1152
|
+
.command('add')
|
|
1153
|
+
.description('Add a user profile')
|
|
1154
|
+
.requiredOption('--id <id>', 'User ID')
|
|
1155
|
+
.requiredOption('--name <name>', 'User display name')
|
|
1156
|
+
.option('--telegram <topicId>', 'Telegram topic ID')
|
|
1157
|
+
.option('--email <email>', 'Email address')
|
|
1158
|
+
.option('--slack <userId>', 'Slack user ID')
|
|
1159
|
+
.option('--permissions <perms>', 'Comma-separated permissions', (v) => v.split(','))
|
|
1160
|
+
.action(addUser);
|
|
1161
|
+
userCmd
|
|
1162
|
+
.command('list')
|
|
1163
|
+
.description('List all users')
|
|
1164
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1165
|
+
.action(listUsers);
|
|
1166
|
+
// ── Relationship ─────────────────────────────────────────────────
|
|
1167
|
+
const relCmd = program
|
|
1168
|
+
.command('relationship')
|
|
1169
|
+
.description('Manage relationship records (PROP-166)');
|
|
1170
|
+
relCmd
|
|
1171
|
+
.command('list')
|
|
1172
|
+
.description('List all tracked relationships')
|
|
1173
|
+
.option('--sort <by>', 'Sort by: significance, recent, name', 'significance')
|
|
1174
|
+
.action(listRelationships);
|
|
1175
|
+
relCmd
|
|
1176
|
+
.command('import')
|
|
1177
|
+
.description('Import relationships from Portal people-registry export')
|
|
1178
|
+
.requiredOption('--file <path>', 'Path to Portal export JSON file')
|
|
1179
|
+
.option('--dry-run', 'Preview what would be imported without making changes')
|
|
1180
|
+
.action(importRelationships);
|
|
1181
|
+
relCmd
|
|
1182
|
+
.command('export')
|
|
1183
|
+
.description('Export relationships for Portal import')
|
|
1184
|
+
.option('--file <path>', 'Output file path (stdout if omitted)')
|
|
1185
|
+
.option('--min-significance <n>', 'Minimum significance (1-10) to include', '0')
|
|
1186
|
+
.action(exportRelationships);
|
|
1187
|
+
// ── Job ───────────────────────────────────────────────────────────
|
|
1188
|
+
const jobCmd = program
|
|
1189
|
+
.command('job')
|
|
1190
|
+
.description('Manage scheduled jobs');
|
|
1191
|
+
jobCmd
|
|
1192
|
+
.command('add')
|
|
1193
|
+
.description('Add a job definition')
|
|
1194
|
+
.requiredOption('--slug <slug>', 'Job identifier')
|
|
1195
|
+
.requiredOption('--name <name>', 'Job display name')
|
|
1196
|
+
.requiredOption('--schedule <cron>', 'Cron expression')
|
|
1197
|
+
.option('--description <desc>', 'Job description')
|
|
1198
|
+
.option('--priority <priority>', 'Priority (critical|high|medium|low)', 'medium')
|
|
1199
|
+
.option('--model <model>', 'Model tier (opus|sonnet|haiku)', 'opus')
|
|
1200
|
+
.option('--type <type>', 'Execution type (skill|prompt|script)', 'prompt')
|
|
1201
|
+
.option('--execute <value>', 'Execution value (skill name, prompt text, or script path)')
|
|
1202
|
+
.action(addJob);
|
|
1203
|
+
jobCmd
|
|
1204
|
+
.command('list')
|
|
1205
|
+
.description('List all jobs')
|
|
1206
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1207
|
+
.action(listJobs);
|
|
1208
|
+
jobCmd
|
|
1209
|
+
.command('handoff <slug>')
|
|
1210
|
+
.description('Write handoff notes for the next execution of a job')
|
|
1211
|
+
.requiredOption('--notes <notes>', 'Handoff notes (human-readable context for next execution)')
|
|
1212
|
+
.option('--state <json>', 'JSON state snapshot to pass to next execution')
|
|
1213
|
+
.option('--run-id <runId>', 'Specific run ID (defaults to most recent pending/active run)')
|
|
1214
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1215
|
+
.action(async (slug, opts) => {
|
|
1216
|
+
const { jobHandoff } = await import('./commands/job.js');
|
|
1217
|
+
await jobHandoff(slug, opts);
|
|
1218
|
+
});
|
|
1219
|
+
jobCmd
|
|
1220
|
+
.command('history [slug]')
|
|
1221
|
+
.description('Show job run history with handoff notes')
|
|
1222
|
+
.option('-n, --limit <n>', 'Number of runs to show (default: 10)', (v) => parseInt(v, 10))
|
|
1223
|
+
.option('--handoff-only', 'Only show runs with handoff notes')
|
|
1224
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1225
|
+
.action(async (slug, opts) => {
|
|
1226
|
+
const { jobHistory } = await import('./commands/job.js');
|
|
1227
|
+
await jobHistory(slug, opts);
|
|
1228
|
+
});
|
|
1229
|
+
jobCmd
|
|
1230
|
+
.command('continuity <slug>')
|
|
1231
|
+
.description('Show what the next execution of a job will inherit (handoff notes, state)')
|
|
1232
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1233
|
+
.action(async (slug, _opts) => {
|
|
1234
|
+
const { jobContinuity } = await import('./commands/job.js');
|
|
1235
|
+
await jobContinuity(slug);
|
|
1236
|
+
});
|
|
1237
|
+
// ── Lifeline ──────────────────────────────────────────────────────
|
|
1238
|
+
const lifelineCmd = program
|
|
1239
|
+
.command('lifeline')
|
|
1240
|
+
.description('Manage the Telegram lifeline (persistent Telegram connection)');
|
|
1241
|
+
lifelineCmd
|
|
1242
|
+
.command('start')
|
|
1243
|
+
.description('Start the Telegram lifeline (owns Telegram polling, supervises server)')
|
|
1244
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1245
|
+
.action(async (opts) => {
|
|
1246
|
+
const { TelegramLifeline } = await import('./lifeline/TelegramLifeline.js');
|
|
1247
|
+
try {
|
|
1248
|
+
const lifeline = new TelegramLifeline(opts.dir);
|
|
1249
|
+
await lifeline.start();
|
|
1250
|
+
}
|
|
1251
|
+
catch (err) {
|
|
1252
|
+
console.error(pc.red(`Failed to start lifeline: ${err instanceof Error ? err.message : err}`));
|
|
1253
|
+
process.exit(1);
|
|
1254
|
+
}
|
|
1255
|
+
});
|
|
1256
|
+
lifelineCmd
|
|
1257
|
+
.command('stop')
|
|
1258
|
+
.description('Stop the Telegram lifeline')
|
|
1259
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1260
|
+
.action(async (opts) => {
|
|
1261
|
+
// The lifeline runs in a tmux session — kill it
|
|
1262
|
+
const { loadConfig, detectTmuxPath } = await import('./core/Config.js');
|
|
1263
|
+
const config = loadConfig(opts.dir);
|
|
1264
|
+
const tmuxPath = detectTmuxPath();
|
|
1265
|
+
const sessionName = `${config.projectName}-lifeline`;
|
|
1266
|
+
if (!tmuxPath) {
|
|
1267
|
+
console.log(pc.red('tmux not found'));
|
|
1268
|
+
process.exit(1);
|
|
1269
|
+
}
|
|
1270
|
+
try {
|
|
1271
|
+
const { execFileSync } = await import('node:child_process');
|
|
1272
|
+
execFileSync(tmuxPath, ['has-session', '-t', `=${sessionName}`], { stdio: 'ignore' });
|
|
1273
|
+
execFileSync(tmuxPath, ['send-keys', '-t', `=${sessionName}:`, 'C-c'], { stdio: 'ignore' });
|
|
1274
|
+
// Wait briefly for graceful shutdown
|
|
1275
|
+
await new Promise(r => setTimeout(r, 3000));
|
|
1276
|
+
try {
|
|
1277
|
+
execFileSync(tmuxPath, ['kill-session', '-t', `=${sessionName}`], { stdio: 'ignore' });
|
|
1278
|
+
}
|
|
1279
|
+
catch { /* already dead */ }
|
|
1280
|
+
console.log(pc.green(`Lifeline stopped (session: ${sessionName})`));
|
|
1281
|
+
}
|
|
1282
|
+
catch {
|
|
1283
|
+
console.log(pc.yellow(`No lifeline running (no tmux session: ${sessionName})`));
|
|
1284
|
+
}
|
|
1285
|
+
});
|
|
1286
|
+
lifelineCmd
|
|
1287
|
+
.command('status')
|
|
1288
|
+
.description('Check lifeline status')
|
|
1289
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1290
|
+
.action(async (opts) => {
|
|
1291
|
+
const { loadConfig, detectTmuxPath } = await import('./core/Config.js');
|
|
1292
|
+
const config = loadConfig(opts.dir);
|
|
1293
|
+
const tmuxPath = detectTmuxPath();
|
|
1294
|
+
const sessionName = `${config.projectName}-lifeline`;
|
|
1295
|
+
if (!tmuxPath) {
|
|
1296
|
+
console.log(pc.red('tmux not found'));
|
|
1297
|
+
process.exit(1);
|
|
1298
|
+
}
|
|
1299
|
+
try {
|
|
1300
|
+
const { execFileSync } = await import('node:child_process');
|
|
1301
|
+
execFileSync(tmuxPath, ['has-session', '-t', `=${sessionName}`], { stdio: 'ignore' });
|
|
1302
|
+
console.log(pc.green(`Lifeline is running (tmux session: ${sessionName})`));
|
|
1303
|
+
console.log(` Attach: tmux attach -t '=${sessionName}'`);
|
|
1304
|
+
}
|
|
1305
|
+
catch {
|
|
1306
|
+
console.log(pc.yellow('Lifeline is not running'));
|
|
1307
|
+
console.log(` Start: instar lifeline start`);
|
|
1308
|
+
}
|
|
1309
|
+
});
|
|
1310
|
+
// ── List (replaces Instances) ─────────────────────────────────────
|
|
1311
|
+
function showAgentList() {
|
|
1312
|
+
const agents = listAgents();
|
|
1313
|
+
if (agents.length === 0) {
|
|
1314
|
+
console.log(pc.dim('No Instar agents registered.'));
|
|
1315
|
+
console.log(pc.dim('Start a server with: instar server start'));
|
|
1316
|
+
return;
|
|
1317
|
+
}
|
|
1318
|
+
console.log(pc.bold(`\n Instar Agents (${agents.length})\n`));
|
|
1319
|
+
for (const entry of agents) {
|
|
1320
|
+
const age = Math.round((Date.now() - new Date(entry.createdAt).getTime()) / 60000);
|
|
1321
|
+
const heartbeatAge = Math.round((Date.now() - new Date(entry.lastHeartbeat).getTime()) / 60000);
|
|
1322
|
+
const statusIcon = entry.status === 'running' && heartbeatAge < 3
|
|
1323
|
+
? pc.green('●')
|
|
1324
|
+
: entry.status === 'running'
|
|
1325
|
+
? pc.yellow('●')
|
|
1326
|
+
: pc.dim('○');
|
|
1327
|
+
const typeLabel = entry.type === 'standalone' ? pc.magenta(' [standalone]') : '';
|
|
1328
|
+
console.log(` ${statusIcon} ${pc.bold(entry.name)}${typeLabel}`);
|
|
1329
|
+
console.log(` Port: ${pc.cyan(String(entry.port))} PID: ${entry.pid} Status: ${entry.status} Heartbeat: ${heartbeatAge}m ago`);
|
|
1330
|
+
console.log(` Dir: ${pc.dim(entry.path)}`);
|
|
1331
|
+
console.log();
|
|
1332
|
+
}
|
|
1333
|
+
}
|
|
1334
|
+
program
|
|
1335
|
+
.command('list')
|
|
1336
|
+
.description('List all registered agents on this machine')
|
|
1337
|
+
.action(showAgentList);
|
|
1338
|
+
// Hidden alias for backward compatibility
|
|
1339
|
+
program
|
|
1340
|
+
.command('instances', { hidden: true })
|
|
1341
|
+
.action(() => {
|
|
1342
|
+
console.warn(pc.yellow('⚠ "instar instances" is deprecated. Use "instar list" instead.'));
|
|
1343
|
+
showAgentList();
|
|
1344
|
+
});
|
|
1345
|
+
// ── Auto-Start ───────────────────────────────────────────────────
|
|
1346
|
+
const autostartCmd = program
|
|
1347
|
+
.command('autostart')
|
|
1348
|
+
.description('Manage auto-start on login (agent starts when you log into your computer)');
|
|
1349
|
+
autostartCmd
|
|
1350
|
+
.command('install')
|
|
1351
|
+
.description('Install auto-start so your agent starts on login')
|
|
1352
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1353
|
+
.action(async (opts) => {
|
|
1354
|
+
const { loadConfig } = await import('./core/Config.js');
|
|
1355
|
+
const { installAutoStart } = await import('./commands/setup.js');
|
|
1356
|
+
const config = loadConfig(opts.dir);
|
|
1357
|
+
const hasTelegram = config.messaging?.some((m) => m.type === 'telegram') ?? false;
|
|
1358
|
+
const installed = installAutoStart(config.projectName, config.projectDir, hasTelegram);
|
|
1359
|
+
if (installed) {
|
|
1360
|
+
console.log(pc.green(`Auto-start installed for "${config.projectName}".`));
|
|
1361
|
+
console.log(pc.dim('Your agent will start automatically when you log in.'));
|
|
1362
|
+
}
|
|
1363
|
+
else {
|
|
1364
|
+
console.log(pc.red('Failed to install auto-start.'));
|
|
1365
|
+
console.log(pc.dim(`Platform: ${process.platform} — auto-start supports macOS and Linux.`));
|
|
1366
|
+
}
|
|
1367
|
+
});
|
|
1368
|
+
autostartCmd
|
|
1369
|
+
.command('uninstall')
|
|
1370
|
+
.description('Remove auto-start')
|
|
1371
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1372
|
+
.action(async (opts) => {
|
|
1373
|
+
const { loadConfig } = await import('./core/Config.js');
|
|
1374
|
+
const { uninstallAutoStart } = await import('./commands/setup.js');
|
|
1375
|
+
const config = loadConfig(opts.dir);
|
|
1376
|
+
const removed = uninstallAutoStart(config.projectName);
|
|
1377
|
+
if (removed) {
|
|
1378
|
+
console.log(pc.green(`Auto-start removed for "${config.projectName}".`));
|
|
1379
|
+
}
|
|
1380
|
+
else {
|
|
1381
|
+
console.log(pc.yellow('No auto-start found to remove.'));
|
|
1382
|
+
}
|
|
1383
|
+
});
|
|
1384
|
+
autostartCmd
|
|
1385
|
+
.command('status')
|
|
1386
|
+
.description('Check if auto-start is installed')
|
|
1387
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1388
|
+
.action(async (opts) => {
|
|
1389
|
+
const { loadConfig } = await import('./core/Config.js');
|
|
1390
|
+
const config = loadConfig(opts.dir);
|
|
1391
|
+
const os = await import('node:os');
|
|
1392
|
+
const fs = await import('node:fs');
|
|
1393
|
+
const path = await import('node:path');
|
|
1394
|
+
if (process.platform === 'darwin') {
|
|
1395
|
+
const label = `ai.instar.${config.projectName}`;
|
|
1396
|
+
const plistPath = path.join(os.homedir(), 'Library', 'LaunchAgents', `${label}.plist`);
|
|
1397
|
+
if (fs.existsSync(plistPath)) {
|
|
1398
|
+
console.log(pc.green(`Auto-start is installed (macOS LaunchAgent: ${label})`));
|
|
1399
|
+
console.log(pc.dim(` Plist: ${plistPath}`));
|
|
1400
|
+
}
|
|
1401
|
+
else {
|
|
1402
|
+
console.log(pc.yellow('Auto-start is not installed.'));
|
|
1403
|
+
console.log(pc.dim(' Install with: instar autostart install'));
|
|
1404
|
+
}
|
|
1405
|
+
}
|
|
1406
|
+
else if (process.platform === 'linux') {
|
|
1407
|
+
const serviceName = `instar-${config.projectName}.service`;
|
|
1408
|
+
const servicePath = path.join(os.homedir(), '.config', 'systemd', 'user', serviceName);
|
|
1409
|
+
if (fs.existsSync(servicePath)) {
|
|
1410
|
+
console.log(pc.green(`Auto-start is installed (systemd user service: ${serviceName})`));
|
|
1411
|
+
console.log(pc.dim(` Service: ${servicePath}`));
|
|
1412
|
+
}
|
|
1413
|
+
else {
|
|
1414
|
+
console.log(pc.yellow('Auto-start is not installed.'));
|
|
1415
|
+
console.log(pc.dim(' Install with: instar autostart install'));
|
|
1416
|
+
}
|
|
1417
|
+
}
|
|
1418
|
+
else {
|
|
1419
|
+
console.log(pc.yellow(`Auto-start is not supported on ${process.platform}.`));
|
|
1420
|
+
}
|
|
1421
|
+
});
|
|
1422
|
+
// Hidden command: run post-update migration from the NEW binary
|
|
1423
|
+
// Called by the auto-updater after `npm install -g` to ensure
|
|
1424
|
+
// migrations use the latest code, not the old in-memory modules.
|
|
1425
|
+
program
|
|
1426
|
+
.command('migrate')
|
|
1427
|
+
.description('Run post-update knowledge migration')
|
|
1428
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1429
|
+
.action(async (opts) => {
|
|
1430
|
+
try {
|
|
1431
|
+
const { loadConfig } = await import('./core/Config.js');
|
|
1432
|
+
const { PostUpdateMigrator } = await import('./core/PostUpdateMigrator.js');
|
|
1433
|
+
const { UpgradeGuideProcessor } = await import('./core/UpgradeGuideProcessor.js');
|
|
1434
|
+
const { getInstarVersion } = await import('./core/Config.js');
|
|
1435
|
+
const config = loadConfig(opts.dir);
|
|
1436
|
+
const hasTelegram = config.messaging?.some((m) => m.type === 'telegram') ?? false;
|
|
1437
|
+
// Layer 1: Mechanical migrations (hooks, scripts, CLAUDE.md patches)
|
|
1438
|
+
const migrator = new PostUpdateMigrator({
|
|
1439
|
+
projectDir: config.projectDir,
|
|
1440
|
+
stateDir: config.stateDir,
|
|
1441
|
+
port: config.port,
|
|
1442
|
+
hasTelegram,
|
|
1443
|
+
projectName: config.projectName,
|
|
1444
|
+
});
|
|
1445
|
+
const result = migrator.migrate();
|
|
1446
|
+
// Read previously-migrated version so we only deliver guides for NEW versions
|
|
1447
|
+
let previousVersion;
|
|
1448
|
+
try {
|
|
1449
|
+
const versionFile = path.join(config.stateDir, 'state', 'last-migrated-version.json');
|
|
1450
|
+
previousVersion = JSON.parse(fs.readFileSync(versionFile, 'utf-8')).version || undefined;
|
|
1451
|
+
}
|
|
1452
|
+
catch { /* first run — no previous version */ }
|
|
1453
|
+
// Layer 2: Upgrade guide delivery (intelligent knowledge upgrades)
|
|
1454
|
+
const guideProcessor = new UpgradeGuideProcessor({
|
|
1455
|
+
stateDir: config.stateDir,
|
|
1456
|
+
currentVersion: getInstarVersion(),
|
|
1457
|
+
previousVersion,
|
|
1458
|
+
});
|
|
1459
|
+
const guideResult = guideProcessor.process();
|
|
1460
|
+
// Combined output for the calling process
|
|
1461
|
+
console.log(JSON.stringify({
|
|
1462
|
+
...result,
|
|
1463
|
+
upgradeGuide: guideResult.pendingGuides.length > 0 ? {
|
|
1464
|
+
versions: guideResult.pendingGuides,
|
|
1465
|
+
content: guideResult.guideContent,
|
|
1466
|
+
pendingGuidePath: guideResult.pendingGuidePath,
|
|
1467
|
+
} : null,
|
|
1468
|
+
}));
|
|
1469
|
+
}
|
|
1470
|
+
catch (err) {
|
|
1471
|
+
console.error(JSON.stringify({ error: err instanceof Error ? err.message : String(err) }));
|
|
1472
|
+
process.exit(1);
|
|
1473
|
+
}
|
|
1474
|
+
});
|
|
1475
|
+
// Mark pending upgrade guide as processed (called by agent after reading)
|
|
1476
|
+
program
|
|
1477
|
+
.command('upgrade-ack')
|
|
1478
|
+
.description('Acknowledge that upgrade guides have been processed')
|
|
1479
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1480
|
+
.action(async (opts) => {
|
|
1481
|
+
try {
|
|
1482
|
+
const { loadConfig } = await import('./core/Config.js');
|
|
1483
|
+
const { UpgradeGuideProcessor } = await import('./core/UpgradeGuideProcessor.js');
|
|
1484
|
+
const { getInstarVersion } = await import('./core/Config.js');
|
|
1485
|
+
const config = loadConfig(opts.dir);
|
|
1486
|
+
const processor = new UpgradeGuideProcessor({
|
|
1487
|
+
stateDir: config.stateDir,
|
|
1488
|
+
currentVersion: getInstarVersion(),
|
|
1489
|
+
});
|
|
1490
|
+
processor.clearPendingGuide();
|
|
1491
|
+
console.log('Upgrade guide acknowledged and cleared.');
|
|
1492
|
+
}
|
|
1493
|
+
catch (err) {
|
|
1494
|
+
console.error(`Failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
1495
|
+
process.exit(1);
|
|
1496
|
+
}
|
|
1497
|
+
});
|
|
1498
|
+
// ── Multi-Machine ─────────────────────────────────────────────────
|
|
1499
|
+
const machineCmd = program
|
|
1500
|
+
.command('machines')
|
|
1501
|
+
.description('List all paired machines and their roles')
|
|
1502
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1503
|
+
.action(listMachines);
|
|
1504
|
+
machineCmd
|
|
1505
|
+
.command('remove <name-or-id>')
|
|
1506
|
+
.description('Revoke a machine from the mesh')
|
|
1507
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1508
|
+
.action(removeMachine);
|
|
1509
|
+
program
|
|
1510
|
+
.command('whoami')
|
|
1511
|
+
.description("Show this machine's identity and role")
|
|
1512
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1513
|
+
.action(whoami);
|
|
1514
|
+
program
|
|
1515
|
+
.command('pair')
|
|
1516
|
+
.description('Generate a pairing code for a new machine')
|
|
1517
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1518
|
+
.option('--qr', 'Display pairing info as QR code')
|
|
1519
|
+
.action(startPairing);
|
|
1520
|
+
program
|
|
1521
|
+
.command('join <url>')
|
|
1522
|
+
.description('Join an existing agent mesh (run on the new machine)')
|
|
1523
|
+
.option('--code <code>', 'Pairing code from `instar pair`')
|
|
1524
|
+
.option('--name <name>', 'Display name for this machine')
|
|
1525
|
+
.action(joinMesh);
|
|
1526
|
+
program
|
|
1527
|
+
.command('wakeup')
|
|
1528
|
+
.description('Move the agent to this machine (transfer awake role)')
|
|
1529
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1530
|
+
.option('--force', 'Force wakeup without contacting the current awake machine')
|
|
1531
|
+
.action(wakeup);
|
|
1532
|
+
program
|
|
1533
|
+
.command('leave')
|
|
1534
|
+
.description('Remove this machine from the mesh')
|
|
1535
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1536
|
+
.action(leaveMesh);
|
|
1537
|
+
program
|
|
1538
|
+
.command('doctor')
|
|
1539
|
+
.description('Diagnose multi-machine health and connectivity')
|
|
1540
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1541
|
+
.action(doctor);
|
|
1542
|
+
// ── Channels ─────────────────────────────────────────────────────
|
|
1543
|
+
const channelsCmd = program
|
|
1544
|
+
.command('channels')
|
|
1545
|
+
.description('Manage messaging channel adapters');
|
|
1546
|
+
channelsCmd
|
|
1547
|
+
.command('login <adapter>')
|
|
1548
|
+
.description('Authenticate a messaging adapter (e.g., whatsapp)')
|
|
1549
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1550
|
+
.option('--method <method>', 'Auth method: qr or pairing-code', 'qr')
|
|
1551
|
+
.option('--phone <number>', 'Phone number for pairing code auth')
|
|
1552
|
+
.action(async (adapter, opts) => {
|
|
1553
|
+
const { channelLogin } = await import('./commands/whatsapp.js');
|
|
1554
|
+
return channelLogin(adapter, opts);
|
|
1555
|
+
});
|
|
1556
|
+
channelsCmd
|
|
1557
|
+
.command('doctor [adapter]')
|
|
1558
|
+
.description('Diagnose messaging adapter health')
|
|
1559
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1560
|
+
.action(async (adapter, opts) => {
|
|
1561
|
+
const { channelDoctor } = await import('./commands/whatsapp.js');
|
|
1562
|
+
return channelDoctor(adapter, opts);
|
|
1563
|
+
});
|
|
1564
|
+
channelsCmd
|
|
1565
|
+
.command('status')
|
|
1566
|
+
.description('Show status of all configured messaging adapters')
|
|
1567
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1568
|
+
.action(async (opts) => {
|
|
1569
|
+
const { channelStatus } = await import('./commands/whatsapp.js');
|
|
1570
|
+
return channelStatus(opts);
|
|
1571
|
+
});
|
|
1572
|
+
// ── System Review ────────────────────────────────────────────────
|
|
1573
|
+
program
|
|
1574
|
+
.command('review')
|
|
1575
|
+
.description('Run system review — verify features work end-to-end')
|
|
1576
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1577
|
+
.option('-t, --tier <n>', 'Run only probes in this tier (1-5)')
|
|
1578
|
+
.option('-p, --probe <id>', 'Run a specific probe by ID')
|
|
1579
|
+
.option('--dry-run', 'Show what would run without executing')
|
|
1580
|
+
.option('--history', 'Show past review results')
|
|
1581
|
+
.option('--trend', 'Show trend analysis across recent reviews')
|
|
1582
|
+
.option('--json', 'Output machine-readable JSON')
|
|
1583
|
+
.action(async (opts) => {
|
|
1584
|
+
const { review } = await import('./commands/review.js');
|
|
1585
|
+
await review(opts);
|
|
1586
|
+
});
|
|
1587
|
+
program
|
|
1588
|
+
.command('nuke <name>')
|
|
1589
|
+
.description('Completely remove a standalone agent and all its data')
|
|
1590
|
+
.option('--yes', 'Skip confirmation prompts')
|
|
1591
|
+
.action(async (name, opts) => {
|
|
1592
|
+
const { nukeAgent } = await import('./commands/nuke.js');
|
|
1593
|
+
await nukeAgent(name, { skipConfirm: opts.yes });
|
|
1594
|
+
});
|
|
1595
|
+
// ── Playbook (Context Engineering) ───────────────────────────────
|
|
1596
|
+
const playbookCmd = program
|
|
1597
|
+
.command('playbook')
|
|
1598
|
+
.description('Context engineering for autonomous AI agents');
|
|
1599
|
+
playbookCmd
|
|
1600
|
+
.command('init')
|
|
1601
|
+
.description('Initialize playbook for this project (detect Python, create venv, config)')
|
|
1602
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1603
|
+
.action(async (opts) => {
|
|
1604
|
+
const { playbookInit } = await import('./commands/playbook.js');
|
|
1605
|
+
return playbookInit(opts);
|
|
1606
|
+
});
|
|
1607
|
+
playbookCmd
|
|
1608
|
+
.command('doctor')
|
|
1609
|
+
.description('Validate Python, venv, config, manifest, and script accessibility')
|
|
1610
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1611
|
+
.option('-v, --verbose', 'Show detailed paths')
|
|
1612
|
+
.action(async (opts) => {
|
|
1613
|
+
const { playbookDoctor } = await import('./commands/playbook.js');
|
|
1614
|
+
return playbookDoctor(opts);
|
|
1615
|
+
});
|
|
1616
|
+
playbookCmd
|
|
1617
|
+
.command('status')
|
|
1618
|
+
.description('Show manifest health, item counts, and chain integrity')
|
|
1619
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1620
|
+
.option('--json', 'Machine-readable JSON output')
|
|
1621
|
+
.action(async (opts) => {
|
|
1622
|
+
const { playbookStatus } = await import('./commands/playbook.js');
|
|
1623
|
+
return playbookStatus(opts);
|
|
1624
|
+
});
|
|
1625
|
+
playbookCmd
|
|
1626
|
+
.command('list')
|
|
1627
|
+
.description('List manifest items with filtering')
|
|
1628
|
+
.option('--tag <tag>', 'Filter by tag')
|
|
1629
|
+
.option('--type <type>', 'Filter by type')
|
|
1630
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1631
|
+
.option('--json', 'Machine-readable JSON output')
|
|
1632
|
+
.action(async (opts) => {
|
|
1633
|
+
const { playbookList } = await import('./commands/playbook.js');
|
|
1634
|
+
return playbookList(opts);
|
|
1635
|
+
});
|
|
1636
|
+
playbookCmd
|
|
1637
|
+
.command('read <itemId>')
|
|
1638
|
+
.description('Display a single manifest item')
|
|
1639
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1640
|
+
.option('--json', 'Machine-readable JSON output')
|
|
1641
|
+
.action(async (itemId, opts) => {
|
|
1642
|
+
const { playbookRead } = await import('./commands/playbook.js');
|
|
1643
|
+
return playbookRead(itemId, opts);
|
|
1644
|
+
});
|
|
1645
|
+
playbookCmd
|
|
1646
|
+
.command('add')
|
|
1647
|
+
.description('Add a new context item (routed through delta validator)')
|
|
1648
|
+
.option('-c, --content <content>', 'Item content')
|
|
1649
|
+
.option('-f, --content-file <path>', 'Read content from file')
|
|
1650
|
+
.option('--tags <tags>', 'Comma-separated tags')
|
|
1651
|
+
.option('--type <type>', 'Item type (strategy, lesson, practice, pattern, ...)')
|
|
1652
|
+
.option('--category <category>', 'Item category')
|
|
1653
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1654
|
+
.option('--json', 'Machine-readable JSON output')
|
|
1655
|
+
.action(async (opts) => {
|
|
1656
|
+
const { playbookAdd } = await import('./commands/playbook.js');
|
|
1657
|
+
return playbookAdd(opts);
|
|
1658
|
+
});
|
|
1659
|
+
playbookCmd
|
|
1660
|
+
.command('search <query>')
|
|
1661
|
+
.description('Search items by content, tags, or ID')
|
|
1662
|
+
.option('-l, --limit <count>', 'Max results', (v) => parseInt(v, 10))
|
|
1663
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1664
|
+
.option('--json', 'Machine-readable JSON output')
|
|
1665
|
+
.action(async (query, opts) => {
|
|
1666
|
+
const { playbookSearch } = await import('./commands/playbook.js');
|
|
1667
|
+
return playbookSearch(query, opts);
|
|
1668
|
+
});
|
|
1669
|
+
playbookCmd
|
|
1670
|
+
.command('assemble')
|
|
1671
|
+
.description('Assemble context for a session (the integration point)')
|
|
1672
|
+
.option('--tags <tags>', 'Comma-separated tags to match')
|
|
1673
|
+
.option('--budget <tokens>', 'Token budget', (v) => parseInt(v, 10))
|
|
1674
|
+
.option('--triggers <triggers>', 'Comma-separated trigger types')
|
|
1675
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1676
|
+
.option('--json', 'Machine-readable JSON output (includes assembled_text)')
|
|
1677
|
+
.action(async (opts) => {
|
|
1678
|
+
const { playbookAssemble } = await import('./commands/playbook.js');
|
|
1679
|
+
return playbookAssemble(opts);
|
|
1680
|
+
});
|
|
1681
|
+
playbookCmd
|
|
1682
|
+
.command('evaluate [sessionLog]')
|
|
1683
|
+
.description('Evaluate session context usage from a log file')
|
|
1684
|
+
.option('--demo', 'Use built-in demo fixture')
|
|
1685
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1686
|
+
.option('--json', 'Machine-readable JSON output')
|
|
1687
|
+
.action(async (sessionLog, opts) => {
|
|
1688
|
+
const { playbookEvaluate } = await import('./commands/playbook.js');
|
|
1689
|
+
return playbookEvaluate(sessionLog, opts);
|
|
1690
|
+
});
|
|
1691
|
+
playbookCmd
|
|
1692
|
+
.command('lifecycle')
|
|
1693
|
+
.description('Run full lifecycle pass (decay, dedup, retirement)')
|
|
1694
|
+
.option('--dry-run', 'Show what would change without modifying')
|
|
1695
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1696
|
+
.option('--json', 'Machine-readable JSON output')
|
|
1697
|
+
.action(async (opts) => {
|
|
1698
|
+
const { playbookLifecycle } = await import('./commands/playbook.js');
|
|
1699
|
+
return playbookLifecycle(opts);
|
|
1700
|
+
});
|
|
1701
|
+
playbookCmd
|
|
1702
|
+
.command('validate')
|
|
1703
|
+
.description('Validate manifest schema + chain integrity')
|
|
1704
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1705
|
+
.option('--debug', 'Show full error details')
|
|
1706
|
+
.action(async (opts) => {
|
|
1707
|
+
const { playbookValidate } = await import('./commands/playbook.js');
|
|
1708
|
+
return playbookValidate(opts);
|
|
1709
|
+
});
|
|
1710
|
+
playbookCmd
|
|
1711
|
+
.command('mount <path>')
|
|
1712
|
+
.description('Mount external manifest as read-only overlay')
|
|
1713
|
+
.requiredOption('-n, --name <name>', 'Mount name')
|
|
1714
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1715
|
+
.action(async (mountPath, opts) => {
|
|
1716
|
+
const { playbookMount } = await import('./commands/playbook.js');
|
|
1717
|
+
return playbookMount(mountPath, opts);
|
|
1718
|
+
});
|
|
1719
|
+
playbookCmd
|
|
1720
|
+
.command('unmount <name>')
|
|
1721
|
+
.description('Remove a mounted manifest')
|
|
1722
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1723
|
+
.action(async (name, opts) => {
|
|
1724
|
+
const { playbookUnmount } = await import('./commands/playbook.js');
|
|
1725
|
+
return playbookUnmount(name, opts);
|
|
1726
|
+
});
|
|
1727
|
+
playbookCmd
|
|
1728
|
+
.command('export')
|
|
1729
|
+
.description('Export manifest for sharing or backup')
|
|
1730
|
+
.option('--format <format>', 'Output format: json or md (default: json)')
|
|
1731
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1732
|
+
.action(async (opts) => {
|
|
1733
|
+
const { playbookExport } = await import('./commands/playbook.js');
|
|
1734
|
+
return playbookExport(opts);
|
|
1735
|
+
});
|
|
1736
|
+
playbookCmd
|
|
1737
|
+
.command('import <file>')
|
|
1738
|
+
.description('Import items (routed through delta validator)')
|
|
1739
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1740
|
+
.option('--json', 'Machine-readable JSON output')
|
|
1741
|
+
.action(async (filePath, opts) => {
|
|
1742
|
+
const { playbookImport } = await import('./commands/playbook.js');
|
|
1743
|
+
return playbookImport(filePath, opts);
|
|
1744
|
+
});
|
|
1745
|
+
playbookCmd
|
|
1746
|
+
.command('eject [scriptName]')
|
|
1747
|
+
.description('Copy bundled scripts to local for customization')
|
|
1748
|
+
.option('-a, --all', 'Eject all scripts')
|
|
1749
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1750
|
+
.action(async (scriptName, opts) => {
|
|
1751
|
+
const { playbookEject } = await import('./commands/playbook.js');
|
|
1752
|
+
return playbookEject(scriptName, opts);
|
|
1753
|
+
});
|
|
1754
|
+
playbookCmd
|
|
1755
|
+
.command('user-export <userId>')
|
|
1756
|
+
.description('Export all data for a user (DSAR compliance)')
|
|
1757
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1758
|
+
.option('--json', 'Machine-readable JSON output')
|
|
1759
|
+
.action(async (userId, opts) => {
|
|
1760
|
+
const { playbookUserExport } = await import('./commands/playbook.js');
|
|
1761
|
+
return playbookUserExport(userId, opts);
|
|
1762
|
+
});
|
|
1763
|
+
playbookCmd
|
|
1764
|
+
.command('user-delete <userId>')
|
|
1765
|
+
.description('Delete all user data (DSAR compliance)')
|
|
1766
|
+
.option('--confirm', 'Confirm permanent deletion')
|
|
1767
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1768
|
+
.action(async (userId, opts) => {
|
|
1769
|
+
const { playbookUserDelete } = await import('./commands/playbook.js');
|
|
1770
|
+
return playbookUserDelete(userId, opts);
|
|
1771
|
+
});
|
|
1772
|
+
playbookCmd
|
|
1773
|
+
.command('user-audit <userId>')
|
|
1774
|
+
.description('Audit trail of all operations on user data')
|
|
1775
|
+
.option('-d, --dir <path>', 'Project directory')
|
|
1776
|
+
.option('--json', 'Machine-readable JSON output')
|
|
1777
|
+
.action(async (userId, opts) => {
|
|
1778
|
+
const { playbookUserAudit } = await import('./commands/playbook.js');
|
|
1779
|
+
return playbookUserAudit(userId, opts);
|
|
1780
|
+
});
|
|
1781
|
+
program.parse();
|
|
1782
|
+
//# sourceMappingURL=cli.js.map
|