@openlife/cli 1.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/INSTALL.md +266 -0
- package/LICENSE +21 -0
- package/README.md +142 -0
- package/bin/openlife.js +3 -0
- package/dist/admin_panel_server.js +66 -0
- package/dist/cli/AgentManager.js +109 -0
- package/dist/cli/AutonomousInstaller.js +134 -0
- package/dist/cli/DreamOrganizer.js +88 -0
- package/dist/cli/HostInstaller.js +426 -0
- package/dist/cli/InstallBanner.js +16 -0
- package/dist/cli/InstallFlow.js +256 -0
- package/dist/cli/InstallHeadless.js +47 -0
- package/dist/cli/InstallModules.js +148 -0
- package/dist/cli/InstallStateStore.js +75 -0
- package/dist/cli/InstallWizard.js +364 -0
- package/dist/cli/ProfileManager.js +163 -0
- package/dist/cli/SystemInstaller.js +89 -0
- package/dist/cli/WorldClassCommands.js +208 -0
- package/dist/design/DesignMdImporter.js +82 -0
- package/dist/design/DesignMdMode.js +93 -0
- package/dist/design/DesignMdRegistry.js +67 -0
- package/dist/index.js +2575 -0
- package/dist/memory/ConversationMemory.js +33 -0
- package/dist/memory/LocalMemoryProvider.js +86 -0
- package/dist/memory/Mem0Provider.js +16 -0
- package/dist/memory/MemoryNamespacePolicy.js +27 -0
- package/dist/memory/MemoryOrchestrator.js +65 -0
- package/dist/memory/MemoryPromotionFlow.js +32 -0
- package/dist/memory/MemoryProvider.js +2 -0
- package/dist/memory/MemoryProviderRegistry.js +27 -0
- package/dist/memory/MemoryRetentionPolicy.js +60 -0
- package/dist/memory/MempalaceProvider.js +72 -0
- package/dist/memory/OmniMemory.js +106 -0
- package/dist/memory/RedisAgentMemoryProvider.js +16 -0
- package/dist/memory/SessionManager.js +86 -0
- package/dist/memory/ZepGraphitiProvider.js +16 -0
- package/dist/orchestrator/AgentRegistry.js +56 -0
- package/dist/orchestrator/AgentScoring.js +82 -0
- package/dist/orchestrator/AgentTeam.js +22 -0
- package/dist/orchestrator/ArbitrationAgent.js +43 -0
- package/dist/orchestrator/ArbitrationScorecard.js +17 -0
- package/dist/orchestrator/AssetPromotionEngine.js +65 -0
- package/dist/orchestrator/AssetReuseRouter.js +63 -0
- package/dist/orchestrator/BenchmarkEngine.js +75 -0
- package/dist/orchestrator/Brain.js +298 -0
- package/dist/orchestrator/CadenceEngine.js +76 -0
- package/dist/orchestrator/CapabilityRouter.js +36 -0
- package/dist/orchestrator/CommandLanguage.js +27 -0
- package/dist/orchestrator/CommandRouter.js +70 -0
- package/dist/orchestrator/ConsequenceForecaster.js +286 -0
- package/dist/orchestrator/CronManager.js +286 -0
- package/dist/orchestrator/DynamicAgentBuilder.js +48 -0
- package/dist/orchestrator/DynamicAgentExecutor.js +15 -0
- package/dist/orchestrator/EnterpriseAgenticCore.js +276 -0
- package/dist/orchestrator/ExecutionBoard.js +86 -0
- package/dist/orchestrator/ExecutionIntent.js +13 -0
- package/dist/orchestrator/ExecutionModePolicy.js +48 -0
- package/dist/orchestrator/ExecutionRouter.js +9 -0
- package/dist/orchestrator/ExecutionState.js +20 -0
- package/dist/orchestrator/ExecutorHealth.js +86 -0
- package/dist/orchestrator/ExternalCatalogRegistry.js +83 -0
- package/dist/orchestrator/Gatekeeper.js +414 -0
- package/dist/orchestrator/Gateway.js +508 -0
- package/dist/orchestrator/GovernanceConsentStore.js +66 -0
- package/dist/orchestrator/GovernanceLayer.js +179 -0
- package/dist/orchestrator/GovernancePolicyStore.js +53 -0
- package/dist/orchestrator/GovernanceScopeLedger.js +134 -0
- package/dist/orchestrator/GovernanceScopePolicy.js +67 -0
- package/dist/orchestrator/IntentClassifier.js +45 -0
- package/dist/orchestrator/JobLifecycle.js +91 -0
- package/dist/orchestrator/LearningRouter.js +24 -0
- package/dist/orchestrator/MediaManager.js +92 -0
- package/dist/orchestrator/MemoryCuratorAgent.js +41 -0
- package/dist/orchestrator/MissionState.js +155 -0
- package/dist/orchestrator/ModelManager.js +84 -0
- package/dist/orchestrator/OperatingSystem.js +71 -0
- package/dist/orchestrator/OperationalMemoryStore.js +94 -0
- package/dist/orchestrator/OptimizationLoop.js +72 -0
- package/dist/orchestrator/OrchestrationLoop.js +905 -0
- package/dist/orchestrator/OrgStructure.js +88 -0
- package/dist/orchestrator/OutcomeSimulator.js +46 -0
- package/dist/orchestrator/ParallelOrchestrationLoop.js +36 -0
- package/dist/orchestrator/PerformanceScorecard.js +105 -0
- package/dist/orchestrator/PlannerAgent.js +46 -0
- package/dist/orchestrator/ProcessSandbox.js +129 -0
- package/dist/orchestrator/PromotionPipeline.js +74 -0
- package/dist/orchestrator/PromotionReviewGate.js +11 -0
- package/dist/orchestrator/QueueScheduler.js +260 -0
- package/dist/orchestrator/ReleaseGate.js +36 -0
- package/dist/orchestrator/ReleaseWorkflow.js +68 -0
- package/dist/orchestrator/RemotePublisher.js +139 -0
- package/dist/orchestrator/ReuseEngine.js +89 -0
- package/dist/orchestrator/ReviewerAgent.js +49 -0
- package/dist/orchestrator/RoleHandoff.js +65 -0
- package/dist/orchestrator/RuntimeHealthMonitor.js +143 -0
- package/dist/orchestrator/RuntimePolicy.js +105 -0
- package/dist/orchestrator/RuntimeProbe.js +97 -0
- package/dist/orchestrator/RuntimeRegistry.js +73 -0
- package/dist/orchestrator/SandboxPolicy.js +22 -0
- package/dist/orchestrator/SecurityDownloadGuard.js +169 -0
- package/dist/orchestrator/SecurityEventStore.js +58 -0
- package/dist/orchestrator/ServiceCompletionPolicy.js +36 -0
- package/dist/orchestrator/ServiceState.js +195 -0
- package/dist/orchestrator/SkillCreator.js +404 -0
- package/dist/orchestrator/SkillLearningLoop.js +57 -0
- package/dist/orchestrator/SkillManager.js +75 -0
- package/dist/orchestrator/SkillNetwork.js +29 -0
- package/dist/orchestrator/SkillRegistryV2.js +28 -0
- package/dist/orchestrator/SkillScoring.js +70 -0
- package/dist/orchestrator/SquadAutoCreator.js +64 -0
- package/dist/orchestrator/SquadCreator.js +727 -0
- package/dist/orchestrator/SquadRegistry.js +28 -0
- package/dist/orchestrator/SquadRouter.js +33 -0
- package/dist/orchestrator/SquadScoring.js +70 -0
- package/dist/orchestrator/SubagentLifecycle.js +90 -0
- package/dist/orchestrator/SynthesizerAgent.js +48 -0
- package/dist/orchestrator/SystemDoctor.js +224 -0
- package/dist/orchestrator/TaskExecutor.js +422 -0
- package/dist/orchestrator/TeammateBoard.js +61 -0
- package/dist/orchestrator/TestHarness.js +184 -0
- package/dist/orchestrator/VoiceManager.js +203 -0
- package/dist/orchestrator/VoiceRouter.js +89 -0
- package/dist/orchestrator/capability/CapabilityGenesisEngine.js +278 -0
- package/dist/orchestrator/capability/CapabilityPackParser.js +223 -0
- package/dist/orchestrator/capability/CapabilityPackSchema.js +62 -0
- package/dist/orchestrator/capability/CapabilityPackState.js +163 -0
- package/dist/orchestrator/providers/AgentProvider.js +2 -0
- package/dist/orchestrator/providers/CapabilityProvider.js +12 -0
- package/dist/orchestrator/providers/CloudAgentProvider.js +55 -0
- package/dist/orchestrator/providers/CloudSkillProvider.js +55 -0
- package/dist/orchestrator/providers/CloudSquadProvider.js +55 -0
- package/dist/orchestrator/providers/CompositeAgentProvider.js +16 -0
- package/dist/orchestrator/providers/CompositeCapabilityProvider.js +25 -0
- package/dist/orchestrator/providers/CompositeSkillProvider.js +16 -0
- package/dist/orchestrator/providers/CompositeSquadProvider.js +16 -0
- package/dist/orchestrator/providers/CompositeWorkflowProvider.js +46 -0
- package/dist/orchestrator/providers/FileAgentProvider.js +105 -0
- package/dist/orchestrator/providers/FileCapabilityProvider.js +106 -0
- package/dist/orchestrator/providers/FileSkillProvider.js +65 -0
- package/dist/orchestrator/providers/FileSquadProvider.js +69 -0
- package/dist/orchestrator/providers/FileWorkflowProvider.js +103 -0
- package/dist/orchestrator/providers/SkillProvider.js +2 -0
- package/dist/orchestrator/providers/SquadProvider.js +2 -0
- package/dist/orchestrator/toolset/ToolsetGuard.js +69 -0
- package/dist/orchestrator/toolset/ToolsetRegistry.js +65 -0
- package/dist/orchestrator/toolset/ToolsetSchema.js +21 -0
- package/dist/orchestrator/util/AtomicWriter.js +204 -0
- package/dist/orchestrator/util/DistributedLock.js +232 -0
- package/dist/orchestrator/util/TemplateRenderer.js +87 -0
- package/dist/orchestrator/util/WatchdogHeartbeat.js +116 -0
- package/dist/orchestrator/workflow/ConditionParser.js +232 -0
- package/dist/orchestrator/workflow/WorkflowEngine.js +379 -0
- package/dist/orchestrator/workflow/WorkflowParser.js +368 -0
- package/dist/orchestrator/workflow/WorkflowSchema.js +65 -0
- package/dist/orchestrator/workflow/WorkflowState.js +11 -0
- package/dist/reversa/ReversaAgent.js +134 -0
- package/dist/reversa/ReversaContracts.js +62 -0
- package/dist/reversa/ReversaExecutors.js +65 -0
- package/dist/skills/SkillRegistry.js +71 -0
- package/dist/squads/SquadManager.js +87 -0
- package/dist/test_admin_teams_networks.js +54 -0
- package/dist/test_agent_team_skill_network.js +15 -0
- package/dist/test_aiobuilder_cli_parity.js +169 -0
- package/dist/test_ask_exit.js +73 -0
- package/dist/test_atomic_writer.js +209 -0
- package/dist/test_autonomous_soak.js +141 -0
- package/dist/test_benchmark_engine.js +41 -0
- package/dist/test_brain_error_diagnostics.js +51 -0
- package/dist/test_brain_fallback_chain.js +93 -0
- package/dist/test_capability_genesis_engine.js +225 -0
- package/dist/test_capability_pack_schema.js +214 -0
- package/dist/test_catalog_quality.js +150 -0
- package/dist/test_cli_crud_roundtrip.js +154 -0
- package/dist/test_cli_diagnostics.js +131 -0
- package/dist/test_cli_doc_parity.js +126 -0
- package/dist/test_cli_help_surface.js +106 -0
- package/dist/test_cli_service_commands.js +83 -0
- package/dist/test_consequence_forecast_brain.js +165 -0
- package/dist/test_consequence_forecaster.js +24 -0
- package/dist/test_conversation_memory.js +36 -0
- package/dist/test_create_entities.js +54 -0
- package/dist/test_creator_placeholders_completed.js +177 -0
- package/dist/test_cron_manager.js +123 -0
- package/dist/test_daemon_sigterm.js +72 -0
- package/dist/test_deep_research_capability.js +87 -0
- package/dist/test_designmd_import_registry.js +16 -0
- package/dist/test_designmd_mode.js +50 -0
- package/dist/test_designmd_mode_workspace.js +13 -0
- package/dist/test_dist_templates_layout.js +135 -0
- package/dist/test_distributed_lock.js +201 -0
- package/dist/test_distribution_installability.js +67 -0
- package/dist/test_doctor_sandbox_check.js +44 -0
- package/dist/test_dream_organizer.js +25 -0
- package/dist/test_dual_mode.js +15 -0
- package/dist/test_enterprise_agentic_core.js +128 -0
- package/dist/test_forecast_brain_wiring.js +87 -0
- package/dist/test_gateway_telegram_guardrails.js +52 -0
- package/dist/test_governance.js +34 -0
- package/dist/test_governance_advanced.js +75 -0
- package/dist/test_governance_scope_ledger.js +147 -0
- package/dist/test_governance_v13_policies.js +44 -0
- package/dist/test_guided_creator_cli.js +100 -0
- package/dist/test_host_install_e2e.js +324 -0
- package/dist/test_host_installer.js +259 -0
- package/dist/test_host_installers_gemini_codex.js +95 -0
- package/dist/test_host_uninstaller.js +295 -0
- package/dist/test_install_flow.js +70 -0
- package/dist/test_install_flow_host_validation.js +143 -0
- package/dist/test_install_wizard.js +272 -0
- package/dist/test_integration_gemini_live.js +95 -0
- package/dist/test_integration_http_trigger_live.js +154 -0
- package/dist/test_integration_telegram_live.js +102 -0
- package/dist/test_job_lifecycle.js +16 -0
- package/dist/test_memory_orchestrator.js +33 -0
- package/dist/test_memory_promotion.js +36 -0
- package/dist/test_memory_retention.js +37 -0
- package/dist/test_mission_checkpoint.js +204 -0
- package/dist/test_multi_host_docs_parity.js +125 -0
- package/dist/test_openlife_auto_creator_routing.js +69 -0
- package/dist/test_openlife_evolution_surface.js +77 -0
- package/dist/test_openlife_gatekeeper_routing.js +15 -0
- package/dist/test_openlife_routing_surface.js +27 -0
- package/dist/test_openlife_runtime_source_truth.js +25 -0
- package/dist/test_operating_system.js +45 -0
- package/dist/test_optimization_loop.js +38 -0
- package/dist/test_orchestration_assets_lifecycle.js +78 -0
- package/dist/test_outcome_simulator.js +38 -0
- package/dist/test_performance_latency.js +215 -0
- package/dist/test_performance_scorecard.js +38 -0
- package/dist/test_phase1_check_exit.js +103 -0
- package/dist/test_phase6_board.js +31 -0
- package/dist/test_phase6_cadence.js +29 -0
- package/dist/test_phase6_ops.js +37 -0
- package/dist/test_post_mission_evaluation.js +190 -0
- package/dist/test_process_sandbox.js +88 -0
- package/dist/test_profile_toolset_mcp.js +125 -0
- package/dist/test_queue_scheduler.js +239 -0
- package/dist/test_release_gate.js +23 -0
- package/dist/test_remote_publish.js +193 -0
- package/dist/test_reversa_contracts_e2e.js +48 -0
- package/dist/test_reversa_export_and_strict.js +51 -0
- package/dist/test_reversa_full_execution.js +12 -0
- package/dist/test_reversa_lite.js +9 -0
- package/dist/test_royal_stack_golden.js +179 -0
- package/dist/test_runtime_health_backoff.js +154 -0
- package/dist/test_runtime_policy.js +26 -0
- package/dist/test_runtime_probe.js +19 -0
- package/dist/test_runtime_profile_oauth_only.js +262 -0
- package/dist/test_runtime_registry.js +11 -0
- package/dist/test_security_download_and_scan.js +103 -0
- package/dist/test_security_download_guard.js +14 -0
- package/dist/test_service_command_surface.js +12 -0
- package/dist/test_service_completion_policy.js +32 -0
- package/dist/test_service_guardrails_delete.js +12 -0
- package/dist/test_service_mode_explicit_only.js +174 -0
- package/dist/test_sources_import_ref.js +46 -0
- package/dist/test_sources_scaffold.js +43 -0
- package/dist/test_squad_skill_creator.js +305 -0
- package/dist/test_squad_skill_design_llm.js +176 -0
- package/dist/test_subsystems_org_state.js +271 -0
- package/dist/test_subsystems_promotion_memory_assets.js +343 -0
- package/dist/test_subsystems_routing_governance.js +234 -0
- package/dist/test_task_executor_sandbox_optin.js +127 -0
- package/dist/test_teammate_learning.js +15 -0
- package/dist/test_telegram_delete_guardrail.js +21 -0
- package/dist/test_toolset_enforcement.js +188 -0
- package/dist/test_trigger_basic_auth.js +112 -0
- package/dist/test_util/doc_parity.js +120 -0
- package/dist/test_v15_e2e_integration.js +207 -0
- package/dist/test_watchdog_heartbeat.js +152 -0
- package/dist/test_workflow_condition_parser.js +63 -0
- package/dist/test_workflow_e2e.js +240 -0
- package/dist/test_workflow_engine.js +330 -0
- package/dist/test_workflow_parser.js +245 -0
- package/dist/test_workflow_schema_backward_compat.js +197 -0
- package/dist-templates/README.md +91 -0
- package/dist-templates/claude-code/agents/openlife-atlas.md +52 -0
- package/dist-templates/claude-code/agents/openlife-forge.md +42 -0
- package/dist-templates/claude-code/agents/openlife-genesis.md +59 -0
- package/dist-templates/claude-code/agents/openlife-lyra.md +40 -0
- package/dist-templates/claude-code/agents/openlife-maestro.md +45 -0
- package/dist-templates/claude-code/commands/openlife/ask.md +14 -0
- package/dist-templates/claude-code/commands/openlife/doctor.md +19 -0
- package/dist-templates/claude-code/commands/openlife/dream.md +20 -0
- package/dist-templates/claude-code/commands/openlife/status.md +14 -0
- package/dist-templates/claude-code/mcp/openlife-orchestrator.json +46 -0
- package/dist-templates/codex/README.md +7 -0
- package/dist-templates/codex/agents/openlife-atlas.md +52 -0
- package/dist-templates/codex/agents/openlife-forge.md +42 -0
- package/dist-templates/codex/agents/openlife-genesis.md +59 -0
- package/dist-templates/codex/agents/openlife-lyra.md +40 -0
- package/dist-templates/codex/agents/openlife-maestro.md +45 -0
- package/dist-templates/codex/commands/openlife/ask.md +14 -0
- package/dist-templates/codex/commands/openlife/doctor.md +19 -0
- package/dist-templates/codex/commands/openlife/dream.md +20 -0
- package/dist-templates/codex/commands/openlife/status.md +14 -0
- package/dist-templates/codex/mcp/openlife-orchestrator.json +46 -0
- package/dist-templates/gemini-cli/README.md +8 -0
- package/dist-templates/gemini-cli/agents/openlife-atlas.md +52 -0
- package/dist-templates/gemini-cli/agents/openlife-forge.md +42 -0
- package/dist-templates/gemini-cli/agents/openlife-genesis.md +59 -0
- package/dist-templates/gemini-cli/agents/openlife-lyra.md +40 -0
- package/dist-templates/gemini-cli/agents/openlife-maestro.md +45 -0
- package/dist-templates/gemini-cli/commands/openlife/ask.md +14 -0
- package/dist-templates/gemini-cli/commands/openlife/doctor.md +19 -0
- package/dist-templates/gemini-cli/commands/openlife/dream.md +20 -0
- package/dist-templates/gemini-cli/commands/openlife/status.md +14 -0
- package/dist-templates/gemini-cli/mcp/openlife-orchestrator.json +46 -0
- package/dist-templates/skill-template/README.md +34 -0
- package/dist-templates/skill-template/SKILL.md.template +59 -0
- package/dist-templates/squad-template/README.md +82 -0
- package/dist-templates/squad-template/SQUAD.md.template +51 -0
- package/dist-templates/squad-template/agent-template.md +51 -0
- package/dist-templates/squad-template/checklist-template.md +25 -0
- package/dist-templates/squad-template/task-template.md +36 -0
- package/dist-templates/workflows/PORTED_WORKFLOWS.md +60 -0
- package/dist-templates/workflows/brownfield-discovery.yaml +137 -0
- package/dist-templates/workflows/greenfield-fullstack.yaml +132 -0
- package/dist-templates/workflows/qa-loop.yaml +125 -0
- package/dist-templates/workflows/story-development-cycle.yaml +80 -0
- package/docs/CHANGELOG_FEATURE_ROLLOUT_DESIGNMD.md +43 -0
- package/docs/EXTERNAL_SOURCES_AND_SECURITY_GUARD.md +33 -0
- package/docs/OPENLIFE_AUDIT_2026-05-06.md +170 -0
- package/docs/OPENLIFE_CONSOLIDATED_PLAN_2026-05-06.md +299 -0
- package/docs/OPENLIFE_DUAL_MODE_IMPLEMENTATION_PLAN.md +205 -0
- package/docs/OPENLIFE_EVOLUTION_SURFACE_2026-05-07.md +53 -0
- package/docs/OPENLIFE_SKILLS_IMPORT_2026-05-07.json +223 -0
- package/docs/OPENLIFE_SQUADS_IMPORT_2026-05-07.json +184 -0
- package/docs/PAPERCLIP_OPENLIFE_INVESTIGATION.md +85 -0
- package/docs/README.md +28 -0
- package/docs/RELEASE_ORGANIZATION_PLAN.md +164 -0
- package/docs/audit/CLI-EXECUTION-RESULTS.md +113 -0
- package/docs/audit/CLI-MATRIX.md +556 -0
- package/docs/audit/DOC-PARITY-GAPS.md +351 -0
- package/docs/audit/ORCHESTRATOR-MATRIX.md +136 -0
- package/docs/audit/TEST-COVERAGE-GAPS.md +334 -0
- package/docs/audit/integrations/SKIPPED.md +101 -0
- package/docs/autonomous-install.md +79 -0
- package/docs/capability-genesis.md +137 -0
- package/docs/capability-pack-schema.md +157 -0
- package/docs/commands.md +82 -0
- package/docs/deep-research-capability.md +114 -0
- package/docs/development/typescript-conventions.md +95 -0
- package/docs/host-installers.md +68 -0
- package/docs/install/aiobuilder.md +70 -0
- package/docs/install/claude-code.md +83 -0
- package/docs/install/codex.md +64 -0
- package/docs/install/gemini-cli.md +64 -0
- package/docs/install/runtime-profiles.md +83 -0
- package/docs/openlife-agent-os-blueprint.md +114 -0
- package/docs/openlife-install-backlog.md +115 -0
- package/docs/openlife-install-spec.md +306 -0
- package/docs/operations/CLOUD_CUTOVER_AUDIT.md +37 -0
- package/docs/operations/PHASE_PROGRESS_CONTINUATION.md +24 -0
- package/docs/performance-benchmarks.md +83 -0
- package/docs/planning/v1.3-capability-genesis.md +157 -0
- package/docs/plans/2026-05-05-admin-interface-professional-dark-premium-plan.md +84 -0
- package/docs/plans/2026-05-05-openlife-autonomous-domain-marketplace-masterplan.md +122 -0
- package/docs/quickstart.md +60 -0
- package/docs/release-process.md +236 -0
- package/docs/roadmap/OPENLIFE_MASTER_PLAN_CLOUD_V3.md +97 -0
- package/docs/sandboxing-research.md +117 -0
- package/docs/stories/epic-feature-audit/1.1.story.md +84 -0
- package/docs/stories/epic-feature-audit/1.2.story.md +102 -0
- package/docs/stories/epic-feature-audit/1.3.story.md +93 -0
- package/docs/stories/epic-feature-audit/1.5.story.md +121 -0
- package/docs/stories/epic-feature-audit/1.6.story.md +80 -0
- package/docs/stories/epic-feature-completeness/2.1.story.md +70 -0
- package/docs/stories/epic-feature-completeness/2.2.story.md +49 -0
- package/docs/stories/epic-feature-completeness/2.3.story.md +74 -0
- package/docs/stories/epic-feature-completeness/2.4.story.md +71 -0
- package/docs/stories/epic-feature-completeness/3.1.story.md +56 -0
- package/docs/stories/epic-feature-completeness/3.2.story.md +80 -0
- package/docs/stories/epic-feature-completeness/3.3.story.md +68 -0
- package/docs/stories/epic-feature-completeness/3.4.story.md +71 -0
- package/docs/stories/epic-feature-completeness/3.5.story.md +72 -0
- package/docs/stories/epic-feature-completeness/3.6.story.md +69 -0
- package/docs/stories/epic-feature-completeness/3.7.story.md +68 -0
- package/docs/stories/epic-feature-completeness/3.8.story.md +57 -0
- package/docs/toolset-enforcement.md +122 -0
- package/docs/v1.4-changelog.md +159 -0
- package/docs/v1.5-changelog.md +106 -0
- package/docs/v1.5-roadmap.md +121 -0
- package/docs/v1.6-changelog.md +67 -0
- package/docs/v1.6-roadmap.md +89 -0
- package/docs/v1.7-changelog.md +98 -0
- package/docs/workflow-schema.md +177 -0
- package/package.json +177 -0
- package/scripts/clean-test-pollution.js +61 -0
- package/scripts/openlife-agent-start.sh +6 -0
- package/scripts/openlife-agent.service.example +13 -0
- package/scripts/openlife-agent.supervisord.conf.example +8 -0
- package/scripts/openlife-autonomous-install.sh +29 -0
- package/scripts/postinstall-check.sh +37 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# OpenLife v1.6 — Changelog
|
|
2
|
+
|
|
3
|
+
**Branch:** `feat/v1.6-sandbox-rollout`
|
|
4
|
+
**Predecessor:** v1.5.0 (tagged 2026-05-13)
|
|
5
|
+
|
|
6
|
+
v1.6 is the **operational consolidation** milestone — promotes v1.5's
|
|
7
|
+
research-track `ProcessSandbox` into real production sites and continues
|
|
8
|
+
the `any`-budget tightening trajectory.
|
|
9
|
+
|
|
10
|
+
## What landed by epic
|
|
11
|
+
|
|
12
|
+
| Sprint | Epic | Stories | Commits |
|
|
13
|
+
|---|---|---|---|
|
|
14
|
+
| 1 | 18 — Sandbox rollout | 18.1 / 18.2 | `8834aaa`, `96248f2` |
|
|
15
|
+
| 2 | 19 — Quality | 19.1 | `3d6dc32` |
|
|
16
|
+
| 3 (cap) | — | C.1 (this doc) | _this commit_ |
|
|
17
|
+
|
|
18
|
+
### Epic 18 — Sandbox rollout (Sprint 1)
|
|
19
|
+
|
|
20
|
+
| Story | Commit | Surface |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| 18.1 | `8834aaa` | `SystemDoctor.checkProcessSandbox` — doctor now spawns a tiny `node -e` via the wrapper and reports Node major version + enforcement state + applied-flag count. Low-risk production wire-in. |
|
|
23
|
+
| 18.2 | `96248f2` | `TaskExecutor.runShellCommand` opt-in routing via `OPENLIFE_PROCESS_SANDBOX=on`. Default OFF (same opt-in stance v1.4 took for toolset enforcement). For `/bin/bash` this is a pass-through wrapper today; v1.7 will route node-script steps through it with real `--permission` scoping. |
|
|
24
|
+
|
|
25
|
+
### Epic 19 — Quality (Sprint 2)
|
|
26
|
+
|
|
27
|
+
| Story | Commit | Surface |
|
|
28
|
+
|---|---|---|
|
|
29
|
+
| 19.1 | `3d6dc32` | Production `any` count 109 → 83 across Gatekeeper (9→0), TestHarness (8→0), VoiceManager (5→0), admin_panel_server (4→0). CI lint budget tightened 115 → 90. |
|
|
30
|
+
|
|
31
|
+
## Calendar-gated deferrals (still pending)
|
|
32
|
+
|
|
33
|
+
- **Story 13.5 — Toolset enforcement default-ON flip.** Requires
|
|
34
|
+
≥1 week of v1.4 soak + ≥1 tagged v1.4 maintenance release. v1.4.0
|
|
35
|
+
was tagged 2026-05-13; the earliest land date is 2026-05-20 after a
|
|
36
|
+
v1.4.1 cut. Will ship on its own dedicated branch when ready.
|
|
37
|
+
|
|
38
|
+
## Locked decisions
|
|
39
|
+
|
|
40
|
+
1. **`OPENLIFE_PROCESS_SANDBOX` stays opt-in in v1.6.** v1.7 will
|
|
41
|
+
reconsider the default after sandbox-specific soak.
|
|
42
|
+
2. **No new env vars introduced in this milestone.** Story 18.2's
|
|
43
|
+
`OPENLIFE_PROCESS_SANDBOX` was promoted from v1.5 research-track
|
|
44
|
+
into production wiring; the variable name was reserved in
|
|
45
|
+
`docs/sandboxing-research.md`.
|
|
46
|
+
|
|
47
|
+
## Tests added
|
|
48
|
+
|
|
49
|
+
| Test | Stories covered |
|
|
50
|
+
|---|---|
|
|
51
|
+
| `test_doctor_sandbox_check.ts` | 18.1 |
|
|
52
|
+
| `test_task_executor_sandbox_optin.ts` | 18.2 |
|
|
53
|
+
|
|
54
|
+
`test:all` now runs 101 markers (up from 99 at v1.5.0).
|
|
55
|
+
|
|
56
|
+
## Honest scorecard delta vs v1.5
|
|
57
|
+
|
|
58
|
+
| Dimension | v1.5 | v1.6 |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| Code quality | 9.8 | 9.9 (any 172 → 83 over four milestones) |
|
|
61
|
+
| Test infra | 10.0 | 10.0 (+2 integration probes) |
|
|
62
|
+
| Documentation | 10.0 | 10.0 (changelog + roadmap) |
|
|
63
|
+
| Feature completeness | 10.0 | 10.0 (sandbox now wired) |
|
|
64
|
+
|
|
65
|
+
The change is incremental — that was the v1.6 thesis. Story 13.5
|
|
66
|
+
remains the one big operational lever that's calendar-gated; it will
|
|
67
|
+
move the score again when it lands.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# OpenLife v1.6 — Roadmap
|
|
2
|
+
|
|
3
|
+
**Branch:** `feat/v1.6-sandbox-rollout`
|
|
4
|
+
**Predecessor:** v1.5.0 (tagged 2026-05-13)
|
|
5
|
+
|
|
6
|
+
v1.6 is the **operational consolidation** milestone — promoting v1.5's
|
|
7
|
+
research outputs into real production wiring and closing the one
|
|
8
|
+
calendar-gated v1.4 deferral.
|
|
9
|
+
|
|
10
|
+
## The 4 deferred items left from v1.5
|
|
11
|
+
|
|
12
|
+
| # | Item | Owner story | Calendar gate? |
|
|
13
|
+
|---|---|---|---|
|
|
14
|
+
| 1 | Wire `ProcessSandbox` into a non-critical site (doctor) | 18.1 | No — ready now |
|
|
15
|
+
| 2 | Opt-in `OPENLIFE_PROCESS_SANDBOX=on` for `TaskExecutor.runShellCommand` | 18.2 | No — ready now |
|
|
16
|
+
| 3 | Toolset enforcement default-ON flip | 13.5 | **YES** — 1 week of v1.4 soak + 1 maintenance release |
|
|
17
|
+
| 4 | Continue `any` budget tightening toward v1.4-plan target of 70 | 19.1 | No — ready now |
|
|
18
|
+
| 5 | Distributed multi-host scheduler | 20.x | Own epic; may slip to v1.7 |
|
|
19
|
+
|
|
20
|
+
## Epic breakdown
|
|
21
|
+
|
|
22
|
+
### Epic 18 — Sandbox rollout (Sprint 1)
|
|
23
|
+
|
|
24
|
+
- **18.1 — Wire `ProcessSandbox` into `doctor` script execution.** The
|
|
25
|
+
doctor command runs a handful of node-based health probes. Routing
|
|
26
|
+
those through `ProcessSandbox` validates the wrapper in a low-risk
|
|
27
|
+
production site and produces real telemetry about Node-permission
|
|
28
|
+
behaviour on operator machines.
|
|
29
|
+
|
|
30
|
+
- **18.2 — Opt-in shell-command sandboxing.** New env flag
|
|
31
|
+
`OPENLIFE_PROCESS_SANDBOX=on` routes `TaskExecutor.runShellCommand`
|
|
32
|
+
through `ProcessSandbox` with a default-allow scope of `cwd + .artifacts`.
|
|
33
|
+
Default OFF in v1.6 — same opt-in stance as toolset enforcement had in v1.4.
|
|
34
|
+
|
|
35
|
+
### Epic 13.5 (calendar-gated) — Toolset enforcement default flip (Sprint 2)
|
|
36
|
+
|
|
37
|
+
- **13.5 — Flip default of `OPENLIFE_TOOLSET_ENFORCEMENT` from OFF to ON.**
|
|
38
|
+
Lands on its own atomic commit so any post-flip regression can be
|
|
39
|
+
bisected cleanly. The opt-OUT path becomes `OPENLIFE_TOOLSET_ENFORCEMENT=off`.
|
|
40
|
+
Pre-flip check: at least one tagged maintenance release into v1.4
|
|
41
|
+
(target: v1.4.1 if any post-release issues surface) AND ≥1 calendar
|
|
42
|
+
week of soak.
|
|
43
|
+
|
|
44
|
+
### Epic 19 — Quality (Sprint 3)
|
|
45
|
+
|
|
46
|
+
- **19.1 — `any` budget toward <90.** v1.5 landed at 109. Remaining
|
|
47
|
+
concentrations live in CLI option handlers and a handful of
|
|
48
|
+
provider/route code paths. Target: under 90 in prod code; CI lint
|
|
49
|
+
budget steps to 95.
|
|
50
|
+
|
|
51
|
+
### Epic 20 — Multi-host scheduler (Sprint 4, P3, may slip to v1.7)
|
|
52
|
+
|
|
53
|
+
- **20.x — Distributed scheduler.** Big enough to warrant its own
|
|
54
|
+
roadmap doc. v1.6 may only ship the planning artifact; the
|
|
55
|
+
implementation lives in v1.7.
|
|
56
|
+
|
|
57
|
+
### Cap (Sprint 5)
|
|
58
|
+
|
|
59
|
+
- **C.1 docs/v1.6-changelog.md** + 1-2 reference docs for the new
|
|
60
|
+
surfaces.
|
|
61
|
+
- **C.2 final `test:all`** + perf baseline lock.
|
|
62
|
+
- **C.3 PR ready + merge + tag v1.6.0** (toolset flip is the most
|
|
63
|
+
operationally significant change of v1.6, so the tag means "default
|
|
64
|
+
enforcement on").
|
|
65
|
+
|
|
66
|
+
## Locked decisions
|
|
67
|
+
|
|
68
|
+
1. **`OPENLIFE_PROCESS_SANDBOX` defaults OFF in v1.6.** Same opt-in
|
|
69
|
+
stance toolset enforcement had in v1.4. Will flip to ON in v1.7 only
|
|
70
|
+
after sandbox-specific soak.
|
|
71
|
+
2. **Story 13.5 commits separately on this branch** with its own
|
|
72
|
+
atomic message so the toolset-default-flip can be reverted without
|
|
73
|
+
losing the sandbox-rollout work.
|
|
74
|
+
|
|
75
|
+
## Definition of Done
|
|
76
|
+
|
|
77
|
+
| Check | Method |
|
|
78
|
+
|---|---|
|
|
79
|
+
| `npm run build` clean | After each story |
|
|
80
|
+
| `npm run test:all` green | After each story; CI on every push |
|
|
81
|
+
| Perf regression check | `test_performance_latency.ts` vs `ci/perf-baseline.json` (≤+30% P95) |
|
|
82
|
+
| `any` budget | CI lint job — 95 by end of v1.6 (from 115 in v1.5) |
|
|
83
|
+
| Sandbox enforcement soak | v1.7 only flips after ≥1 v1.6 maintenance release |
|
|
84
|
+
| Toolset enforcement default-ON | v1.4.1 tagged + ≥7 days since v1.4.0 |
|
|
85
|
+
|
|
86
|
+
## Commit / push policy
|
|
87
|
+
|
|
88
|
+
Same as v1.4 / v1.5. One atomic commit per story; pushes authorized
|
|
89
|
+
for this branch.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# OpenLife v1.7 — Changelog
|
|
2
|
+
|
|
3
|
+
**Branch:** `feat/v1.7-enforcement-at-scale`
|
|
4
|
+
**Predecessor:** v1.6.0 (tagged 2026-05-13)
|
|
5
|
+
|
|
6
|
+
v1.7 is the **enforcement-at-scale** milestone. It extends opt-in
|
|
7
|
+
toolset enforcement from 2 categories to 13, wires the
|
|
8
|
+
`forecastWithBrain` method that shipped in v1.5 but was never reached,
|
|
9
|
+
fixes a measurement bug that inflated every prior `any`-budget claim,
|
|
10
|
+
and ships the consolidated release-process runbook used since v1.2.
|
|
11
|
+
|
|
12
|
+
Story 20.1 (toolset enforcement default-ON flip) remains
|
|
13
|
+
calendar-gated and lands on its own.
|
|
14
|
+
|
|
15
|
+
## What landed by story
|
|
16
|
+
|
|
17
|
+
| Story | Commit | Surface |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| 20.4 | `c7a8258` | `OrchestrationLoop.run` now branches on `OPENLIFE_BRAIN_FORECAST=on` and awaits `ConsequenceForecaster.forecastWithBrain`. Brain verdict / amplifiers / rationale surfaced into the attempt trace. New wiring guard at `src/test_forecast_brain_wiring.ts` catches the specific "shipped but unwired" regression that happened between v1.5 and v1.6. |
|
|
20
|
+
| R.3 | `e819db0` | `docs/release-process.md` — the per-story-atomic-commit + tag-on-merge pattern used for v1.2 → v1.6, plus the worktree-based maintenance-cut procedure exercised for `v1.4.1`. |
|
|
21
|
+
| 20.3 | `b04dee8` | Production `any` driven to **0**. Fixed the CI lint grep bug (see below). Type narrowing across 11 files: catch sites moved to `unknown` + `instanceof Error`; explicit interface annotations replaced 4 `as any` casts; doc comments rephrased to avoid regex false-positives. CI budget reset from 90 (inflated) to 5 (honest). |
|
|
22
|
+
| 20.2 | `ca59111` | `assertToolsetAllowed` hooked at 11 more production code paths covering: memory (`OmniMemory.saveFact`), tts (`VoiceManager.generateSpeech`), cron (`CronManager.create`), mcp (`ExternalCatalogRegistry.importAndFetch`), skills (`SkillManager.create`), workflows (`WorkflowEngine.run`), squads (`SquadCreator.create`), web (`SecurityDownloadGuard.downloadAndScan`), file (`HostInstaller.install`), vision (`Gateway.processImageForTest`), gateway (`Gateway.start`). Combined with v1.4's terminal + delegation hooks, **13 of 15** ToolsetCategory values now have production hooks. `browser` and `image_gen` remain unhooked (no production code path today) and fail closed at the registry layer. |
|
|
23
|
+
|
|
24
|
+
## Measurement correction — the `any` count was never 83
|
|
25
|
+
|
|
26
|
+
Found during Story 20.3. The CI lint guard in `.github/workflows/lint.yml`
|
|
27
|
+
ran:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
grep -rEnh ':[[:space:]]*any\b|<any>|as any' src/ --include='*.ts' | grep -v 'test_'
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The `-h` flag suppresses the filename prefix from grep's output, which
|
|
34
|
+
made the downstream `grep -v 'test_'` operate on **line content**
|
|
35
|
+
instead of file paths. Every `(t: any) =>` or `find((x: any) => …)`
|
|
36
|
+
match in `src/test_*.ts` slipped through and counted as production.
|
|
37
|
+
|
|
38
|
+
| Claim in prior changelogs | Real production count |
|
|
39
|
+
|---|---|
|
|
40
|
+
| v1.4: any 172 → 70 target | ~30 (rest were test-file matches) |
|
|
41
|
+
| v1.5: any 172 → 109 | ~20 |
|
|
42
|
+
| v1.6: any 109 → 83 | 12-14 |
|
|
43
|
+
| **v1.7 (after Story 20.3): 0** | 0 |
|
|
44
|
+
|
|
45
|
+
The prior changelogs are not retroactively edited (that would be
|
|
46
|
+
history rewriting). They describe what was measured against the
|
|
47
|
+
broken filter and remain in the historical record. From v1.7 onward
|
|
48
|
+
the CI budget is `OPENLIFE_ANY_BUDGET=5` against a filename-aware
|
|
49
|
+
grep.
|
|
50
|
+
|
|
51
|
+
## Calendar-gated deferrals
|
|
52
|
+
|
|
53
|
+
- **Story 20.1 — Toolset enforcement default-ON flip.** Requires
|
|
54
|
+
≥1 week of v1.4 soak **and** a v1.4.1 maintenance cut. The cut
|
|
55
|
+
shipped today (`v1.4.1`, commit `6fb796d`). Earliest flip date:
|
|
56
|
+
2026-05-20. Will ship on its own dedicated commit when the
|
|
57
|
+
observation window closes without regressions.
|
|
58
|
+
|
|
59
|
+
## Locked decisions
|
|
60
|
+
|
|
61
|
+
1. **`OPENLIFE_BRAIN_FORECAST` stays opt-in** in v1.7. The Brain-driven
|
|
62
|
+
path is reachable for the first time, but default behavior remains
|
|
63
|
+
the synchronous heuristic forecast. A future milestone will
|
|
64
|
+
reconsider the default after observation.
|
|
65
|
+
2. **`browser` and `image_gen` toolsets stay unhooked at the call
|
|
66
|
+
site** — the registry-side `isAllowed()` still returns the right
|
|
67
|
+
answer; production hooks will land when concrete features for
|
|
68
|
+
these categories ship (they do not exist today).
|
|
69
|
+
3. **No retroactive edits to v1.4-v1.6 changelogs.** The measurement
|
|
70
|
+
correction is documented in this file; older numbers stand as
|
|
71
|
+
historical record.
|
|
72
|
+
|
|
73
|
+
## Tests added
|
|
74
|
+
|
|
75
|
+
| Test | Stories covered |
|
|
76
|
+
|---|---|
|
|
77
|
+
| `test_forecast_brain_wiring.ts` | 20.4 |
|
|
78
|
+
| extended `test_toolset_enforcement.ts` Scenario 4 | 20.2 (13 categories) |
|
|
79
|
+
|
|
80
|
+
`test:all` runs **102 markers** (up from 101 at v1.6.0).
|
|
81
|
+
|
|
82
|
+
## Honest scorecard delta vs v1.6
|
|
83
|
+
|
|
84
|
+
| Dimension | v1.6 | v1.7 | Comment |
|
|
85
|
+
|---|---|---|---|
|
|
86
|
+
| Architecture | 10.0 | **10.0** | — |
|
|
87
|
+
| Test infra | 10.0 | **10.0** | +2 markers |
|
|
88
|
+
| Documentation | 10.0 | **10.0** | release-process.md + this changelog |
|
|
89
|
+
| Code quality | 9.9 | **10.0** | any → 0 (real); CI guard now honest |
|
|
90
|
+
| Feature completeness | 10.0 | **10.0** | forecastWithBrain reachable |
|
|
91
|
+
| Asset catalog | 9.7 | **9.7** | RemotePublisher unchanged; registry still pending |
|
|
92
|
+
| Governance | 10.0 | **10.0** | — |
|
|
93
|
+
| Distribution | 10.0 | **10.0** | — |
|
|
94
|
+
|
|
95
|
+
**Weighted projection: ~9.98 / 10 → A+.** The remaining 0.02 gap is
|
|
96
|
+
Asset catalog (registry decision = product, not code). Story 20.1 +
|
|
97
|
+
21.x are the remaining levers; both gated on calendar / soak windows
|
|
98
|
+
rather than implementation work.
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# Workflow Schema — v2
|
|
2
|
+
|
|
3
|
+
> Source: `src/orchestrator/workflow/WorkflowSchema.ts`
|
|
4
|
+
> Parser: `src/orchestrator/workflow/WorkflowParser.ts`
|
|
5
|
+
> Engine: `src/orchestrator/workflow/WorkflowEngine.ts`
|
|
6
|
+
|
|
7
|
+
Workflows are YAML-declared executable sequences. v1.3 extends the v1.2
|
|
8
|
+
schema with 15 optional Hermes-mandated fields. **All v1.2 YAMLs parse
|
|
9
|
+
unchanged via the v2 parser** (asserted by
|
|
10
|
+
`test_workflow_schema_backward_compat.ts`).
|
|
11
|
+
|
|
12
|
+
## v1.2 baseline (still required)
|
|
13
|
+
|
|
14
|
+
```yaml
|
|
15
|
+
workflow:
|
|
16
|
+
id: my-workflow
|
|
17
|
+
name: My Workflow
|
|
18
|
+
type: custom # greenfield | brownfield | story-cycle | qa-loop | custom
|
|
19
|
+
version: "1.0"
|
|
20
|
+
sequence:
|
|
21
|
+
- id: step-1
|
|
22
|
+
agent: dev
|
|
23
|
+
action: build-feature
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## v1.3 extensions (all optional)
|
|
27
|
+
|
|
28
|
+
```yaml
|
|
29
|
+
workflow:
|
|
30
|
+
id: research-workflow
|
|
31
|
+
name: Research Workflow
|
|
32
|
+
type: custom
|
|
33
|
+
version: "1.0"
|
|
34
|
+
|
|
35
|
+
# ── lifecycle ──
|
|
36
|
+
status: tested # draft | tested | active | deprecated
|
|
37
|
+
mode: task # task (default) | service (must opt-in)
|
|
38
|
+
|
|
39
|
+
# ── trigger surface ──
|
|
40
|
+
triggers: [manual, cron, webhook, event]
|
|
41
|
+
|
|
42
|
+
# ── intent ──
|
|
43
|
+
objective: "produce verifiable research with cited sources"
|
|
44
|
+
success_criteria:
|
|
45
|
+
- { id: cites-all-claims, description: "all claims cite a source" }
|
|
46
|
+
- { id: contradiction-considered, description: ">=3 contradicting sources" }
|
|
47
|
+
|
|
48
|
+
# ── I/O contract ──
|
|
49
|
+
inputs:
|
|
50
|
+
- { id: brief, type: string, required: true }
|
|
51
|
+
outputs:
|
|
52
|
+
- { id: report, type: string, description: "path to final report" }
|
|
53
|
+
|
|
54
|
+
# ── context ──
|
|
55
|
+
required_context:
|
|
56
|
+
- "docs/research-policy.md"
|
|
57
|
+
|
|
58
|
+
# ── catalog refs ──
|
|
59
|
+
squads: [research-squad]
|
|
60
|
+
skills: [source-credibility-scoring]
|
|
61
|
+
|
|
62
|
+
# ── tool gating ──
|
|
63
|
+
tools:
|
|
64
|
+
allowed: [file, web, memory]
|
|
65
|
+
forbidden: [terminal]
|
|
66
|
+
|
|
67
|
+
# ── governance tags ──
|
|
68
|
+
policies: [no-uncited-claims]
|
|
69
|
+
|
|
70
|
+
# ── boundary validation ──
|
|
71
|
+
validation:
|
|
72
|
+
- { id: report-exists, description: "report path must exist", kind: artifact_exists }
|
|
73
|
+
|
|
74
|
+
# ── evidence ──
|
|
75
|
+
evidence: ["report.md", "sources.json"]
|
|
76
|
+
|
|
77
|
+
# ── failure / retry ──
|
|
78
|
+
failure_handling:
|
|
79
|
+
on_step_failure: retry # abort | continue | retry
|
|
80
|
+
max_retries: 2
|
|
81
|
+
|
|
82
|
+
# ── audit ──
|
|
83
|
+
audit_events: ["workflow.completed", "policy.violation"]
|
|
84
|
+
|
|
85
|
+
# ── learning ──
|
|
86
|
+
learning_rules:
|
|
87
|
+
- { id: store-success, trigger: on_success, description: "..." }
|
|
88
|
+
|
|
89
|
+
# ── existing sequence ──
|
|
90
|
+
sequence:
|
|
91
|
+
- id: step-1
|
|
92
|
+
agent: research-lead
|
|
93
|
+
action: plan
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Mode contract — explicit service only
|
|
97
|
+
|
|
98
|
+
- `mode: 'task'` (or omitted) — `WorkflowEngine.run()` works as normal.
|
|
99
|
+
- `mode: 'service'` — `WorkflowEngine.run()` THROWS unless caller passes
|
|
100
|
+
`{ allowServiceMode: true }`.
|
|
101
|
+
|
|
102
|
+
```ts
|
|
103
|
+
// Caller must opt in:
|
|
104
|
+
await engine.run(serviceWorkflow, ctx, { allowServiceMode: true });
|
|
105
|
+
|
|
106
|
+
// Silent promotion is refused with stable code:
|
|
107
|
+
// 'service_mode_requires_explicit_opt_in'
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
`ServiceState.promoteTaskToService()` enforces the same contract for
|
|
111
|
+
ad-hoc promotions:
|
|
112
|
+
|
|
113
|
+
```ts
|
|
114
|
+
serviceStore.promoteTaskToService(missionState, 'svc-id', objective, {
|
|
115
|
+
actor: 'rafa', // required, not 'system'/'auto'
|
|
116
|
+
consentScope: 'task_promotion', // required
|
|
117
|
+
reason: 'long-running research',
|
|
118
|
+
});
|
|
119
|
+
// Stable error codes:
|
|
120
|
+
// 'task_promotion_requires_human_actor'
|
|
121
|
+
// 'task_promotion_requires_consent_scope'
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Stable error codes (parser)
|
|
125
|
+
|
|
126
|
+
v1.2 codes (still emitted):
|
|
127
|
+
`workflow_invalid_yaml`, `workflow_invalid_schema`, `workflow_missing_root`,
|
|
128
|
+
`workflow_missing_required_field`, `workflow_invalid_type`,
|
|
129
|
+
`workflow_duplicate_step_id`, `workflow_circular_requires`,
|
|
130
|
+
`workflow_unknown_requires`, `workflow_agent_and_squad`,
|
|
131
|
+
`workflow_neither_agent_nor_squad`.
|
|
132
|
+
|
|
133
|
+
v1.3 additions:
|
|
134
|
+
- `workflow_invalid_mode` — mode not in {task, service}
|
|
135
|
+
- `workflow_invalid_tools_policy` — tools.allowed/restricted/forbidden not arrays
|
|
136
|
+
- `workflow_invalid_triggers` — triggers not array OR contains unknown name
|
|
137
|
+
- `workflow_invalid_success_criteria` — entry missing {id, description}
|
|
138
|
+
|
|
139
|
+
## Step-level fields (unchanged)
|
|
140
|
+
|
|
141
|
+
```yaml
|
|
142
|
+
- id: <unique>
|
|
143
|
+
agent: <name> | squad: <name> # exactly one
|
|
144
|
+
action: <action-name>
|
|
145
|
+
task: <task-file.md> # optional, looked up in templates
|
|
146
|
+
creates: [<artifact>, ...]
|
|
147
|
+
updates: [<artifact>, ...]
|
|
148
|
+
requires: <step-id-or-artifact> # dependency
|
|
149
|
+
duration_estimate: "30-60 min"
|
|
150
|
+
condition: <boolean-literal> # v1.2 supports only literal flags
|
|
151
|
+
optional: true | false
|
|
152
|
+
elicit: true | false # pauses run with status=awaiting_input
|
|
153
|
+
idempotent: true | false # safe to re-execute on resume
|
|
154
|
+
notes: |
|
|
155
|
+
Free-text operator notes carried into the run log.
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## What's NOT in v1.3
|
|
159
|
+
|
|
160
|
+
- **Expression-language `condition`** — still literal boolean flag only.
|
|
161
|
+
v1.4 introduces a tiny expression parser.
|
|
162
|
+
- **Cross-workflow `requires`** — references must stay within the same
|
|
163
|
+
workflow.
|
|
164
|
+
- **`on_step_failure: parallel`** — only sequential retry/abort/continue.
|
|
165
|
+
|
|
166
|
+
## Migration checklist (v1.2 → v1.3 YAMLs)
|
|
167
|
+
|
|
168
|
+
- ✓ No changes required. All fields are additive.
|
|
169
|
+
- ✓ Adopt `mode: 'service'` only when you're ready for the explicit-opt-in contract.
|
|
170
|
+
- ✓ Adopt `tools:` policy when your operators want runtime gating.
|
|
171
|
+
|
|
172
|
+
## Test references
|
|
173
|
+
|
|
174
|
+
- `test_workflow_parser.ts` — v1.2 parser regression
|
|
175
|
+
- `test_workflow_schema_backward_compat.ts` — v1.3 schema additions + v1.2 fixtures
|
|
176
|
+
- `test_workflow_engine.ts` — engine integration
|
|
177
|
+
- `test_service_mode_explicit_only.ts` — mode contract
|
package/package.json
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@openlife/cli",
|
|
3
|
+
"version": "1.7.3",
|
|
4
|
+
"description": "OPEN-LIFE Córtex Orquestrador Dual-Core",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"files": [
|
|
7
|
+
"dist",
|
|
8
|
+
"bin",
|
|
9
|
+
"scripts",
|
|
10
|
+
"docs",
|
|
11
|
+
"dist-templates",
|
|
12
|
+
"LICENSE",
|
|
13
|
+
"README.md",
|
|
14
|
+
"INSTALL.md",
|
|
15
|
+
"package.json"
|
|
16
|
+
],
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "https://github.com/GOOODZ/openlife-core.git"
|
|
20
|
+
},
|
|
21
|
+
"homepage": "https://github.com/GOOODZ/openlife-core",
|
|
22
|
+
"bugs": {
|
|
23
|
+
"url": "https://github.com/GOOODZ/openlife-core/issues"
|
|
24
|
+
},
|
|
25
|
+
"bin": {
|
|
26
|
+
"openlife": "./bin/openlife.js"
|
|
27
|
+
},
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "tsc",
|
|
30
|
+
"start": "node dist/index.js start --daemon",
|
|
31
|
+
"dev": "ts-node src/index.ts",
|
|
32
|
+
"admin": "ts-node src/admin_panel_server.ts",
|
|
33
|
+
"phase1-check": "node dist/index.js phase1-check",
|
|
34
|
+
"postinstall": "bash ./scripts/postinstall-check.sh",
|
|
35
|
+
"test:distribution": "npm run build && node dist/test_distribution_installability.js",
|
|
36
|
+
"test:orchestration": "npm run build && node dist/test_orchestration_assets_lifecycle.js",
|
|
37
|
+
"test:runtime-source": "npm run build && node dist/test_openlife_runtime_source_truth.js",
|
|
38
|
+
"test:evolution-surface": "npm run build && node dist/test_openlife_evolution_surface.js",
|
|
39
|
+
"test:routing-surface": "npm run build && node dist/test_openlife_routing_surface.js",
|
|
40
|
+
"test:auto-creator-routing": "npm run build && node dist/test_openlife_auto_creator_routing.js",
|
|
41
|
+
"test:gatekeeper-routing": "npm run build && node dist/test_openlife_gatekeeper_routing.js",
|
|
42
|
+
"test:enterprise-agentic": "npm run build && node dist/test_enterprise_agentic_core.js",
|
|
43
|
+
"test:admin-teams-networks": "npm run build && node dist/test_admin_teams_networks.js",
|
|
44
|
+
"test:agent-team-skill-network": "npm run build && node dist/test_agent_team_skill_network.js",
|
|
45
|
+
"test:benchmark-engine": "npm run build && node dist/test_benchmark_engine.js",
|
|
46
|
+
"test:cli-service-commands": "npm run build && node dist/test_cli_service_commands.js",
|
|
47
|
+
"test:consequence-forecaster": "npm run build && node dist/test_consequence_forecaster.js",
|
|
48
|
+
"test:conversation-memory": "npm run build && node dist/test_conversation_memory.js",
|
|
49
|
+
"test:create-entities": "npm run build && node dist/test_create_entities.js",
|
|
50
|
+
"test:designmd-import-registry": "npm run build && node dist/test_designmd_import_registry.js",
|
|
51
|
+
"test:designmd-mode": "npm run build && node dist/test_designmd_mode.js",
|
|
52
|
+
"test:designmd-mode-workspace": "npm run build && node dist/test_designmd_mode_workspace.js",
|
|
53
|
+
"test:dream-organizer": "npm run build && node dist/test_dream_organizer.js",
|
|
54
|
+
"test:dual-mode": "npm run build && node dist/test_dual_mode.js",
|
|
55
|
+
"test:governance": "npm run build && node dist/test_governance.js",
|
|
56
|
+
"test:governance-advanced": "npm run build && node dist/test_governance_advanced.js",
|
|
57
|
+
"test:install-flow": "npm run build && node dist/test_install_flow.js",
|
|
58
|
+
"test:job-lifecycle": "npm run build && node dist/test_job_lifecycle.js",
|
|
59
|
+
"test:memory-orchestrator": "npm run build && node dist/test_memory_orchestrator.js",
|
|
60
|
+
"test:memory-promotion": "npm run build && node dist/test_memory_promotion.js",
|
|
61
|
+
"test:memory-retention": "npm run build && node dist/test_memory_retention.js",
|
|
62
|
+
"test:operating-system": "npm run build && node dist/test_operating_system.js",
|
|
63
|
+
"test:optimization-loop": "npm run build && node dist/test_optimization_loop.js",
|
|
64
|
+
"test:outcome-simulator": "npm run build && node dist/test_outcome_simulator.js",
|
|
65
|
+
"test:performance-scorecard": "npm run build && node dist/test_performance_scorecard.js",
|
|
66
|
+
"test:phase6-board": "npm run build && node dist/test_phase6_board.js",
|
|
67
|
+
"test:phase6-cadence": "npm run build && node dist/test_phase6_cadence.js",
|
|
68
|
+
"test:phase6-ops": "npm run build && node dist/test_phase6_ops.js",
|
|
69
|
+
"test:release-gate": "npm run build && node dist/test_release_gate.js",
|
|
70
|
+
"test:reversa-contracts-e2e": "npm run build && node dist/test_reversa_contracts_e2e.js",
|
|
71
|
+
"test:reversa-export-and-strict": "npm run build && node dist/test_reversa_export_and_strict.js",
|
|
72
|
+
"test:reversa-full-execution": "npm run build && node dist/test_reversa_full_execution.js",
|
|
73
|
+
"test:reversa-lite": "npm run build && node dist/test_reversa_lite.js",
|
|
74
|
+
"test:runtime-policy": "npm run build && node dist/test_runtime_policy.js",
|
|
75
|
+
"test:runtime-probe": "npm run build && node dist/test_runtime_probe.js",
|
|
76
|
+
"test:runtime-registry": "npm run build && node dist/test_runtime_registry.js",
|
|
77
|
+
"test:security-download-guard": "npm run build && node dist/test_security_download_guard.js",
|
|
78
|
+
"test:service-command-surface": "npm run build && node dist/test_service_command_surface.js",
|
|
79
|
+
"test:service-completion-policy": "npm run build && node dist/test_service_completion_policy.js",
|
|
80
|
+
"test:service-guardrails-delete": "npm run build && node dist/test_service_guardrails_delete.js",
|
|
81
|
+
"test:sources-import-ref": "npm run build && node dist/test_sources_import_ref.js",
|
|
82
|
+
"test:sources-scaffold": "npm run build && node dist/test_sources_scaffold.js",
|
|
83
|
+
"test:teammate-learning": "npm run build && node dist/test_teammate_learning.js",
|
|
84
|
+
"test:telegram-delete-guardrail": "npm run build && node dist/test_telegram_delete_guardrail.js",
|
|
85
|
+
"test:daemon-sigterm": "npm run build && node dist/test_daemon_sigterm.js",
|
|
86
|
+
"test:ask-exit": "npm run build && node dist/test_ask_exit.js",
|
|
87
|
+
"test:brain-error-diagnostics": "npm run build && node dist/test_brain_error_diagnostics.js",
|
|
88
|
+
"test:cli-doc-parity": "npm run build && node dist/test_cli_doc_parity.js",
|
|
89
|
+
"test:trigger-basic-auth": "npm run build && node dist/test_trigger_basic_auth.js",
|
|
90
|
+
"test:brain-fallback-chain": "npm run build && node dist/test_brain_fallback_chain.js",
|
|
91
|
+
"test:cli-help-surface": "npm run build && node dist/test_cli_help_surface.js",
|
|
92
|
+
"test:cli-diagnostics": "npm run build && node dist/test_cli_diagnostics.js",
|
|
93
|
+
"test:cli-crud-roundtrip": "npm run build && node dist/test_cli_crud_roundtrip.js",
|
|
94
|
+
"test:subsystems-routing-governance": "npm run build && node dist/test_subsystems_routing_governance.js",
|
|
95
|
+
"test:subsystems-org-state": "npm run build && node dist/test_subsystems_org_state.js",
|
|
96
|
+
"test:subsystems-promotion-memory-assets": "npm run build && node dist/test_subsystems_promotion_memory_assets.js",
|
|
97
|
+
"test:integration-gemini": "npm run build && node dist/test_integration_gemini_live.js",
|
|
98
|
+
"test:integration-telegram": "npm run build && node dist/test_integration_telegram_live.js",
|
|
99
|
+
"test:integration-http": "npm run build && node dist/test_integration_http_trigger_live.js",
|
|
100
|
+
"test:integrations": "npm run build && node dist/test_integration_gemini_live.js && node dist/test_integration_http_trigger_live.js && node dist/test_integration_telegram_live.js",
|
|
101
|
+
"test:phase1-check-exit": "npm run build && node dist/test_phase1_check_exit.js",
|
|
102
|
+
"test:install-flow-host-validation": "npm run build && node dist/test_install_flow_host_validation.js",
|
|
103
|
+
"test:dist-templates-layout": "npm run build && node dist/test_dist_templates_layout.js",
|
|
104
|
+
"test:host-installer": "npm run build && node dist/test_host_installer.js",
|
|
105
|
+
"test:host-uninstaller": "npm run build && node dist/test_host_uninstaller.js",
|
|
106
|
+
"test:install-wizard": "npm run build && node dist/test_install_wizard.js",
|
|
107
|
+
"test:multi-host-docs-parity": "npm run build && node dist/test_multi_host_docs_parity.js",
|
|
108
|
+
"test:host-install-e2e": "npm run build && node dist/test_host_install_e2e.js",
|
|
109
|
+
"test:runtime-profile-oauth-only": "npm run build && node dist/test_runtime_profile_oauth_only.js",
|
|
110
|
+
"test:atomic-writer": "npm run build && node dist/test_atomic_writer.js",
|
|
111
|
+
"test:mission-checkpoint": "npm run build && node dist/test_mission_checkpoint.js",
|
|
112
|
+
"test:workflow-parser": "npm run build && node dist/test_workflow_parser.js",
|
|
113
|
+
"test:workflow-engine": "npm run build && node dist/test_workflow_engine.js",
|
|
114
|
+
"test:workflow-e2e": "npm run build && node dist/test_workflow_e2e.js",
|
|
115
|
+
"test:distributed-lock": "npm run build && node dist/test_distributed_lock.js",
|
|
116
|
+
"test:watchdog-heartbeat": "npm run build && node dist/test_watchdog_heartbeat.js",
|
|
117
|
+
"test:runtime-health-backoff": "npm run build && node dist/test_runtime_health_backoff.js",
|
|
118
|
+
"test:queue-scheduler": "npm run build && node dist/test_queue_scheduler.js",
|
|
119
|
+
"test:squad-skill-creator": "npm run build && node dist/test_squad_skill_creator.js",
|
|
120
|
+
"test:aiobuilder-cli-parity": "npm run build && node dist/test_aiobuilder_cli_parity.js",
|
|
121
|
+
"test:catalog-quality": "npm run build && node dist/test_catalog_quality.js",
|
|
122
|
+
"test:royal-stack-golden": "npm run build && node dist/test_royal_stack_golden.js",
|
|
123
|
+
"test:soak": "npm run build && node dist/test_autonomous_soak.js",
|
|
124
|
+
"test:capability-pack-schema": "npm run build && node dist/test_capability_pack_schema.js",
|
|
125
|
+
"test:capability-genesis-engine": "npm run build && node dist/test_capability_genesis_engine.js",
|
|
126
|
+
"test:workflow-schema-backward-compat": "npm run build && node dist/test_workflow_schema_backward_compat.js",
|
|
127
|
+
"test:service-mode-explicit-only": "npm run build && node dist/test_service_mode_explicit_only.js",
|
|
128
|
+
"test:deep-research-capability": "npm run build && node dist/test_deep_research_capability.js",
|
|
129
|
+
"test:guided-creator-cli": "npm run build && node dist/test_guided_creator_cli.js",
|
|
130
|
+
"test:governance-v13-policies": "npm run build && node dist/test_governance_v13_policies.js",
|
|
131
|
+
"test:gateway-telegram-guardrails": "npm run build && node dist/test_gateway_telegram_guardrails.js",
|
|
132
|
+
"test:cron-manager": "npm run build && node dist/test_cron_manager.js",
|
|
133
|
+
"test:profile-toolset-mcp": "npm run build && node dist/test_profile_toolset_mcp.js",
|
|
134
|
+
"test:squad-skill-design-llm": "npm run build && node dist/test_squad_skill_design_llm.js",
|
|
135
|
+
"test:workflow-condition-parser": "npm run build && node dist/test_workflow_condition_parser.js",
|
|
136
|
+
"test:security-download-and-scan": "npm run build && node dist/test_security_download_and_scan.js",
|
|
137
|
+
"test:host-installers-gemini-codex": "npm run build && node dist/test_host_installers_gemini_codex.js",
|
|
138
|
+
"test:toolset-enforcement": "npm run build && node dist/test_toolset_enforcement.js",
|
|
139
|
+
"test:creator-placeholders-completed": "npm run build && node dist/test_creator_placeholders_completed.js",
|
|
140
|
+
"test:performance-latency": "npm run build && node dist/test_performance_latency.js",
|
|
141
|
+
"test:post-mission-evaluation": "npm run build && node dist/test_post_mission_evaluation.js",
|
|
142
|
+
"test:governance-scope-ledger": "npm run build && node dist/test_governance_scope_ledger.js",
|
|
143
|
+
"test:consequence-forecast-brain": "npm run build && node dist/test_consequence_forecast_brain.js",
|
|
144
|
+
"test:remote-publish": "npm run build && node dist/test_remote_publish.js",
|
|
145
|
+
"test:process-sandbox": "npm run build && node dist/test_process_sandbox.js",
|
|
146
|
+
"test:v15-e2e-integration": "npm run build && node dist/test_v15_e2e_integration.js",
|
|
147
|
+
"test:doctor-sandbox-check": "npm run build && node dist/test_doctor_sandbox_check.js",
|
|
148
|
+
"test:task-executor-sandbox-optin": "npm run build && node dist/test_task_executor_sandbox_optin.js",
|
|
149
|
+
"test:forecast-brain-wiring": "npm run build && node dist/test_forecast_brain_wiring.js",
|
|
150
|
+
"pretest:all": "node scripts/clean-test-pollution.js",
|
|
151
|
+
"test:all": "npm run build && node dist/test_distribution_installability.js && node dist/test_orchestration_assets_lifecycle.js && node dist/test_openlife_runtime_source_truth.js && node dist/test_openlife_evolution_surface.js && node dist/test_openlife_routing_surface.js && node dist/test_openlife_auto_creator_routing.js && node dist/test_openlife_gatekeeper_routing.js && node dist/test_enterprise_agentic_core.js && node dist/test_admin_teams_networks.js && node dist/test_agent_team_skill_network.js && node dist/test_benchmark_engine.js && node dist/test_cli_service_commands.js && node dist/test_consequence_forecaster.js && node dist/test_conversation_memory.js && node dist/test_create_entities.js && node dist/test_designmd_import_registry.js && node dist/test_designmd_mode.js && node dist/test_designmd_mode_workspace.js && node dist/test_dream_organizer.js && node dist/test_dual_mode.js && node dist/test_governance.js && node dist/test_governance_advanced.js && node dist/test_install_flow.js && node dist/test_job_lifecycle.js && node dist/test_memory_orchestrator.js && node dist/test_memory_promotion.js && node dist/test_memory_retention.js && node dist/test_operating_system.js && node dist/test_optimization_loop.js && node dist/test_outcome_simulator.js && node dist/test_performance_scorecard.js && node dist/test_phase6_board.js && node dist/test_phase6_cadence.js && node dist/test_phase6_ops.js && node dist/test_release_gate.js && node dist/test_reversa_contracts_e2e.js && node dist/test_reversa_export_and_strict.js && node dist/test_reversa_full_execution.js && node dist/test_reversa_lite.js && node dist/test_runtime_policy.js && node dist/test_runtime_probe.js && node dist/test_runtime_registry.js && node dist/test_security_download_guard.js && node dist/test_service_command_surface.js && node dist/test_service_completion_policy.js && node dist/test_service_guardrails_delete.js && node dist/test_sources_import_ref.js && node dist/test_sources_scaffold.js && node dist/test_teammate_learning.js && node dist/test_telegram_delete_guardrail.js && node dist/test_daemon_sigterm.js && node dist/test_ask_exit.js && node dist/test_brain_error_diagnostics.js && node dist/test_cli_doc_parity.js && node dist/test_trigger_basic_auth.js && node dist/test_brain_fallback_chain.js && node dist/test_cli_help_surface.js && node dist/test_cli_diagnostics.js && node dist/test_cli_crud_roundtrip.js && node dist/test_subsystems_routing_governance.js && node dist/test_subsystems_org_state.js && node dist/test_subsystems_promotion_memory_assets.js && node dist/test_phase1_check_exit.js && node dist/test_install_flow_host_validation.js && node dist/test_dist_templates_layout.js && node dist/test_host_installer.js && node dist/test_host_uninstaller.js && node dist/test_install_wizard.js && node dist/test_multi_host_docs_parity.js && node dist/test_host_install_e2e.js && node dist/test_runtime_profile_oauth_only.js && node dist/test_atomic_writer.js && node dist/test_mission_checkpoint.js && node dist/test_workflow_parser.js && node dist/test_workflow_engine.js && node dist/test_workflow_e2e.js && node dist/test_distributed_lock.js && node dist/test_watchdog_heartbeat.js && node dist/test_runtime_health_backoff.js && node dist/test_queue_scheduler.js && node dist/test_squad_skill_creator.js && node dist/test_aiobuilder_cli_parity.js && node dist/test_catalog_quality.js && node dist/test_royal_stack_golden.js && node dist/test_capability_pack_schema.js && node dist/test_capability_genesis_engine.js && node dist/test_workflow_schema_backward_compat.js && node dist/test_service_mode_explicit_only.js && node dist/test_deep_research_capability.js && node dist/test_guided_creator_cli.js && node dist/test_governance_v13_policies.js && node dist/test_gateway_telegram_guardrails.js && node dist/test_cron_manager.js && node dist/test_profile_toolset_mcp.js && node dist/test_squad_skill_design_llm.js && node dist/test_workflow_condition_parser.js && node dist/test_security_download_and_scan.js && node dist/test_host_installers_gemini_codex.js && node dist/test_toolset_enforcement.js && node dist/test_creator_placeholders_completed.js && node dist/test_performance_latency.js && node dist/test_post_mission_evaluation.js && node dist/test_governance_scope_ledger.js && node dist/test_consequence_forecast_brain.js && node dist/test_remote_publish.js && node dist/test_process_sandbox.js && node dist/test_v15_e2e_integration.js && node dist/test_doctor_sandbox_check.js && node dist/test_task_executor_sandbox_optin.js && node dist/test_forecast_brain_wiring.js",
|
|
152
|
+
"prepublishOnly": "npm run test:all"
|
|
153
|
+
},
|
|
154
|
+
"dependencies": {
|
|
155
|
+
"@anthropic-ai/sdk": "^0.86.1",
|
|
156
|
+
"@google/generative-ai": "^0.24.1",
|
|
157
|
+
"axios": "^1.15.0",
|
|
158
|
+
"commander": "^11.1.0",
|
|
159
|
+
"dotenv": "^16.3.1",
|
|
160
|
+
"express": "^5.2.1",
|
|
161
|
+
"fluent-ffmpeg": "^2.1.3",
|
|
162
|
+
"js-yaml": "^4.1.1",
|
|
163
|
+
"openai": "^6.33.0",
|
|
164
|
+
"telegraf": "^4.15.0",
|
|
165
|
+
"zod": "^3.22.4"
|
|
166
|
+
},
|
|
167
|
+
"devDependencies": {
|
|
168
|
+
"@types/express": "^5.0.6",
|
|
169
|
+
"@types/fluent-ffmpeg": "^2.1.28",
|
|
170
|
+
"@types/js-yaml": "^4.0.9",
|
|
171
|
+
"@types/node": "^20.10.0",
|
|
172
|
+
"ts-node": "^10.9.1",
|
|
173
|
+
"typescript": "^5.3.2"
|
|
174
|
+
},
|
|
175
|
+
"author": "Rafa Leão / Dani",
|
|
176
|
+
"license": "MIT"
|
|
177
|
+
}
|