@alan512/experienceengine 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +0 -0
- package/.claude-plugin/plugin.json +1 -1
- package/.env.example +0 -0
- package/.mcp.json +4 -8
- package/LICENSE +21 -0
- package/README.md +288 -95
- package/README.zh-CN.md +316 -65
- package/dist/adapters/claude-code/event-store.d.ts +0 -0
- package/dist/adapters/claude-code/event-store.js +0 -0
- package/dist/adapters/claude-code/event-store.js.map +0 -0
- package/dist/adapters/claude-code/hook-normalizer.d.ts +0 -0
- package/dist/adapters/claude-code/hook-normalizer.js +0 -0
- package/dist/adapters/claude-code/hook-normalizer.js.map +0 -0
- package/dist/adapters/claude-code/runtime-projection.d.ts +0 -0
- package/dist/adapters/claude-code/runtime-projection.js +0 -0
- package/dist/adapters/claude-code/runtime-projection.js.map +0 -0
- package/dist/adapters/claude-code/session-store.d.ts +1 -0
- package/dist/adapters/claude-code/session-store.js +24 -1
- package/dist/adapters/claude-code/session-store.js.map +1 -1
- package/dist/adapters/codex/action-registry.d.ts +84 -0
- package/dist/adapters/codex/action-registry.js +277 -0
- package/dist/adapters/codex/action-registry.js.map +1 -0
- package/dist/adapters/codex/broker-tools.d.ts +114 -0
- package/dist/adapters/codex/broker-tools.js +130 -0
- package/dist/adapters/codex/broker-tools.js.map +1 -0
- package/dist/adapters/codex/instruction-template.d.ts +3 -0
- package/dist/adapters/codex/instruction-template.js +12 -0
- package/dist/adapters/codex/instruction-template.js.map +1 -0
- package/dist/adapters/codex/mcp-server.d.ts +59 -41
- package/dist/adapters/codex/mcp-server.js +177 -728
- package/dist/adapters/codex/mcp-server.js.map +1 -1
- package/dist/analyzer/candidate-signals.d.ts +3 -1
- package/dist/analyzer/candidate-signals.js +159 -0
- package/dist/analyzer/candidate-signals.js.map +1 -1
- package/dist/analyzer/experience-analyzer.d.ts +0 -0
- package/dist/analyzer/experience-analyzer.js +0 -0
- package/dist/analyzer/experience-analyzer.js.map +0 -0
- package/dist/analyzer/extraction-evidence.d.ts +0 -0
- package/dist/analyzer/extraction-evidence.js +0 -0
- package/dist/analyzer/extraction-evidence.js.map +0 -0
- package/dist/analyzer/llm-learning-gate.d.ts +12 -1
- package/dist/analyzer/llm-learning-gate.js +672 -16
- package/dist/analyzer/llm-learning-gate.js.map +1 -1
- package/dist/analyzer/node-deduper.d.ts +0 -0
- package/dist/analyzer/node-deduper.js +0 -0
- package/dist/analyzer/node-deduper.js.map +0 -0
- package/dist/analyzer/node-normalizer.d.ts +0 -0
- package/dist/analyzer/node-normalizer.js +0 -0
- package/dist/analyzer/node-normalizer.js.map +0 -0
- package/dist/analyzer/storage-gate.d.ts +0 -0
- package/dist/analyzer/storage-gate.js +0 -0
- package/dist/analyzer/storage-gate.js.map +0 -0
- package/dist/analyzer/strategy-extractor.d.ts +0 -0
- package/dist/analyzer/strategy-extractor.js +0 -0
- package/dist/analyzer/strategy-extractor.js.map +0 -0
- package/dist/analyzer/warning-extractor.d.ts +0 -0
- package/dist/analyzer/warning-extractor.js +0 -0
- package/dist/analyzer/warning-extractor.js.map +0 -0
- package/dist/cli/commands/backup.d.ts +0 -0
- package/dist/cli/commands/backup.js +0 -0
- package/dist/cli/commands/backup.js.map +0 -0
- package/dist/cli/commands/claude-hook.d.ts +0 -0
- package/dist/cli/commands/claude-hook.js +23 -7
- package/dist/cli/commands/claude-hook.js.map +1 -1
- package/dist/cli/commands/codex-mcp-server.d.ts +0 -0
- package/dist/cli/commands/codex-mcp-server.js +0 -0
- package/dist/cli/commands/codex-mcp-server.js.map +0 -0
- package/dist/cli/commands/codex.d.ts +60 -0
- package/dist/cli/commands/codex.js +188 -0
- package/dist/cli/commands/codex.js.map +1 -0
- package/dist/cli/commands/config.d.ts +0 -0
- package/dist/cli/commands/config.js +88 -2
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/cool.d.ts +0 -0
- package/dist/cli/commands/cool.js +0 -0
- package/dist/cli/commands/cool.js.map +0 -0
- package/dist/cli/commands/disable.d.ts +0 -0
- package/dist/cli/commands/disable.js +0 -0
- package/dist/cli/commands/disable.js.map +0 -0
- package/dist/cli/commands/doctor.d.ts +4 -28
- package/dist/cli/commands/doctor.js +156 -68
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/enable.d.ts +0 -0
- package/dist/cli/commands/enable.js +0 -0
- package/dist/cli/commands/enable.js.map +0 -0
- package/dist/cli/commands/evaluate.d.ts +9 -3
- package/dist/cli/commands/evaluate.js +31 -5
- package/dist/cli/commands/evaluate.js.map +1 -1
- package/dist/cli/commands/export.d.ts +0 -0
- package/dist/cli/commands/export.js +0 -0
- package/dist/cli/commands/export.js.map +0 -0
- package/dist/cli/commands/feedback.d.ts +0 -0
- package/dist/cli/commands/feedback.js +4 -0
- package/dist/cli/commands/feedback.js.map +1 -1
- package/dist/cli/commands/import.d.ts +0 -0
- package/dist/cli/commands/import.js +0 -0
- package/dist/cli/commands/import.js.map +0 -0
- package/dist/cli/commands/init.d.ts +28 -0
- package/dist/cli/commands/init.js +432 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/inspect.d.ts +0 -0
- package/dist/cli/commands/inspect.js +271 -37
- package/dist/cli/commands/inspect.js.map +1 -1
- package/dist/cli/commands/install.d.ts +0 -0
- package/dist/cli/commands/install.js +9 -0
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/maintenance.d.ts +0 -0
- package/dist/cli/commands/maintenance.js +1 -1
- package/dist/cli/commands/maintenance.js.map +1 -1
- package/dist/cli/commands/mcp-server.d.ts +0 -0
- package/dist/cli/commands/mcp-server.js +4 -0
- package/dist/cli/commands/mcp-server.js.map +1 -1
- package/dist/cli/commands/models.d.ts +0 -0
- package/dist/cli/commands/models.js +0 -0
- package/dist/cli/commands/models.js.map +0 -0
- package/dist/cli/commands/repair.d.ts +0 -0
- package/dist/cli/commands/repair.js +3 -3
- package/dist/cli/commands/repair.js.map +1 -1
- package/dist/cli/commands/retire.d.ts +0 -0
- package/dist/cli/commands/retire.js +0 -0
- package/dist/cli/commands/retire.js.map +0 -0
- package/dist/cli/commands/rollback.d.ts +0 -0
- package/dist/cli/commands/rollback.js +0 -0
- package/dist/cli/commands/rollback.js.map +0 -0
- package/dist/cli/commands/stats.d.ts +0 -0
- package/dist/cli/commands/stats.js +0 -0
- package/dist/cli/commands/stats.js.map +0 -0
- package/dist/cli/commands/status.d.ts +0 -0
- package/dist/cli/commands/status.js +89 -7
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/upgrade.d.ts +0 -0
- package/dist/cli/commands/upgrade.js +0 -0
- package/dist/cli/commands/upgrade.js.map +0 -0
- package/dist/cli/dispatch.d.ts +0 -0
- package/dist/cli/dispatch.js +36 -9
- package/dist/cli/dispatch.js.map +1 -1
- package/dist/cli/index.d.ts +0 -0
- package/dist/cli/index.js.map +0 -0
- package/dist/cli/state-model.d.ts +14 -0
- package/dist/cli/state-model.js +23 -0
- package/dist/cli/state-model.js.map +1 -0
- package/dist/config/config-schema.d.ts +209 -0
- package/dist/config/config-schema.js +168 -1
- package/dist/config/config-schema.js.map +1 -1
- package/dist/config/default-config.d.ts +0 -0
- package/dist/config/default-config.js +22 -1
- package/dist/config/default-config.js.map +1 -1
- package/dist/config/load-config.d.ts +0 -0
- package/dist/config/load-config.js +91 -2
- package/dist/config/load-config.js.map +1 -1
- package/dist/config/path-resolver.d.ts +0 -1
- package/dist/config/path-resolver.js +0 -2
- package/dist/config/path-resolver.js.map +1 -1
- package/dist/config/runtime-env.d.ts +8 -0
- package/dist/config/runtime-env.js +14 -0
- package/dist/config/runtime-env.js.map +1 -0
- package/dist/config/secrets-store.d.ts +15 -0
- package/dist/config/secrets-store.js +56 -0
- package/dist/config/secrets-store.js.map +1 -0
- package/dist/config/settings-store.d.ts +29 -0
- package/dist/config/settings-store.js +55 -0
- package/dist/config/settings-store.js.map +1 -1
- package/dist/controller/candidate-retriever.d.ts +49 -2
- package/dist/controller/candidate-retriever.js +258 -125
- package/dist/controller/candidate-retriever.js.map +1 -1
- package/dist/controller/injection-renderer.d.ts +0 -0
- package/dist/controller/injection-renderer.js +52 -1
- package/dist/controller/injection-renderer.js.map +1 -1
- package/dist/controller/injection-scorecard.d.ts +2 -2
- package/dist/controller/injection-scorecard.js +47 -1
- package/dist/controller/injection-scorecard.js.map +1 -1
- package/dist/controller/inline-notice.d.ts +0 -0
- package/dist/controller/inline-notice.js +0 -0
- package/dist/controller/inline-notice.js.map +0 -0
- package/dist/controller/intervention-controller.d.ts +3 -2
- package/dist/controller/intervention-controller.js +339 -17
- package/dist/controller/intervention-controller.js.map +1 -1
- package/dist/controller/lexical-retriever.d.ts +14 -0
- package/dist/controller/lexical-retriever.js +117 -0
- package/dist/controller/lexical-retriever.js.map +1 -0
- package/dist/controller/model-reranker.d.ts +20 -0
- package/dist/controller/model-reranker.js +187 -0
- package/dist/controller/model-reranker.js.map +1 -0
- package/dist/controller/node-ranker.d.ts +0 -0
- package/dist/controller/node-ranker.js +1 -0
- package/dist/controller/node-ranker.js.map +1 -1
- package/dist/controller/policy-enricher.d.ts +10 -0
- package/dist/controller/policy-enricher.js +186 -0
- package/dist/controller/policy-enricher.js.map +1 -0
- package/dist/controller/query-rewrite.d.ts +8 -0
- package/dist/controller/query-rewrite.js +69 -0
- package/dist/controller/query-rewrite.js.map +1 -0
- package/dist/controller/retrieval-context.d.ts +3 -0
- package/dist/controller/retrieval-context.js +37 -0
- package/dist/controller/retrieval-context.js.map +1 -0
- package/dist/controller/second-opinion-gate.d.ts +41 -0
- package/dist/controller/second-opinion-gate.js +225 -0
- package/dist/controller/second-opinion-gate.js.map +1 -0
- package/dist/controller/trigger-evaluator.d.ts +27 -2
- package/dist/controller/trigger-evaluator.js +63 -3
- package/dist/controller/trigger-evaluator.js.map +1 -1
- package/dist/distillation/errors.d.ts +0 -0
- package/dist/distillation/errors.js +0 -0
- package/dist/distillation/errors.js.map +0 -0
- package/dist/distillation/experience-family.d.ts +4 -0
- package/dist/distillation/experience-family.js +14 -0
- package/dist/distillation/experience-family.js.map +1 -0
- package/dist/distillation/host-llm.d.ts +1 -0
- package/dist/distillation/host-llm.js +5 -1
- package/dist/distillation/host-llm.js.map +1 -1
- package/dist/distillation/llm-distiller.d.ts +0 -0
- package/dist/distillation/llm-distiller.js +4 -0
- package/dist/distillation/llm-distiller.js.map +1 -1
- package/dist/distillation/merge-decider.d.ts +0 -0
- package/dist/distillation/merge-decider.js +4 -0
- package/dist/distillation/merge-decider.js.map +1 -1
- package/dist/distillation/model-catalog.d.ts +0 -0
- package/dist/distillation/model-catalog.js +0 -0
- package/dist/distillation/model-catalog.js.map +0 -0
- package/dist/distillation/prompt-contract.d.ts +1 -1
- package/dist/distillation/prompt-contract.js +6 -1
- package/dist/distillation/prompt-contract.js.map +1 -1
- package/dist/distillation/providers/anthropic.d.ts +0 -0
- package/dist/distillation/providers/anthropic.js +0 -0
- package/dist/distillation/providers/anthropic.js.map +0 -0
- package/dist/distillation/providers/azure-openai.d.ts +0 -0
- package/dist/distillation/providers/azure-openai.js +0 -0
- package/dist/distillation/providers/azure-openai.js.map +0 -0
- package/dist/distillation/providers/baidu-qianfan.d.ts +0 -0
- package/dist/distillation/providers/baidu-qianfan.js +0 -0
- package/dist/distillation/providers/baidu-qianfan.js.map +0 -0
- package/dist/distillation/providers/bedrock.d.ts +0 -0
- package/dist/distillation/providers/bedrock.js +0 -0
- package/dist/distillation/providers/bedrock.js.map +0 -0
- package/dist/distillation/providers/dashscope.d.ts +0 -0
- package/dist/distillation/providers/dashscope.js +0 -0
- package/dist/distillation/providers/dashscope.js.map +0 -0
- package/dist/distillation/providers/deepseek.d.ts +0 -0
- package/dist/distillation/providers/deepseek.js +0 -0
- package/dist/distillation/providers/deepseek.js.map +0 -0
- package/dist/distillation/providers/gemini.d.ts +0 -0
- package/dist/distillation/providers/gemini.js +5 -1
- package/dist/distillation/providers/gemini.js.map +1 -1
- package/dist/distillation/providers/google-adc.d.ts +0 -0
- package/dist/distillation/providers/google-adc.js +0 -0
- package/dist/distillation/providers/google-adc.js.map +0 -0
- package/dist/distillation/providers/minimax.d.ts +0 -0
- package/dist/distillation/providers/minimax.js +0 -0
- package/dist/distillation/providers/minimax.js.map +0 -0
- package/dist/distillation/providers/moonshot.d.ts +0 -0
- package/dist/distillation/providers/moonshot.js +0 -0
- package/dist/distillation/providers/moonshot.js.map +0 -0
- package/dist/distillation/providers/openai-compatible-factory.d.ts +0 -0
- package/dist/distillation/providers/openai-compatible-factory.js +0 -0
- package/dist/distillation/providers/openai-compatible-factory.js.map +0 -0
- package/dist/distillation/providers/openai-compatible.d.ts +0 -0
- package/dist/distillation/providers/openai-compatible.js +0 -0
- package/dist/distillation/providers/openai-compatible.js.map +0 -0
- package/dist/distillation/providers/openai.d.ts +0 -0
- package/dist/distillation/providers/openai.js +0 -0
- package/dist/distillation/providers/openai.js.map +0 -0
- package/dist/distillation/providers/openrouter.d.ts +0 -0
- package/dist/distillation/providers/openrouter.js +0 -0
- package/dist/distillation/providers/openrouter.js.map +0 -0
- package/dist/distillation/providers/registry.d.ts +0 -0
- package/dist/distillation/providers/registry.js +0 -0
- package/dist/distillation/providers/registry.js.map +0 -0
- package/dist/distillation/providers/siliconflow.d.ts +0 -0
- package/dist/distillation/providers/siliconflow.js +0 -0
- package/dist/distillation/providers/siliconflow.js.map +0 -0
- package/dist/distillation/providers/tencent-hunyuan.d.ts +0 -0
- package/dist/distillation/providers/tencent-hunyuan.js +0 -0
- package/dist/distillation/providers/tencent-hunyuan.js.map +0 -0
- package/dist/distillation/providers/types.d.ts +0 -0
- package/dist/distillation/providers/types.js +0 -0
- package/dist/distillation/providers/types.js.map +0 -0
- package/dist/distillation/providers/volcengine-ark.d.ts +0 -0
- package/dist/distillation/providers/volcengine-ark.js +0 -0
- package/dist/distillation/providers/volcengine-ark.js.map +0 -0
- package/dist/distillation/providers/zhipu.d.ts +0 -0
- package/dist/distillation/providers/zhipu.js +0 -0
- package/dist/distillation/providers/zhipu.js.map +0 -0
- package/dist/distillation/queue-worker.d.ts +0 -0
- package/dist/distillation/queue-worker.js +78 -9
- package/dist/distillation/queue-worker.js.map +1 -1
- package/dist/distillation/types.d.ts +0 -0
- package/dist/distillation/types.js +0 -0
- package/dist/distillation/types.js.map +0 -0
- package/dist/evaluation/benchmark-report.d.ts +0 -0
- package/dist/evaluation/benchmark-report.js +0 -0
- package/dist/evaluation/benchmark-report.js.map +0 -0
- package/dist/evaluation/benchmark-summary.d.ts +0 -0
- package/dist/evaluation/benchmark-summary.js +0 -0
- package/dist/evaluation/benchmark-summary.js.map +0 -0
- package/dist/evaluation/codex-lifecycle-validation.d.ts +60 -0
- package/dist/evaluation/codex-lifecycle-validation.js +233 -0
- package/dist/evaluation/codex-lifecycle-validation.js.map +1 -0
- package/dist/evaluation/hybrid-phase1-rollout-summary.d.ts +63 -0
- package/dist/evaluation/hybrid-phase1-rollout-summary.js +108 -0
- package/dist/evaluation/hybrid-phase1-rollout-summary.js.map +1 -0
- package/dist/evaluation/hybrid-phase3-gate-metrics.d.ts +26 -0
- package/dist/evaluation/hybrid-phase3-gate-metrics.js +23 -0
- package/dist/evaluation/hybrid-phase3-gate-metrics.js.map +1 -0
- package/dist/evaluation/openclaw-baseline.d.ts +8 -0
- package/dist/evaluation/openclaw-baseline.js +27 -0
- package/dist/evaluation/openclaw-baseline.js.map +1 -1
- package/dist/evaluation/openclaw-scenarios.d.ts +0 -0
- package/dist/evaluation/openclaw-scenarios.js +0 -0
- package/dist/evaluation/openclaw-scenarios.js.map +0 -0
- package/dist/experience-management/governance-observability.d.ts +13 -0
- package/dist/experience-management/governance-observability.js +37 -0
- package/dist/experience-management/governance-observability.js.map +1 -0
- package/dist/experience-management/node-lifecycle-governance.d.ts +8 -0
- package/dist/experience-management/node-lifecycle-governance.js +80 -0
- package/dist/experience-management/node-lifecycle-governance.js.map +1 -0
- package/dist/experience-management/task-management-signals.d.ts +29 -0
- package/dist/experience-management/task-management-signals.js +148 -0
- package/dist/experience-management/task-management-signals.js.map +1 -0
- package/dist/feedback/automatic-attribution.d.ts +0 -0
- package/dist/feedback/automatic-attribution.js +0 -0
- package/dist/feedback/automatic-attribution.js.map +0 -0
- package/dist/feedback/feedback-manager.d.ts +4 -1
- package/dist/feedback/feedback-manager.js +11 -22
- package/dist/feedback/feedback-manager.js.map +1 -1
- package/dist/feedback/harm-detector.d.ts +0 -0
- package/dist/feedback/harm-detector.js +0 -0
- package/dist/feedback/harm-detector.js.map +0 -0
- package/dist/feedback/state-transition.d.ts +6 -1
- package/dist/feedback/state-transition.js +14 -2
- package/dist/feedback/state-transition.js.map +1 -1
- package/dist/feedback/stats-updater.d.ts +0 -0
- package/dist/feedback/stats-updater.js +0 -0
- package/dist/feedback/stats-updater.js.map +0 -0
- package/dist/hybrid/capsule-builder.d.ts +23 -0
- package/dist/hybrid/capsule-builder.js +114 -0
- package/dist/hybrid/capsule-builder.js.map +1 -0
- package/dist/hybrid/explain-provider-client.d.ts +19 -0
- package/dist/hybrid/explain-provider-client.js +34 -0
- package/dist/hybrid/explain-provider-client.js.map +1 -0
- package/dist/hybrid/postmortem-provider-client.d.ts +19 -0
- package/dist/hybrid/postmortem-provider-client.js +34 -0
- package/dist/hybrid/postmortem-provider-client.js.map +1 -0
- package/dist/hybrid/rollout.d.ts +9 -0
- package/dist/hybrid/rollout.js +49 -0
- package/dist/hybrid/rollout.js.map +1 -0
- package/dist/hybrid/router.d.ts +4 -0
- package/dist/hybrid/router.js +62 -0
- package/dist/hybrid/router.js.map +1 -0
- package/dist/hybrid/types.d.ts +140 -0
- package/dist/{compiler → hybrid}/types.js +0 -0
- package/dist/{packs → hybrid}/types.js.map +1 -1
- package/dist/hybrid/validators.d.ts +5 -0
- package/dist/hybrid/validators.js +94 -0
- package/dist/hybrid/validators.js.map +1 -0
- package/dist/hybrid/worker-client.d.ts +61 -0
- package/dist/hybrid/worker-client.js +196 -0
- package/dist/hybrid/worker-client.js.map +1 -0
- package/dist/hybrid/workers/explain-decision-llm.d.ts +8 -0
- package/dist/hybrid/workers/explain-decision-llm.js +152 -0
- package/dist/hybrid/workers/explain-decision-llm.js.map +1 -0
- package/dist/hybrid/workers/explain-decision.d.ts +2 -0
- package/dist/hybrid/workers/explain-decision.js +40 -0
- package/dist/hybrid/workers/explain-decision.js.map +1 -0
- package/dist/hybrid/workers/postmortem-review-llm.d.ts +8 -0
- package/dist/hybrid/workers/postmortem-review-llm.js +398 -0
- package/dist/hybrid/workers/postmortem-review-llm.js.map +1 -0
- package/dist/hybrid/workers/postmortem-review.d.ts +2 -0
- package/dist/hybrid/workers/postmortem-review.js +66 -0
- package/dist/hybrid/workers/postmortem-review.js.map +1 -0
- package/dist/index.d.ts +0 -0
- package/dist/index.js +0 -0
- package/dist/index.js.map +0 -0
- package/dist/input/context-summary-adapter.d.ts +0 -0
- package/dist/input/context-summary-adapter.js +0 -0
- package/dist/input/context-summary-adapter.js.map +0 -0
- package/dist/input/input-adapter.d.ts +0 -0
- package/dist/input/input-adapter.js +2 -1
- package/dist/input/input-adapter.js.map +1 -1
- package/dist/input/outcome-resolver.d.ts +0 -0
- package/dist/input/outcome-resolver.js +5 -5
- package/dist/input/outcome-resolver.js.map +1 -1
- package/dist/input/scope-resolver.d.ts +0 -0
- package/dist/input/scope-resolver.js +0 -0
- package/dist/input/scope-resolver.js.map +0 -0
- package/dist/input/tasktype-resolver.d.ts +0 -0
- package/dist/input/tasktype-resolver.js +2 -0
- package/dist/input/tasktype-resolver.js.map +1 -1
- package/dist/input/tool-event-significance.d.ts +5 -0
- package/dist/input/tool-event-significance.js +7 -0
- package/dist/input/tool-event-significance.js.map +1 -0
- package/dist/install/claude-cli.d.ts +0 -0
- package/dist/install/claude-cli.js +0 -0
- package/dist/install/claude-cli.js.map +0 -0
- package/dist/install/claude-code-doctor.d.ts +8 -2
- package/dist/install/claude-code-doctor.js +54 -9
- package/dist/install/claude-code-doctor.js.map +1 -1
- package/dist/install/claude-code-installer.d.ts +0 -0
- package/dist/install/claude-code-installer.js +50 -1
- package/dist/install/claude-code-installer.js.map +1 -1
- package/dist/install/claude-marketplace-state.d.ts +14 -0
- package/dist/install/claude-marketplace-state.js +47 -0
- package/dist/install/claude-marketplace-state.js.map +1 -0
- package/dist/install/claude-runtime-target.d.ts +0 -0
- package/dist/install/claude-runtime-target.js +0 -0
- package/dist/install/claude-runtime-target.js.map +0 -0
- package/dist/install/codex-cli.d.ts +15 -0
- package/dist/install/codex-cli.js +55 -3
- package/dist/install/codex-cli.js.map +1 -1
- package/dist/install/codex-installer.d.ts +18 -0
- package/dist/install/codex-installer.js +91 -1
- package/dist/install/codex-installer.js.map +1 -1
- package/dist/install/codex-runtime-target.d.ts +0 -0
- package/dist/install/codex-runtime-target.js +0 -0
- package/dist/install/codex-runtime-target.js.map +0 -0
- package/dist/install/host-detection.d.ts +0 -0
- package/dist/install/host-detection.js +0 -0
- package/dist/install/host-detection.js.map +0 -0
- package/dist/install/openclaw-cli.d.ts +11 -0
- package/dist/install/openclaw-cli.js +0 -0
- package/dist/install/openclaw-cli.js.map +1 -1
- package/dist/install/openclaw-installer.d.ts +12 -0
- package/dist/install/openclaw-installer.js +198 -31
- package/dist/install/openclaw-installer.js.map +1 -1
- package/dist/install/public-install.d.ts +14 -4
- package/dist/install/public-install.js +20 -7
- package/dist/install/public-install.js.map +1 -1
- package/dist/install/registry-health.d.ts +0 -0
- package/dist/install/registry-health.js +0 -0
- package/dist/install/registry-health.js.map +0 -0
- package/dist/interaction/operational-actions-service.d.ts +0 -0
- package/dist/interaction/operational-actions-service.js +0 -0
- package/dist/interaction/operational-actions-service.js.map +0 -0
- package/dist/interaction/operational-service.d.ts +0 -0
- package/dist/interaction/operational-service.js +0 -0
- package/dist/interaction/operational-service.js.map +0 -0
- package/dist/interaction/repo-summary.d.ts +3 -17
- package/dist/interaction/repo-summary.js +10 -27
- package/dist/interaction/repo-summary.js.map +1 -1
- package/dist/interaction/service.d.ts +59 -95
- package/dist/interaction/service.js +505 -266
- package/dist/interaction/service.js.map +1 -1
- package/dist/interaction/state-artifact-service.d.ts +0 -0
- package/dist/interaction/state-artifact-service.js +0 -0
- package/dist/interaction/state-artifact-service.js.map +0 -0
- package/dist/maintenance/claude-validate-print.d.ts +0 -0
- package/dist/maintenance/claude-validate-print.js +0 -0
- package/dist/maintenance/claude-validate-print.js.map +0 -0
- package/dist/maintenance/embedding-smoke.d.ts +0 -0
- package/dist/maintenance/embedding-smoke.js +0 -0
- package/dist/maintenance/embedding-smoke.js.map +0 -0
- package/dist/maintenance/redistill-rule-nodes.d.ts +0 -0
- package/dist/maintenance/redistill-rule-nodes.js +0 -0
- package/dist/maintenance/redistill-rule-nodes.js.map +0 -0
- package/dist/maintenance/scope-merge.d.ts +0 -1
- package/dist/maintenance/scope-merge.js +0 -20
- package/dist/maintenance/scope-merge.js.map +1 -1
- package/dist/maintenance/warning-variant-cleanup.d.ts +0 -0
- package/dist/maintenance/warning-variant-cleanup.js +0 -0
- package/dist/maintenance/warning-variant-cleanup.js.map +0 -0
- package/dist/plugin/fixture-sanitizer.d.ts +0 -0
- package/dist/plugin/fixture-sanitizer.js +0 -0
- package/dist/plugin/fixture-sanitizer.js.map +0 -0
- package/dist/plugin/hooks/before-prompt-build.d.ts +1 -0
- package/dist/plugin/hooks/before-prompt-build.js +4 -1
- package/dist/plugin/hooks/before-prompt-build.js.map +1 -1
- package/dist/plugin/hooks/message-sent.d.ts +0 -0
- package/dist/plugin/hooks/message-sent.js +0 -0
- package/dist/plugin/hooks/message-sent.js.map +0 -0
- package/dist/plugin/hooks/tool-result-persist.d.ts +0 -0
- package/dist/plugin/hooks/tool-result-persist.js +0 -0
- package/dist/plugin/hooks/tool-result-persist.js.map +0 -0
- package/dist/plugin/openclaw-install-state.d.ts +39 -0
- package/dist/plugin/openclaw-install-state.js +24 -0
- package/dist/plugin/openclaw-install-state.js.map +1 -0
- package/dist/plugin/openclaw-plugin.d.ts +148 -0
- package/dist/plugin/openclaw-plugin.js +98 -7
- package/dist/plugin/openclaw-plugin.js.map +1 -1
- package/dist/plugin/openclaw-routine-interaction.d.ts +7 -0
- package/dist/plugin/openclaw-routine-interaction.js +301 -0
- package/dist/plugin/openclaw-routine-interaction.js.map +1 -0
- package/dist/plugin/openclaw-runtime-defaults.d.ts +16 -0
- package/dist/plugin/openclaw-runtime-defaults.js +16 -0
- package/dist/plugin/openclaw-runtime-defaults.js.map +1 -0
- package/dist/plugin/runtime-capture.d.ts +0 -0
- package/dist/plugin/runtime-capture.js +0 -0
- package/dist/plugin/runtime-capture.js.map +0 -0
- package/dist/plugin/runtime-helpers.d.ts +0 -0
- package/dist/plugin/runtime-helpers.js +0 -0
- package/dist/plugin/runtime-helpers.js.map +0 -0
- package/dist/runtime/service.d.ts +33 -6
- package/dist/runtime/service.js +427 -50
- package/dist/runtime/service.js.map +1 -1
- package/dist/store/logs/jsonl-logger.d.ts +0 -0
- package/dist/store/logs/jsonl-logger.js +0 -0
- package/dist/store/logs/jsonl-logger.js.map +0 -0
- package/dist/store/sqlite/db.d.ts +0 -0
- package/dist/store/sqlite/db.js +37 -0
- package/dist/store/sqlite/db.js.map +1 -1
- package/dist/store/sqlite/migrations.d.ts +0 -0
- package/dist/store/sqlite/migrations.js +0 -0
- package/dist/store/sqlite/migrations.js.map +0 -0
- package/dist/store/sqlite/repositories/candidate-repo.d.ts +0 -0
- package/dist/store/sqlite/repositories/candidate-repo.js +8 -2
- package/dist/store/sqlite/repositories/candidate-repo.js.map +1 -1
- package/dist/store/sqlite/repositories/distillation-job-repo.d.ts +0 -0
- package/dist/store/sqlite/repositories/distillation-job-repo.js +0 -0
- package/dist/store/sqlite/repositories/distillation-job-repo.js.map +0 -0
- package/dist/store/sqlite/repositories/hybrid-invocation-trace-repo.d.ts +11 -0
- package/dist/store/sqlite/repositories/hybrid-invocation-trace-repo.js +76 -0
- package/dist/store/sqlite/repositories/hybrid-invocation-trace-repo.js.map +1 -0
- package/dist/store/sqlite/repositories/hybrid-review-artifact-repo.d.ts +11 -0
- package/dist/store/sqlite/repositories/hybrid-review-artifact-repo.js +73 -0
- package/dist/store/sqlite/repositories/hybrid-review-artifact-repo.js.map +1 -0
- package/dist/store/sqlite/repositories/injection-repo.d.ts +1 -0
- package/dist/store/sqlite/repositories/injection-repo.js +11 -0
- package/dist/store/sqlite/repositories/injection-repo.js.map +1 -1
- package/dist/store/sqlite/repositories/input-record-repo.d.ts +3 -0
- package/dist/store/sqlite/repositories/input-record-repo.js +35 -0
- package/dist/store/sqlite/repositories/input-record-repo.js.map +1 -1
- package/dist/store/sqlite/repositories/node-repo.d.ts +3 -0
- package/dist/store/sqlite/repositories/node-repo.js +62 -8
- package/dist/store/sqlite/repositories/node-repo.js.map +1 -1
- package/dist/store/sqlite/repositories/outcome-record-repo.d.ts +0 -0
- package/dist/store/sqlite/repositories/outcome-record-repo.js +0 -0
- package/dist/store/sqlite/repositories/outcome-record-repo.js.map +0 -0
- package/dist/store/sqlite/repositories/review-event-repo.d.ts +0 -0
- package/dist/store/sqlite/repositories/review-event-repo.js +0 -0
- package/dist/store/sqlite/repositories/review-event-repo.js.map +0 -0
- package/dist/store/sqlite/repositories/scope-repo.d.ts +0 -0
- package/dist/store/sqlite/repositories/scope-repo.js +0 -0
- package/dist/store/sqlite/repositories/scope-repo.js.map +0 -0
- package/dist/store/sqlite/repositories/stats-repo.d.ts +0 -0
- package/dist/store/sqlite/repositories/stats-repo.js +0 -0
- package/dist/store/sqlite/repositories/stats-repo.js.map +0 -0
- package/dist/store/sqlite/repositories/task-run-repo.d.ts +2 -0
- package/dist/store/sqlite/repositories/task-run-repo.js +18 -2
- package/dist/store/sqlite/repositories/task-run-repo.js.map +1 -1
- package/dist/store/sqlite/schema.sql +49 -49
- package/dist/store/vector/api-embedding-provider.d.ts +2 -0
- package/dist/store/vector/api-embedding-provider.js +23 -19
- package/dist/store/vector/api-embedding-provider.js.map +1 -1
- package/dist/store/vector/embeddings.d.ts +1 -1
- package/dist/store/vector/embeddings.js +26 -5
- package/dist/store/vector/embeddings.js.map +1 -1
- package/dist/store/vector/lancedb.d.ts +0 -0
- package/dist/store/vector/lancedb.js +0 -0
- package/dist/store/vector/lancedb.js.map +0 -0
- package/dist/store/vector/local-provider.d.ts +0 -0
- package/dist/store/vector/local-provider.js +0 -0
- package/dist/store/vector/local-provider.js.map +0 -0
- package/dist/store/vector/node-index.d.ts +0 -0
- package/dist/store/vector/node-index.js +0 -0
- package/dist/store/vector/node-index.js.map +0 -0
- package/dist/store/vector/provider-types.d.ts +0 -0
- package/dist/store/vector/provider-types.js +0 -0
- package/dist/store/vector/provider-types.js.map +0 -0
- package/dist/types/analyzer.d.ts +0 -0
- package/dist/types/analyzer.js +0 -0
- package/dist/types/analyzer.js.map +0 -0
- package/dist/types/domain.d.ts +166 -47
- package/dist/types/domain.js +0 -0
- package/dist/types/domain.js.map +0 -0
- package/dist/types/plugin.d.ts +3 -1
- package/dist/types/plugin.js +0 -0
- package/dist/types/plugin.js.map +0 -0
- package/dist/types/storage.d.ts +0 -0
- package/dist/types/storage.js +0 -0
- package/dist/types/storage.js.map +0 -0
- package/dist/utils/clock.d.ts +0 -0
- package/dist/utils/clock.js +0 -0
- package/dist/utils/clock.js.map +0 -0
- package/dist/utils/errors.d.ts +0 -0
- package/dist/utils/errors.js +0 -0
- package/dist/utils/errors.js.map +0 -0
- package/dist/utils/hashing.d.ts +0 -0
- package/dist/utils/hashing.js +0 -0
- package/dist/utils/hashing.js.map +0 -0
- package/dist/utils/ids.d.ts +0 -0
- package/dist/utils/ids.js +0 -0
- package/dist/utils/ids.js.map +0 -0
- package/dist/utils/text.d.ts +0 -0
- package/dist/utils/text.js +0 -0
- package/dist/utils/text.js.map +0 -0
- package/dist/version/package-version.d.ts +0 -0
- package/dist/version/package-version.js +0 -0
- package/dist/version/package-version.js.map +0 -0
- package/dist/version/remote-release.d.ts +0 -0
- package/dist/version/remote-release.js +0 -0
- package/dist/version/remote-release.js.map +0 -0
- package/docs/releases/v0.1.0.md +0 -0
- package/docs/releases/v0.1.1.md +0 -0
- package/docs/releases/v0.1.2.md +3 -3
- package/docs/releases/v0.1.3.md +95 -0
- package/docs/releases/v0.2.0.md +85 -0
- package/docs/user-guide.md +263 -133
- package/hooks/hooks.json +0 -0
- package/openclaw.plugin.json +81 -1
- package/package.json +25 -16
- package/plugins/claude-code-experienceengine/.claude-plugin/plugin.json +1 -1
- package/plugins/claude-code-experienceengine/.mcp.json +4 -3
- package/plugins/claude-code-experienceengine/hooks/hooks.json +0 -0
- package/plugins/claude-code-experienceengine/scripts/claude-hook.sh +30 -1
- package/plugins/claude-code-experienceengine/scripts/install-deps.sh +41 -6
- package/scripts/claude-plugin/claude-hook.sh +0 -0
- package/scripts/claude-plugin/install-deps.sh +0 -0
- package/dist/cli/commands/pack.d.ts +0 -1
- package/dist/cli/commands/pack.js +0 -321
- package/dist/cli/commands/pack.js.map +0 -1
- package/dist/compiler/agents-renderer.d.ts +0 -4
- package/dist/compiler/agents-renderer.js +0 -105
- package/dist/compiler/agents-renderer.js.map +0 -1
- package/dist/compiler/claude-renderer.d.ts +0 -2
- package/dist/compiler/claude-renderer.js +0 -40
- package/dist/compiler/claude-renderer.js.map +0 -1
- package/dist/compiler/codex-renderer.d.ts +0 -2
- package/dist/compiler/codex-renderer.js +0 -40
- package/dist/compiler/codex-renderer.js.map +0 -1
- package/dist/compiler/compiler.d.ts +0 -4
- package/dist/compiler/compiler.js +0 -87
- package/dist/compiler/compiler.js.map +0 -1
- package/dist/compiler/deployer.d.ts +0 -21
- package/dist/compiler/deployer.js +0 -64
- package/dist/compiler/deployer.js.map +0 -1
- package/dist/compiler/github-renderer.d.ts +0 -2
- package/dist/compiler/github-renderer.js +0 -63
- package/dist/compiler/github-renderer.js.map +0 -1
- package/dist/compiler/types.d.ts +0 -45
- package/dist/compiler/types.js.map +0 -1
- package/dist/interaction/pack-actions-service.d.ts +0 -59
- package/dist/interaction/pack-actions-service.js +0 -172
- package/dist/interaction/pack-actions-service.js.map +0 -1
- package/dist/packs/fs-registry.d.ts +0 -27
- package/dist/packs/fs-registry.js +0 -216
- package/dist/packs/fs-registry.js.map +0 -1
- package/dist/packs/index-sync.d.ts +0 -9
- package/dist/packs/index-sync.js +0 -54
- package/dist/packs/index-sync.js.map +0 -1
- package/dist/packs/types.d.ts +0 -55
- package/dist/packs/types.js +0 -2
- package/dist/store/sqlite/repositories/pack-repo.d.ts +0 -16
- package/dist/store/sqlite/repositories/pack-repo.js +0 -192
- package/dist/store/sqlite/repositories/pack-repo.js.map +0 -1
|
@@ -1,11 +1,82 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
2
3
|
import { buildCodexAddCommand, buildCodexGetCommand, buildCodexMcpServerCommand, buildCodexRemoveCommand, CODEX_EXPERIENCEENGINE_STARTUP_TIMEOUT_SEC, defaultCodexCommandRunner, ensureCodexMcpServerStartupTimeout, parseCodexMcpServerInfo, runCodexCommand } from "./codex-cli.js";
|
|
3
4
|
import { ensureCodexLaunchers, resolveCodexRuntimeTarget } from "./codex-runtime-target.js";
|
|
5
|
+
import { CODEX_EXPERIENCEENGINE_INSTRUCTION_END, CODEX_EXPERIENCEENGINE_INSTRUCTION_START, renderCodexExperienceEngineInstruction } from "../adapters/codex/instruction-template.js";
|
|
4
6
|
import { resolveExperienceEnginePaths, resolveProductStateDir } from "../config/path-resolver.js";
|
|
5
7
|
import { resolveExperienceEnginePackageRoot } from "./openclaw-cli.js";
|
|
6
8
|
import { resolveDistillationResolution } from "../distillation/host-llm.js";
|
|
7
9
|
import { loadConfig } from "../config/load-config.js";
|
|
8
10
|
import { buildVersionStatus, readCurrentPackageVersion } from "../version/package-version.js";
|
|
11
|
+
import { bootstrapDatabase, openDatabase } from "../store/sqlite/db.js";
|
|
12
|
+
import { TaskRunRepository } from "../store/sqlite/repositories/task-run-repo.js";
|
|
13
|
+
import { resolveScope } from "../input/scope-resolver.js";
|
|
14
|
+
const resolveCodexInstructionPath = (cwd = process.cwd()) => join(cwd, "AGENTS.md");
|
|
15
|
+
const renderManagedInstructionBlock = () => [CODEX_EXPERIENCEENGINE_INSTRUCTION_START, renderCodexExperienceEngineInstruction(), CODEX_EXPERIENCEENGINE_INSTRUCTION_END].join("\n");
|
|
16
|
+
const upsertManagedInstructionBlock = (path) => {
|
|
17
|
+
const managedBlock = renderManagedInstructionBlock();
|
|
18
|
+
const existing = existsSync(path) ? readFileSync(path, "utf8") : "";
|
|
19
|
+
const blockPattern = new RegExp(`${CODEX_EXPERIENCEENGINE_INSTRUCTION_START}[\\s\\S]*?${CODEX_EXPERIENCEENGINE_INSTRUCTION_END}`, "m");
|
|
20
|
+
const next = existing.match(blockPattern)
|
|
21
|
+
? existing.replace(blockPattern, managedBlock)
|
|
22
|
+
: existing.trimEnd()
|
|
23
|
+
? `${existing.trimEnd()}\n\n${managedBlock}\n`
|
|
24
|
+
: `${managedBlock}\n`;
|
|
25
|
+
if (next !== existing) {
|
|
26
|
+
writeFileSync(path, next, "utf8");
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
path,
|
|
30
|
+
present: true,
|
|
31
|
+
current: true,
|
|
32
|
+
state: "present"
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
const inspectManagedInstructionBlock = (path) => {
|
|
36
|
+
if (!existsSync(path)) {
|
|
37
|
+
return {
|
|
38
|
+
path,
|
|
39
|
+
present: false,
|
|
40
|
+
current: false,
|
|
41
|
+
state: "missing"
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const existing = readFileSync(path, "utf8");
|
|
45
|
+
const blockPattern = new RegExp(`${CODEX_EXPERIENCEENGINE_INSTRUCTION_START}[\\s\\S]*?${CODEX_EXPERIENCEENGINE_INSTRUCTION_END}`, "m");
|
|
46
|
+
const match = existing.match(blockPattern);
|
|
47
|
+
if (!match) {
|
|
48
|
+
return {
|
|
49
|
+
path,
|
|
50
|
+
present: false,
|
|
51
|
+
current: false,
|
|
52
|
+
state: "missing"
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const current = match[0] === renderManagedInstructionBlock();
|
|
56
|
+
return {
|
|
57
|
+
path,
|
|
58
|
+
present: true,
|
|
59
|
+
current,
|
|
60
|
+
state: current ? "present" : "drifted"
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
const inspectCodexLearningLoop = (options) => {
|
|
64
|
+
const db = openDatabase(options.config);
|
|
65
|
+
bootstrapDatabase(db);
|
|
66
|
+
const taskRunRepo = new TaskRunRepository(db);
|
|
67
|
+
const scope = resolveScope(options.cwd);
|
|
68
|
+
const recentTaskRuns = taskRunRepo.countByScopeAndHost(scope.scope_id, "codex");
|
|
69
|
+
const state = recentTaskRuns > 0
|
|
70
|
+
? "learning_loop_active"
|
|
71
|
+
: options.instruction.present
|
|
72
|
+
? "instruction_installed"
|
|
73
|
+
: "tools_only";
|
|
74
|
+
return {
|
|
75
|
+
instructionState: options.instruction.state,
|
|
76
|
+
recentTaskRuns,
|
|
77
|
+
state
|
|
78
|
+
};
|
|
79
|
+
};
|
|
9
80
|
const inspectCodexHost = (runner, cliEnv) => {
|
|
10
81
|
try {
|
|
11
82
|
return parseCodexMcpServerInfo(runCodexCommand(buildCodexGetCommand(cliEnv), runner));
|
|
@@ -32,6 +103,7 @@ export const installCodexAdapter = (options = {}) => {
|
|
|
32
103
|
packageRoot
|
|
33
104
|
});
|
|
34
105
|
const existing = inspectCodexHost(runner, options.cliEnv);
|
|
106
|
+
const instructionPath = resolveCodexInstructionPath(options.cwd);
|
|
35
107
|
mkdirSync(paths.dataDir, { recursive: true });
|
|
36
108
|
mkdirSync(resolveProductStateDir(paths), { recursive: true });
|
|
37
109
|
mkdirSync(paths.captureDir, { recursive: true });
|
|
@@ -43,6 +115,7 @@ export const installCodexAdapter = (options = {}) => {
|
|
|
43
115
|
ensureCodexMcpServerStartupTimeout("experienceengine", CODEX_EXPERIENCEENGINE_STARTUP_TIMEOUT_SEC, {
|
|
44
116
|
homeDir: options.homeDir
|
|
45
117
|
});
|
|
118
|
+
const instruction = upsertManagedInstructionBlock(instructionPath);
|
|
46
119
|
const hostInfo = inspectCodexHost(runner, options.cliEnv);
|
|
47
120
|
const state = {
|
|
48
121
|
adapter: "codex",
|
|
@@ -65,6 +138,9 @@ export const installCodexAdapter = (options = {}) => {
|
|
|
65
138
|
wired: Boolean(hostInfo?.commandDisplay),
|
|
66
139
|
command: hostInfo?.commandDisplay,
|
|
67
140
|
transport: hostInfo?.transport
|
|
141
|
+
},
|
|
142
|
+
instruction: {
|
|
143
|
+
path: instruction.path
|
|
68
144
|
}
|
|
69
145
|
};
|
|
70
146
|
writeFileSync(paths.installStatePath, `${JSON.stringify(state, null, 2)}\n`, "utf8");
|
|
@@ -81,7 +157,11 @@ export const installCodexAdapter = (options = {}) => {
|
|
|
81
157
|
mcpServer: runtimeTarget === "windows" ? launchers.windowsMcpServer : launchers.mcpServer
|
|
82
158
|
},
|
|
83
159
|
captureDir: paths.captureDir,
|
|
84
|
-
hostWiring: state.hostWiring
|
|
160
|
+
hostWiring: state.hostWiring,
|
|
161
|
+
instruction: {
|
|
162
|
+
path: instruction.path,
|
|
163
|
+
state: "present"
|
|
164
|
+
}
|
|
85
165
|
};
|
|
86
166
|
};
|
|
87
167
|
export const inspectCodexInstall = (options = {}) => {
|
|
@@ -96,13 +176,21 @@ export const inspectCodexInstall = (options = {}) => {
|
|
|
96
176
|
: null;
|
|
97
177
|
const packageRoot = resolveExperienceEnginePackageRoot();
|
|
98
178
|
const hostInfo = inspectCodexHost(runner, options.cliEnv);
|
|
179
|
+
const instructionPath = resolveCodexInstructionPath(options.cwd);
|
|
180
|
+
const instruction = inspectManagedInstructionBlock(instructionPath);
|
|
99
181
|
const config = loadConfig({}, { env: options.env ?? process.env, homeDir: options.homeDir });
|
|
182
|
+
const learningLoop = inspectCodexLearningLoop({
|
|
183
|
+
config,
|
|
184
|
+
cwd: options.cwd,
|
|
185
|
+
instruction
|
|
186
|
+
});
|
|
100
187
|
const resolutionEnv = {
|
|
101
188
|
...(options.env ?? process.env),
|
|
102
189
|
EXPERIENCE_ENGINE_ADAPTER: "codex"
|
|
103
190
|
};
|
|
104
191
|
const distillationResolution = resolveDistillationResolution({
|
|
105
192
|
env: resolutionEnv,
|
|
193
|
+
homeDir: options.homeDir,
|
|
106
194
|
configProvider: config.distillerProvider,
|
|
107
195
|
configAuthMode: config.distillationAuthMode,
|
|
108
196
|
configModel: config.distillerModel,
|
|
@@ -125,6 +213,8 @@ export const inspectCodexInstall = (options = {}) => {
|
|
|
125
213
|
transport: hostInfo?.transport,
|
|
126
214
|
enabled: hostInfo?.enabled ?? false
|
|
127
215
|
},
|
|
216
|
+
instruction,
|
|
217
|
+
learningLoop,
|
|
128
218
|
distillationStatus: {
|
|
129
219
|
distillationMode: distillationResolution.distillationMode,
|
|
130
220
|
distillationSource: distillationResolution.distillationSource,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-installer.js","sourceRoot":"","sources":["../../src/install/codex-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,0CAA0C,EAC1C,yBAAyB,EACzB,kCAAkC,EAClC,uBAAuB,EACvB,eAAe,EAGhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EAE1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EAEvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,kCAAkC,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"codex-installer.js","sourceRoot":"","sources":["../../src/install/codex-installer.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -8,6 +8,17 @@ export type OpenClawConfigPayload = {
|
|
|
8
8
|
dataDir: string;
|
|
9
9
|
sqlitePath: string;
|
|
10
10
|
captureDir: string;
|
|
11
|
+
distillerProvider?: string;
|
|
12
|
+
distillerModel?: string;
|
|
13
|
+
hybridEnabled?: boolean;
|
|
14
|
+
hybridSyncExplainEnabled?: boolean;
|
|
15
|
+
hybridAsyncPostmortemEnabled?: boolean;
|
|
16
|
+
hybridAsyncPostmortemLlmEnabled?: boolean;
|
|
17
|
+
hybridExplainLlmEnabled?: boolean;
|
|
18
|
+
hybridExplainProviderMode?: string;
|
|
19
|
+
hybridExplainModelProfileVersion?: string;
|
|
20
|
+
hybridPostmortemProviderMode?: string;
|
|
21
|
+
hybridPostmortemModelProfileVersion?: string;
|
|
11
22
|
};
|
|
12
23
|
export type OpenClawInstallAction = "install" | "reinstall" | "update";
|
|
13
24
|
export type OpenClawPluginInfo = {
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openclaw-cli.js","sourceRoot":"","sources":["../../src/install/openclaw-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"openclaw-cli.js","sourceRoot":"","sources":["../../src/install/openclaw-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,17 @@ export type OpenClawInstallReport = {
|
|
|
16
16
|
dataDir: string;
|
|
17
17
|
sqlitePath: string;
|
|
18
18
|
captureDir: string;
|
|
19
|
+
distillerProvider: string;
|
|
20
|
+
distillerModel: string;
|
|
21
|
+
hybridEnabled: boolean;
|
|
22
|
+
hybridSyncExplainEnabled: boolean;
|
|
23
|
+
hybridAsyncPostmortemEnabled: boolean;
|
|
24
|
+
hybridAsyncPostmortemLlmEnabled: boolean;
|
|
25
|
+
hybridExplainLlmEnabled: boolean;
|
|
26
|
+
hybridExplainProviderMode: string;
|
|
27
|
+
hybridExplainModelProfileVersion: string;
|
|
28
|
+
hybridPostmortemProviderMode: string;
|
|
29
|
+
hybridPostmortemModelProfileVersion: string;
|
|
19
30
|
};
|
|
20
31
|
};
|
|
21
32
|
type InstallerOptions = {
|
|
@@ -75,6 +86,7 @@ export declare const inspectOpenClawInstall: (options?: InstallerOptions) => {
|
|
|
75
86
|
wired: boolean;
|
|
76
87
|
restartRecommended: boolean;
|
|
77
88
|
};
|
|
89
|
+
runtimeDefaults: import("../plugin/openclaw-runtime-defaults.js").OpenClawRuntimeDefaults;
|
|
78
90
|
hostState: HostState;
|
|
79
91
|
};
|
|
80
92
|
export declare const repairOpenClawAdapter: (options?: InstallerOptions) => OpenClawInstallReport;
|
|
@@ -3,9 +3,15 @@ import { createHash } from "node:crypto";
|
|
|
3
3
|
import { chmodSync, cpSync, existsSync, mkdirSync, mkdtempSync, readdirSync, readFileSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
4
4
|
import { homedir } from "node:os";
|
|
5
5
|
import { basename, dirname, join, resolve } from "node:path";
|
|
6
|
+
import { loadConfig } from "../config/load-config.js";
|
|
7
|
+
import { defaultConfig } from "../config/default-config.js";
|
|
6
8
|
import { resolveExperienceEnginePaths, resolveProductStateDir } from "../config/path-resolver.js";
|
|
7
9
|
import { buildOpenClawInstallCommands, buildOpenClawConfigGetCommand, buildOpenClawInfoCommand, buildOpenClawLoadPathsSetCommand, buildOpenClawPluginsConfigGetCommand, parseOpenClawPluginEntryConfig, parseOpenClawPluginInfo, parseOpenClawPluginsConfig, resolveExperienceEnginePackageRoot, runOpenClawCommand, runOpenClawCommands } from "./openclaw-cli.js";
|
|
8
10
|
import { buildVersionStatus, readCurrentPackageVersion } from "../version/package-version.js";
|
|
11
|
+
import { readPersistedOpenClawInstallState } from "../plugin/openclaw-install-state.js";
|
|
12
|
+
import { getOpenClawRuntimeDefaults } from "../plugin/openclaw-runtime-defaults.js";
|
|
13
|
+
const readExplicitBooleanEnv = (env, key) => env[key] !== undefined ? env[key] === "true" : undefined;
|
|
14
|
+
const readExplicitStringEnv = (env, key) => env[key] !== undefined ? env[key] : undefined;
|
|
9
15
|
const OPENCLAW_DRIFT_SENTINELS = [
|
|
10
16
|
"dist/plugin/openclaw-plugin.js",
|
|
11
17
|
"dist/runtime/service.js",
|
|
@@ -78,9 +84,100 @@ export const buildOpenClawPackagedDependencies = (rawPackageJson) => {
|
|
|
78
84
|
? rawPackageJson.dependencies
|
|
79
85
|
: {};
|
|
80
86
|
return {
|
|
87
|
+
"@modelcontextprotocol/sdk": dependencies["@modelcontextprotocol/sdk"],
|
|
81
88
|
zod: dependencies.zod
|
|
82
89
|
};
|
|
83
90
|
};
|
|
91
|
+
const OPENCLAW_PLUGIN_CONFIG_KEYS = [
|
|
92
|
+
"dataDir",
|
|
93
|
+
"sqlitePath",
|
|
94
|
+
"captureDir",
|
|
95
|
+
"distillerProvider",
|
|
96
|
+
"distillerModel",
|
|
97
|
+
"hybridEnabled",
|
|
98
|
+
"hybridSyncExplainEnabled",
|
|
99
|
+
"hybridAsyncPostmortemEnabled",
|
|
100
|
+
"hybridAsyncPostmortemLlmEnabled",
|
|
101
|
+
"hybridExplainLlmEnabled",
|
|
102
|
+
"hybridExplainProviderMode",
|
|
103
|
+
"hybridExplainModelProfileVersion",
|
|
104
|
+
"hybridPostmortemProviderMode",
|
|
105
|
+
"hybridPostmortemModelProfileVersion"
|
|
106
|
+
];
|
|
107
|
+
const OPENCLAW_PLUGIN_ENTRYPOINT = "plugin/openclaw-plugin.js";
|
|
108
|
+
const OPENCLAW_REQUIRED_DIST_ASSETS = ["store/sqlite/schema.sql"];
|
|
109
|
+
const OPENCLAW_RELATIVE_IMPORT_PATTERN = /\b(?:import|export)\s+(?:[^"'()]*?\s+from\s+)?["'](\.[^"']+)["']/g;
|
|
110
|
+
const OPENCLAW_DYNAMIC_IMPORT_PATTERN = /\bimport\(\s*["'](\.[^"']+)["']\s*\)/g;
|
|
111
|
+
const OPENCLAW_EXCLUDED_RUNTIME_PATHS = new Set([
|
|
112
|
+
"analyzer/llm-learning-gate.js",
|
|
113
|
+
"distillation/queue-worker.js",
|
|
114
|
+
"hybrid/worker-client.js",
|
|
115
|
+
"hybrid/capsule-builder.js",
|
|
116
|
+
"hybrid/postmortem-provider-client.js",
|
|
117
|
+
"install/openclaw-installer.js",
|
|
118
|
+
"install/openclaw-cli.js",
|
|
119
|
+
"store/vector/api-embedding-provider.js",
|
|
120
|
+
"store/vector/local-provider.js"
|
|
121
|
+
]);
|
|
122
|
+
const normalizeOpenClawPackagedRuntimePath = (value) => value.replaceAll("\\", "/");
|
|
123
|
+
const isOpenClawPackagedRuntimeFile = (relativePath) => relativePath.endsWith(".js") || relativePath.endsWith(".json");
|
|
124
|
+
const isOpenClawExcludedRuntimePath = (relativePath) => OPENCLAW_EXCLUDED_RUNTIME_PATHS.has(normalizeOpenClawPackagedRuntimePath(relativePath));
|
|
125
|
+
const resolveOpenClawPackagedRuntimeImport = (fromFile, specifier) => {
|
|
126
|
+
const normalizedFromFile = normalizeOpenClawPackagedRuntimePath(fromFile);
|
|
127
|
+
const baseDir = dirname(normalizedFromFile);
|
|
128
|
+
const resolvedPath = normalizeOpenClawPackagedRuntimePath(resolve("/", baseDir, specifier));
|
|
129
|
+
const relativePath = resolvedPath.startsWith("/") ? resolvedPath.slice(1) : resolvedPath;
|
|
130
|
+
return isOpenClawPackagedRuntimeFile(relativePath) ? relativePath : null;
|
|
131
|
+
};
|
|
132
|
+
const collectOpenClawRuntimeClosure = (packageRoot) => {
|
|
133
|
+
const distRoot = join(packageRoot, "dist");
|
|
134
|
+
const pending = [OPENCLAW_PLUGIN_ENTRYPOINT];
|
|
135
|
+
const collected = new Set();
|
|
136
|
+
while (pending.length > 0) {
|
|
137
|
+
const next = pending.pop();
|
|
138
|
+
if (!next || collected.has(next) || isOpenClawExcludedRuntimePath(next)) {
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
const sourcePath = join(distRoot, next);
|
|
142
|
+
if (!existsSync(sourcePath)) {
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
collected.add(next);
|
|
146
|
+
if (!next.endsWith(".js")) {
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
const source = readFileSync(sourcePath, "utf8");
|
|
150
|
+
for (const pattern of [OPENCLAW_RELATIVE_IMPORT_PATTERN, OPENCLAW_DYNAMIC_IMPORT_PATTERN]) {
|
|
151
|
+
for (const match of source.matchAll(pattern)) {
|
|
152
|
+
const specifier = match[1];
|
|
153
|
+
if (!specifier) {
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
const resolvedImport = resolveOpenClawPackagedRuntimeImport(next, specifier);
|
|
157
|
+
if (!resolvedImport || collected.has(resolvedImport) || isOpenClawExcludedRuntimePath(resolvedImport)) {
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
pending.push(resolvedImport);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
for (const requiredAsset of OPENCLAW_REQUIRED_DIST_ASSETS) {
|
|
165
|
+
if (existsSync(join(distRoot, requiredAsset))) {
|
|
166
|
+
collected.add(requiredAsset);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return [...collected].sort();
|
|
170
|
+
};
|
|
171
|
+
const copyOpenClawRuntimeClosure = (packageRoot, stageDir) => {
|
|
172
|
+
const distRoot = join(packageRoot, "dist");
|
|
173
|
+
const stageDistRoot = join(stageDir, "dist");
|
|
174
|
+
for (const relativePath of collectOpenClawRuntimeClosure(packageRoot)) {
|
|
175
|
+
const sourcePath = join(distRoot, relativePath);
|
|
176
|
+
const destinationPath = join(stageDistRoot, relativePath);
|
|
177
|
+
mkdirSync(dirname(destinationPath), { recursive: true });
|
|
178
|
+
cpSync(sourcePath, destinationPath);
|
|
179
|
+
}
|
|
180
|
+
};
|
|
84
181
|
const protectOpenClawReinstallPath = (installPath, packageRoot, homeDir) => {
|
|
85
182
|
const normalizedInstallPath = resolve(expandHomePath(installPath, homeDir));
|
|
86
183
|
const normalizedPackageRoot = resolve(expandHomePath(packageRoot, homeDir));
|
|
@@ -100,7 +197,7 @@ export const createOpenClawInstallTarball = (packageRoot, paths) => {
|
|
|
100
197
|
const tempRoot = mkdtempSync(join(resolveProductStateDir(paths), "openclaw-package-"));
|
|
101
198
|
const stageDir = join(tempRoot, "experienceengine-openclaw");
|
|
102
199
|
mkdirSync(stageDir, { recursive: true });
|
|
103
|
-
|
|
200
|
+
copyOpenClawRuntimeClosure(packageRoot, stageDir);
|
|
104
201
|
const rawPackageJson = JSON.parse(readFileSync(join(packageRoot, "package.json"), "utf8"));
|
|
105
202
|
const packagedManifest = {
|
|
106
203
|
name: rawPackageJson.name,
|
|
@@ -122,15 +219,27 @@ export const createOpenClawInstallTarball = (packageRoot, paths) => {
|
|
|
122
219
|
cpSync(sourcePath, join(stageDir, filename));
|
|
123
220
|
}
|
|
124
221
|
}
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
222
|
+
const archiveRoot = join(tempRoot, "package");
|
|
223
|
+
const tarballPath = join(tempRoot, "experienceengine-openclaw.tgz");
|
|
224
|
+
try {
|
|
225
|
+
cpSync(stageDir, archiveRoot, { recursive: true });
|
|
226
|
+
execFileSync("tar", ["-czf", tarballPath, "-C", tempRoot, "package"], {
|
|
227
|
+
stdio: "pipe",
|
|
228
|
+
encoding: "utf8"
|
|
229
|
+
});
|
|
230
|
+
return tarballPath;
|
|
231
|
+
}
|
|
232
|
+
catch {
|
|
233
|
+
const output = execFileSync("npm", ["pack", stageDir, "--pack-destination", tempRoot], {
|
|
234
|
+
stdio: "pipe",
|
|
235
|
+
encoding: "utf8"
|
|
236
|
+
}).trim();
|
|
237
|
+
const tarballName = output.split(/\r?\n/).filter(Boolean).at(-1);
|
|
238
|
+
if (!tarballName) {
|
|
239
|
+
throw new Error("npm pack did not return an OpenClaw install artifact");
|
|
240
|
+
}
|
|
241
|
+
return join(tempRoot, tarballName);
|
|
132
242
|
}
|
|
133
|
-
return join(tempRoot, tarballName);
|
|
134
243
|
};
|
|
135
244
|
export const isOpenClawRepairRecommended = (inspection) => !inspection.installed ||
|
|
136
245
|
inspection.hostState.enabled !== true ||
|
|
@@ -227,23 +336,31 @@ const normalizeOpenClawPluginPermissions = (installPath) => {
|
|
|
227
336
|
normalizeTreePermissions(path);
|
|
228
337
|
}
|
|
229
338
|
};
|
|
230
|
-
const cleanupOpenClawWarningSources = (
|
|
231
|
-
const
|
|
232
|
-
const parsed = parseOpenClawPluginsConfig(pluginsOutput);
|
|
233
|
-
const loadPaths = parsed.config?.load?.paths ?? [];
|
|
339
|
+
const cleanupOpenClawWarningSources = (existingPluginsConfig, expectedInstallPath, runner) => {
|
|
340
|
+
const loadPaths = existingPluginsConfig?.load?.paths ?? [];
|
|
234
341
|
const filteredLoadPaths = filterExperienceEngineLoadPaths(loadPaths);
|
|
235
342
|
if (filteredLoadPaths.length !== loadPaths.length) {
|
|
236
343
|
runOpenClawCommand(buildOpenClawLoadPathsSetCommand(filteredLoadPaths), runner);
|
|
237
344
|
}
|
|
238
|
-
const installPath =
|
|
239
|
-
join(dirname(paths.compatibilityHome), "extensions", "experienceengine");
|
|
345
|
+
const installPath = existingPluginsConfig?.installs?.experienceengine?.installPath ?? expectedInstallPath;
|
|
240
346
|
normalizeOpenClawPluginPermissions(installPath);
|
|
241
347
|
};
|
|
242
348
|
const readOpenClawPluginsConfig = (runner) => {
|
|
243
349
|
const pluginsOutput = runOpenClawCommand(buildOpenClawPluginsConfigGetCommand(), runner);
|
|
244
350
|
return parseOpenClawPluginsConfig(pluginsOutput).config;
|
|
245
351
|
};
|
|
352
|
+
const readOpenClawPluginEntryConfig = (runner) => {
|
|
353
|
+
try {
|
|
354
|
+
const output = runOpenClawCommand(buildOpenClawConfigGetCommand("experienceengine"), runner);
|
|
355
|
+
return parseOpenClawPluginEntryConfig(output).entry?.config ?? null;
|
|
356
|
+
}
|
|
357
|
+
catch {
|
|
358
|
+
return null;
|
|
359
|
+
}
|
|
360
|
+
};
|
|
246
361
|
export const installOpenClawAdapter = (options = {}) => {
|
|
362
|
+
const env = options.env ?? process.env;
|
|
363
|
+
const resolvedConfig = loadConfig({}, { env, homeDir: options.homeDir });
|
|
247
364
|
const paths = resolveExperienceEnginePaths({
|
|
248
365
|
adapter: "openclaw",
|
|
249
366
|
env: options.env ?? process.env,
|
|
@@ -251,10 +368,44 @@ export const installOpenClawAdapter = (options = {}) => {
|
|
|
251
368
|
});
|
|
252
369
|
const packageRoot = resolveExperienceEnginePackageRoot();
|
|
253
370
|
const installedVersion = readCurrentPackageVersion(packageRoot);
|
|
371
|
+
const existingEntryConfig = readOpenClawPluginEntryConfig(options.runner);
|
|
254
372
|
const pluginConfig = {
|
|
255
373
|
dataDir: paths.dataDir,
|
|
256
374
|
sqlitePath: paths.sqlitePath,
|
|
257
|
-
captureDir: paths.captureDir
|
|
375
|
+
captureDir: paths.captureDir,
|
|
376
|
+
distillerProvider: readExplicitStringEnv(env, "EXPERIENCE_ENGINE_DISTILLER_PROVIDER")
|
|
377
|
+
?? (typeof existingEntryConfig?.distillerProvider === "string" ? existingEntryConfig.distillerProvider : undefined)
|
|
378
|
+
?? resolvedConfig.distillerProvider,
|
|
379
|
+
distillerModel: readExplicitStringEnv(env, "EXPERIENCE_ENGINE_DISTILLER_MODEL")
|
|
380
|
+
?? (typeof existingEntryConfig?.distillerModel === "string" ? existingEntryConfig.distillerModel : undefined)
|
|
381
|
+
?? resolvedConfig.distillerModel,
|
|
382
|
+
hybridEnabled: readExplicitBooleanEnv(env, "EXPERIENCE_ENGINE_HYBRID_ENABLED")
|
|
383
|
+
?? (typeof existingEntryConfig?.hybridEnabled === "boolean" ? existingEntryConfig.hybridEnabled : undefined)
|
|
384
|
+
?? resolvedConfig.hybridEnabled,
|
|
385
|
+
hybridSyncExplainEnabled: readExplicitBooleanEnv(env, "EXPERIENCE_ENGINE_HYBRID_SYNC_EXPLAIN_ENABLED")
|
|
386
|
+
?? (typeof existingEntryConfig?.hybridSyncExplainEnabled === "boolean" ? existingEntryConfig.hybridSyncExplainEnabled : undefined)
|
|
387
|
+
?? resolvedConfig.hybridSyncExplainEnabled,
|
|
388
|
+
hybridAsyncPostmortemEnabled: readExplicitBooleanEnv(env, "EXPERIENCE_ENGINE_HYBRID_ASYNC_POSTMORTEM_ENABLED")
|
|
389
|
+
?? (typeof existingEntryConfig?.hybridAsyncPostmortemEnabled === "boolean" ? existingEntryConfig.hybridAsyncPostmortemEnabled : undefined)
|
|
390
|
+
?? resolvedConfig.hybridAsyncPostmortemEnabled,
|
|
391
|
+
hybridAsyncPostmortemLlmEnabled: readExplicitBooleanEnv(env, "EXPERIENCE_ENGINE_HYBRID_ASYNC_POSTMORTEM_LLM_ENABLED")
|
|
392
|
+
?? (typeof existingEntryConfig?.hybridAsyncPostmortemLlmEnabled === "boolean" ? existingEntryConfig.hybridAsyncPostmortemLlmEnabled : undefined)
|
|
393
|
+
?? resolvedConfig.hybridAsyncPostmortemLlmEnabled,
|
|
394
|
+
hybridExplainLlmEnabled: readExplicitBooleanEnv(env, "EXPERIENCE_ENGINE_HYBRID_EXPLAIN_LLM_ENABLED")
|
|
395
|
+
?? (typeof existingEntryConfig?.hybridExplainLlmEnabled === "boolean" ? existingEntryConfig.hybridExplainLlmEnabled : undefined)
|
|
396
|
+
?? resolvedConfig.hybridExplainLlmEnabled,
|
|
397
|
+
hybridExplainProviderMode: readExplicitStringEnv(env, "EXPERIENCE_ENGINE_HYBRID_EXPLAIN_PROVIDER_MODE")
|
|
398
|
+
?? (typeof existingEntryConfig?.hybridExplainProviderMode === "string" ? existingEntryConfig.hybridExplainProviderMode : undefined)
|
|
399
|
+
?? resolvedConfig.hybridExplainProviderMode,
|
|
400
|
+
hybridExplainModelProfileVersion: readExplicitStringEnv(env, "EXPERIENCE_ENGINE_HYBRID_EXPLAIN_MODEL_PROFILE_VERSION")
|
|
401
|
+
?? (typeof existingEntryConfig?.hybridExplainModelProfileVersion === "string" ? existingEntryConfig.hybridExplainModelProfileVersion : undefined)
|
|
402
|
+
?? resolvedConfig.hybridExplainModelProfileVersion,
|
|
403
|
+
hybridPostmortemProviderMode: readExplicitStringEnv(env, "EXPERIENCE_ENGINE_HYBRID_POSTMORTEM_PROVIDER_MODE")
|
|
404
|
+
?? (typeof existingEntryConfig?.hybridPostmortemProviderMode === "string" ? existingEntryConfig.hybridPostmortemProviderMode : undefined)
|
|
405
|
+
?? resolvedConfig.hybridPostmortemProviderMode,
|
|
406
|
+
hybridPostmortemModelProfileVersion: readExplicitStringEnv(env, "EXPERIENCE_ENGINE_HYBRID_POSTMORTEM_MODEL_PROFILE_VERSION")
|
|
407
|
+
?? (typeof existingEntryConfig?.hybridPostmortemModelProfileVersion === "string" ? existingEntryConfig.hybridPostmortemModelProfileVersion : undefined)
|
|
408
|
+
?? resolvedConfig.hybridPostmortemModelProfileVersion
|
|
258
409
|
};
|
|
259
410
|
mkdirSync(paths.dataDir, { recursive: true });
|
|
260
411
|
mkdirSync(resolveProductStateDir(paths), { recursive: true });
|
|
@@ -271,7 +422,7 @@ export const installOpenClawAdapter = (options = {}) => {
|
|
|
271
422
|
const installSource = (options.packageSourceBuilder ?? createOpenClawInstallTarball)(packageRoot, paths);
|
|
272
423
|
const commands = buildOpenClawInstallCommands(installSource, "experienceengine", installAction, pluginConfig);
|
|
273
424
|
runOpenClawCommands(commands, options.runner);
|
|
274
|
-
cleanupOpenClawWarningSources(
|
|
425
|
+
cleanupOpenClawWarningSources(existingPluginsConfig, expectedInstallPath, options.runner);
|
|
275
426
|
const payload = {
|
|
276
427
|
adapter: "openclaw",
|
|
277
428
|
installedAt: new Date().toISOString(),
|
|
@@ -305,27 +456,46 @@ export const installOpenClawAdapter = (options = {}) => {
|
|
|
305
456
|
pluginConfig
|
|
306
457
|
};
|
|
307
458
|
};
|
|
308
|
-
const
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
459
|
+
const isLiveConfigValueMissingButDefault = (key, expectedValue) => defaultConfig[key] === expectedValue;
|
|
460
|
+
const configsMatch = (liveConfig, expectedConfig) => Boolean(liveConfig) &&
|
|
461
|
+
Boolean(expectedConfig) &&
|
|
462
|
+
OPENCLAW_PLUGIN_CONFIG_KEYS.every((key) => {
|
|
463
|
+
const expectedValue = expectedConfig?.[key];
|
|
464
|
+
if (expectedValue === undefined) {
|
|
465
|
+
return true;
|
|
466
|
+
}
|
|
467
|
+
const liveValue = liveConfig?.[key];
|
|
468
|
+
if (liveValue === undefined) {
|
|
469
|
+
return isLiveConfigValueMissingButDefault(key, expectedValue);
|
|
470
|
+
}
|
|
471
|
+
return liveValue === expectedValue;
|
|
472
|
+
});
|
|
315
473
|
export const inspectOpenClawInstall = (options = {}) => {
|
|
316
474
|
const paths = resolveExperienceEnginePaths({
|
|
317
475
|
adapter: "openclaw",
|
|
318
476
|
env: options.env,
|
|
319
477
|
homeDir: options.homeDir
|
|
320
478
|
});
|
|
321
|
-
const state =
|
|
479
|
+
const state = readPersistedOpenClawInstallState(paths.installStatePath);
|
|
322
480
|
const expectedConfig = state
|
|
323
481
|
? {
|
|
324
482
|
dataDir: state.dataDir,
|
|
325
483
|
sqlitePath: state.sqlitePath,
|
|
326
|
-
captureDir: state.captureDir
|
|
484
|
+
captureDir: state.captureDir,
|
|
485
|
+
distillerProvider: state.distillerProvider,
|
|
486
|
+
distillerModel: state.distillerModel,
|
|
487
|
+
hybridEnabled: state.hybridEnabled,
|
|
488
|
+
hybridSyncExplainEnabled: state.hybridSyncExplainEnabled,
|
|
489
|
+
hybridAsyncPostmortemEnabled: state.hybridAsyncPostmortemEnabled,
|
|
490
|
+
hybridAsyncPostmortemLlmEnabled: state.hybridAsyncPostmortemLlmEnabled,
|
|
491
|
+
hybridExplainLlmEnabled: state.hybridExplainLlmEnabled,
|
|
492
|
+
hybridExplainProviderMode: state.hybridExplainProviderMode,
|
|
493
|
+
hybridExplainModelProfileVersion: state.hybridExplainModelProfileVersion,
|
|
494
|
+
hybridPostmortemProviderMode: state.hybridPostmortemProviderMode,
|
|
495
|
+
hybridPostmortemModelProfileVersion: state.hybridPostmortemModelProfileVersion
|
|
327
496
|
}
|
|
328
497
|
: undefined;
|
|
498
|
+
const runtimeDefaults = getOpenClawRuntimeDefaults();
|
|
329
499
|
let hostState = {
|
|
330
500
|
warnings: [],
|
|
331
501
|
configMatches: false
|
|
@@ -345,11 +515,7 @@ export const inspectOpenClawInstall = (options = {}) => {
|
|
|
345
515
|
installPath: info.installPath,
|
|
346
516
|
enabled: config.entry?.enabled,
|
|
347
517
|
liveConfig,
|
|
348
|
-
configMatches:
|
|
349
|
-
Boolean(liveConfig) &&
|
|
350
|
-
liveConfig?.dataDir === expected?.dataDir &&
|
|
351
|
-
liveConfig?.sqlitePath === expected?.sqlitePath &&
|
|
352
|
-
liveConfig?.captureDir === expected?.captureDir
|
|
518
|
+
configMatches: configsMatch(liveConfig, expected)
|
|
353
519
|
};
|
|
354
520
|
const drift = inspectInstalledOpenClawBundleDrift(state?.packageRoot, info.installPath, options.homeDir);
|
|
355
521
|
hostState.driftDetected = drift.detected;
|
|
@@ -378,6 +544,7 @@ export const inspectOpenClawInstall = (options = {}) => {
|
|
|
378
544
|
wired: state?.hostWiring?.wired ?? false,
|
|
379
545
|
restartRecommended: state?.hostWiring?.restartRecommended ?? false
|
|
380
546
|
},
|
|
547
|
+
runtimeDefaults,
|
|
381
548
|
hostState
|
|
382
549
|
};
|
|
383
550
|
};
|