@alan512/experienceengine 0.1.3 → 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 +0 -0
- package/LICENSE +0 -0
- package/README.md +196 -114
- package/README.zh-CN.md +230 -100
- 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 +0 -0
- package/dist/adapters/codex/instruction-template.js +0 -0
- package/dist/adapters/codex/instruction-template.js.map +0 -0
- package/dist/adapters/codex/mcp-server.d.ts +21 -0
- package/dist/adapters/codex/mcp-server.js +103 -423
- 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 +633 -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 +11 -4
- 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 +0 -0
- package/dist/cli/commands/config.js.map +0 -0
- 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 +0 -0
- package/dist/cli/commands/doctor.js +20 -0
- 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 +0 -0
- package/dist/cli/commands/feedback.js.map +0 -0
- 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 +0 -0
- package/dist/cli/commands/init.js +21 -8
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/inspect.d.ts +0 -0
- package/dist/cli/commands/inspect.js +69 -1
- package/dist/cli/commands/inspect.js.map +1 -1
- package/dist/cli/commands/install.d.ts +0 -0
- package/dist/cli/commands/install.js +0 -0
- package/dist/cli/commands/install.js.map +0 -0
- package/dist/cli/commands/maintenance.d.ts +0 -0
- package/dist/cli/commands/maintenance.js +0 -0
- package/dist/cli/commands/maintenance.js.map +0 -0
- package/dist/cli/commands/mcp-server.d.ts +0 -0
- package/dist/cli/commands/mcp-server.js +0 -0
- package/dist/cli/commands/mcp-server.js.map +0 -0
- 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 +32 -0
- 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 +16 -4
- 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 +0 -0
- package/dist/cli/state-model.js +0 -0
- package/dist/cli/state-model.js.map +0 -0
- package/dist/config/config-schema.d.ts +177 -0
- package/dist/config/config-schema.js +142 -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 +19 -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 +72 -1
- package/dist/config/load-config.js.map +1 -1
- package/dist/config/path-resolver.d.ts +0 -0
- package/dist/config/path-resolver.js +0 -0
- package/dist/config/path-resolver.js.map +0 -0
- package/dist/config/runtime-env.d.ts +0 -0
- package/dist/config/runtime-env.js +0 -0
- package/dist/config/runtime-env.js.map +0 -0
- package/dist/config/secrets-store.d.ts +0 -0
- package/dist/config/secrets-store.js +0 -0
- package/dist/config/secrets-store.js.map +0 -0
- package/dist/config/settings-store.d.ts +19 -0
- package/dist/config/settings-store.js +11 -0
- package/dist/config/settings-store.js.map +1 -1
- package/dist/controller/candidate-retriever.d.ts +15 -1
- package/dist/controller/candidate-retriever.js +91 -137
- package/dist/controller/candidate-retriever.js.map +1 -1
- package/dist/controller/injection-renderer.d.ts +0 -0
- package/dist/controller/injection-renderer.js +0 -0
- package/dist/controller/injection-renderer.js.map +0 -0
- package/dist/controller/injection-scorecard.d.ts +2 -14
- package/dist/controller/injection-scorecard.js +29 -0
- 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 -15
- package/dist/controller/intervention-controller.js +217 -57
- package/dist/controller/intervention-controller.js.map +1 -1
- package/dist/controller/lexical-retriever.d.ts +0 -0
- package/dist/controller/lexical-retriever.js +0 -0
- package/dist/controller/lexical-retriever.js.map +0 -0
- package/dist/controller/model-reranker.d.ts +0 -0
- package/dist/controller/model-reranker.js +0 -0
- package/dist/controller/model-reranker.js.map +0 -0
- package/dist/controller/node-ranker.d.ts +0 -0
- package/dist/controller/node-ranker.js +0 -0
- package/dist/controller/node-ranker.js.map +0 -0
- 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 +0 -0
- package/dist/controller/query-rewrite.js +0 -0
- package/dist/controller/query-rewrite.js.map +0 -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 +4 -0
- package/dist/controller/trigger-evaluator.js +8 -2
- 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 +0 -0
- package/dist/distillation/experience-family.js +0 -0
- package/dist/distillation/experience-family.js.map +0 -0
- package/dist/distillation/host-llm.d.ts +0 -0
- package/dist/distillation/host-llm.js +0 -0
- package/dist/distillation/host-llm.js.map +0 -0
- package/dist/distillation/llm-distiller.d.ts +0 -0
- package/dist/distillation/llm-distiller.js +0 -0
- package/dist/distillation/llm-distiller.js.map +0 -0
- package/dist/distillation/merge-decider.d.ts +0 -0
- package/dist/distillation/merge-decider.js +0 -0
- package/dist/distillation/merge-decider.js.map +0 -0
- 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 +3 -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 +22 -3
- 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 +6 -3
- 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/hybrid/types.js +2 -0
- package/dist/hybrid/types.js.map +1 -0
- 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 +0 -0
- package/dist/input/input-adapter.js.map +0 -0
- package/dist/input/outcome-resolver.d.ts +0 -0
- package/dist/input/outcome-resolver.js +0 -0
- package/dist/input/outcome-resolver.js.map +0 -0
- 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 +0 -0
- package/dist/input/tasktype-resolver.js.map +0 -0
- package/dist/input/tool-event-significance.d.ts +0 -0
- package/dist/input/tool-event-significance.js +0 -0
- package/dist/input/tool-event-significance.js.map +0 -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 +1 -0
- package/dist/install/claude-code-doctor.js +20 -4
- 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 +0 -0
- package/dist/install/claude-marketplace-state.js +0 -0
- package/dist/install/claude-marketplace-state.js.map +0 -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 +0 -0
- package/dist/install/codex-installer.js +0 -0
- package/dist/install/codex-installer.js.map +0 -0
- 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 -7
- package/dist/install/openclaw-installer.js +197 -46
- package/dist/install/openclaw-installer.js.map +1 -1
- package/dist/install/public-install.d.ts +0 -0
- package/dist/install/public-install.js +0 -0
- package/dist/install/public-install.js.map +0 -0
- 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 +0 -0
- package/dist/interaction/repo-summary.js +0 -0
- package/dist/interaction/repo-summary.js.map +0 -0
- package/dist/interaction/service.d.ts +15 -0
- package/dist/interaction/service.js +174 -20
- 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 -0
- package/dist/maintenance/scope-merge.js +0 -0
- package/dist/maintenance/scope-merge.js.map +0 -0
- 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 +125 -0
- package/dist/plugin/openclaw-plugin.js +18 -7
- package/dist/plugin/openclaw-plugin.js.map +1 -1
- package/dist/plugin/openclaw-routine-interaction.d.ts +2 -1
- package/dist/plugin/openclaw-routine-interaction.js +12 -7
- package/dist/plugin/openclaw-routine-interaction.js.map +1 -1
- 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 -5
- package/dist/runtime/service.js +408 -22
- 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 +28 -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 +0 -0
- package/dist/store/sqlite/repositories/candidate-repo.js.map +0 -0
- 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 +0 -0
- package/dist/store/sqlite/repositories/injection-repo.js +0 -0
- package/dist/store/sqlite/repositories/injection-repo.js.map +0 -0
- package/dist/store/sqlite/repositories/input-record-repo.d.ts +1 -0
- package/dist/store/sqlite/repositories/input-record-repo.js +13 -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 +45 -6
- 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 +0 -0
- package/dist/store/sqlite/repositories/task-run-repo.js +0 -0
- package/dist/store/sqlite/repositories/task-run-repo.js.map +0 -0
- package/dist/store/sqlite/schema.sql +40 -0
- package/dist/store/vector/api-embedding-provider.d.ts +0 -0
- package/dist/store/vector/api-embedding-provider.js +0 -0
- package/dist/store/vector/api-embedding-provider.js.map +0 -0
- package/dist/store/vector/embeddings.d.ts +0 -0
- package/dist/store/vector/embeddings.js +26 -8
- 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 +136 -1
- package/dist/types/domain.js +0 -0
- package/dist/types/domain.js.map +0 -0
- package/dist/types/plugin.d.ts +2 -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 +0 -0
- package/docs/releases/v0.1.3.md +3 -2
- package/docs/releases/v0.2.0.md +85 -0
- package/docs/user-guide.md +39 -12
- package/hooks/hooks.json +0 -0
- package/openclaw.plugin.json +81 -1
- package/package.json +23 -15
- package/plugins/claude-code-experienceengine/.claude-plugin/plugin.json +1 -1
- package/plugins/claude-code-experienceengine/.mcp.json +0 -0
- package/plugins/claude-code-experienceengine/hooks/hooks.json +0 -0
- package/plugins/claude-code-experienceengine/scripts/claude-hook.sh +0 -0
- package/plugins/claude-code-experienceengine/scripts/install-deps.sh +1 -1
- package/scripts/claude-plugin/claude-hook.sh +0 -0
- package/scripts/claude-plugin/install-deps.sh +0 -0
package/dist/types/domain.js
CHANGED
|
File without changes
|
package/dist/types/domain.js.map
CHANGED
|
File without changes
|
package/dist/types/plugin.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EvaluationMode, ExperienceInput, InjectionMode, InjectionScorecard, TaskRun, ToolEvent } from "./domain.js";
|
|
1
|
+
import type { EvaluationMode, ExperienceInput, InjectionMode, InjectionScorecard, RetrievalContext, TaskRun, ToolEvent } from "./domain.js";
|
|
2
2
|
import type { ExperienceEngineConfig } from "../config/config-schema.js";
|
|
3
3
|
export type HostPromptContext = {
|
|
4
4
|
host?: TaskRun["host"];
|
|
@@ -28,6 +28,7 @@ export type PromptBuildResult = {
|
|
|
28
28
|
scorecard?: InjectionScorecard;
|
|
29
29
|
deliveryMode?: EvaluationMode;
|
|
30
30
|
delivered?: boolean;
|
|
31
|
+
retrievalContext?: RetrievalContext;
|
|
31
32
|
input: ExperienceInput;
|
|
32
33
|
};
|
|
33
34
|
export type ExperiencePlugin = {
|
package/dist/types/plugin.js
CHANGED
|
File without changes
|
package/dist/types/plugin.js.map
CHANGED
|
File without changes
|
package/dist/types/storage.d.ts
CHANGED
|
File without changes
|
package/dist/types/storage.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/utils/clock.d.ts
CHANGED
|
File without changes
|
package/dist/utils/clock.js
CHANGED
|
File without changes
|
package/dist/utils/clock.js.map
CHANGED
|
File without changes
|
package/dist/utils/errors.d.ts
CHANGED
|
File without changes
|
package/dist/utils/errors.js
CHANGED
|
File without changes
|
package/dist/utils/errors.js.map
CHANGED
|
File without changes
|
package/dist/utils/hashing.d.ts
CHANGED
|
File without changes
|
package/dist/utils/hashing.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/utils/ids.d.ts
CHANGED
|
File without changes
|
package/dist/utils/ids.js
CHANGED
|
File without changes
|
package/dist/utils/ids.js.map
CHANGED
|
File without changes
|
package/dist/utils/text.d.ts
CHANGED
|
File without changes
|
package/dist/utils/text.js
CHANGED
|
File without changes
|
package/dist/utils/text.js.map
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/releases/v0.1.0.md
CHANGED
|
File without changes
|
package/docs/releases/v0.1.1.md
CHANGED
|
File without changes
|
package/docs/releases/v0.1.2.md
CHANGED
|
File without changes
|
package/docs/releases/v0.1.3.md
CHANGED
|
@@ -70,10 +70,11 @@ The default path now favors short product-facing explanations, while deeper insp
|
|
|
70
70
|
This release trims duplicated public MCP schema in the Codex adapter without changing the current agent-first workflow:
|
|
71
71
|
|
|
72
72
|
- merged duplicate feedback, scope-state, and node-lifecycle tools
|
|
73
|
-
-
|
|
73
|
+
- removed public MCP prompts after brokering the remaining high-impact workflows
|
|
74
74
|
- kept repo summary as a resource-only read surface
|
|
75
|
+
- kept routine read surfaces public while shifting long-tail admin, maintenance, and advanced inspect paths behind broker tools
|
|
75
76
|
|
|
76
|
-
The result is a smaller public schema footprint with no change to the
|
|
77
|
+
The result is a smaller public schema footprint with no change to the routine host-first review flow.
|
|
77
78
|
|
|
78
79
|
### Marketplace-Facing Metadata
|
|
79
80
|
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# ExperienceEngine v0.2.0
|
|
2
|
+
|
|
3
|
+
Release date: 2026-04-13
|
|
4
|
+
|
|
5
|
+
## Summary
|
|
6
|
+
|
|
7
|
+
`v0.2.0` is the first release that makes ExperienceEngine explicitly production-first.
|
|
8
|
+
|
|
9
|
+
This release changes the product center of gravity in three ways:
|
|
10
|
+
|
|
11
|
+
- live hint delivery is now governed more conservatively, with delivery-state gating and stronger harmful-hint containment
|
|
12
|
+
- posttask feedback is no longer biased toward `success => helped`, and the system now supports structured per-node postmortem writeback
|
|
13
|
+
- Codex lifecycle ownership is now deterministic through a wrapper and validation harness, instead of depending on nested host behavior alone
|
|
14
|
+
|
|
15
|
+
This is a product-behavior release, not just a packaging or UX pass. That is why it moves to `v0.2.0`.
|
|
16
|
+
|
|
17
|
+
## Included In This Release
|
|
18
|
+
|
|
19
|
+
### Production-First Hint Governance
|
|
20
|
+
|
|
21
|
+
ExperienceEngine now separates lifecycle maturity from live delivery safety more clearly.
|
|
22
|
+
|
|
23
|
+
Key changes:
|
|
24
|
+
|
|
25
|
+
- delivery-state governance now controls whether a node is:
|
|
26
|
+
- shadow-only
|
|
27
|
+
- conservative-only
|
|
28
|
+
- eligible
|
|
29
|
+
- quarantined
|
|
30
|
+
- harmful nodes are removed from normal live delivery earlier
|
|
31
|
+
- `priority_candidate` remains available for cautious first exposure, while ordinary `candidate` paths stay more conservative
|
|
32
|
+
|
|
33
|
+
The result is that bad guidance is withdrawn faster, instead of being allowed to keep competing in the normal live path.
|
|
34
|
+
|
|
35
|
+
### Posttask Per-Node Governance Writeback
|
|
36
|
+
|
|
37
|
+
This release also upgrades the posttask review loop:
|
|
38
|
+
|
|
39
|
+
- automatic feedback no longer treats successful completion as enough evidence to mark a hint as helped
|
|
40
|
+
- posttask review now supports per-node `helped / harmed / uncertain` adjudication
|
|
41
|
+
- runtime writeback is policy-gated, so model output does not directly mutate lifecycle without bounded checks
|
|
42
|
+
|
|
43
|
+
This makes the experience library more trustworthy over time, especially for tasks where a hint may have been present but not actually helpful.
|
|
44
|
+
|
|
45
|
+
### Selective Sync Second Opinion
|
|
46
|
+
|
|
47
|
+
ExperienceEngine now supports a bounded synchronous LLM second-opinion layer for high-risk live hint decisions.
|
|
48
|
+
|
|
49
|
+
It is intentionally selective, not always-on.
|
|
50
|
+
|
|
51
|
+
This release includes:
|
|
52
|
+
|
|
53
|
+
- the second-opinion gate itself
|
|
54
|
+
- CLI observability for second-opinion activity in:
|
|
55
|
+
- `ee status`
|
|
56
|
+
- `ee doctor`
|
|
57
|
+
- `ee inspect --last --verbose`
|
|
58
|
+
- a tighter trigger policy so second-opinion calls happen less often on low-value edge cases
|
|
59
|
+
- explicit OpenAI-style token budgeting to reduce avoidable provider-side failures
|
|
60
|
+
|
|
61
|
+
### Deterministic Codex Lifecycle Ownership
|
|
62
|
+
|
|
63
|
+
Codex now has a deterministic wrapper path instead of relying only on nested model behavior to complete the ExperienceEngine lifecycle.
|
|
64
|
+
|
|
65
|
+
Included:
|
|
66
|
+
|
|
67
|
+
- `ee codex exec` wrapper for external lifecycle ownership
|
|
68
|
+
- support for stdin prompt input and explicit EE session ids
|
|
69
|
+
- a deterministic `codex-lifecycle` validation harness
|
|
70
|
+
|
|
71
|
+
This makes Codex validation and operator workflows much less dependent on host randomness, quota windows, or nested tool-calling behavior.
|
|
72
|
+
|
|
73
|
+
### OpenClaw Packaging And Runtime Reliability
|
|
74
|
+
|
|
75
|
+
This release also folds in the OpenClaw stability fixes completed after `v0.1.3`:
|
|
76
|
+
|
|
77
|
+
- safer packaged install behavior
|
|
78
|
+
- cleaner runtime payload boundaries
|
|
79
|
+
- more explicit learning-loop defaults and diagnostics
|
|
80
|
+
|
|
81
|
+
## Notes
|
|
82
|
+
|
|
83
|
+
- `v0.2.0` is still a local-first, single-machine product. It does not yet change the underlying SQLite architecture into a multi-session distributed design.
|
|
84
|
+
- real-host second-opinion acceptance with free-provider routing still depends on third-party provider availability and quota conditions
|
|
85
|
+
- the Codex wrapper path is now the recommended deterministic operator path for real release validation
|
package/docs/user-guide.md
CHANGED
|
@@ -251,9 +251,9 @@ When you inspect a specific node, ExperienceEngine now also shows a lightweight
|
|
|
251
251
|
|
|
252
252
|
## How MCP Interaction Works
|
|
253
253
|
|
|
254
|
-
For `Codex` and `Claude Code`, ExperienceEngine is designed to
|
|
254
|
+
For `Codex` and `Claude Code`, ExperienceEngine is designed to keep routine review and management inside the host session first.
|
|
255
255
|
|
|
256
|
-
That means after installation, you usually do not leave the agent session to manage ExperienceEngine. Instead, you ask the agent naturally and the
|
|
256
|
+
That means after installation, you usually do not leave the agent session to manage ExperienceEngine. Instead, you ask the agent naturally and the host uses its native EE wiring for routine interaction.
|
|
257
257
|
|
|
258
258
|
This is one host-specific implementation of the same shared product model described above:
|
|
259
259
|
|
|
@@ -275,14 +275,23 @@ Typical examples:
|
|
|
275
275
|
|
|
276
276
|
### MCP Interaction Model
|
|
277
277
|
|
|
278
|
-
|
|
278
|
+
`Codex` exposes a layered MCP surface:
|
|
279
279
|
|
|
280
|
-
- `
|
|
281
|
-
-
|
|
282
|
-
- `
|
|
283
|
-
-
|
|
284
|
-
- `
|
|
285
|
-
-
|
|
280
|
+
- `Direct tools`
|
|
281
|
+
- core loop actions like lookup, recording important tool outcomes, finalize, last-feedback, capabilities, and doctor
|
|
282
|
+
- `Routine read resources`
|
|
283
|
+
- read-only state like last interaction, recent history, repo summary, and routine node views
|
|
284
|
+
- `Brokered advanced actions`
|
|
285
|
+
- lower-frequency inspect, admin, maintenance, and high-impact plan/execute flows exposed through a small broker tool surface instead of many direct schemas
|
|
286
|
+
|
|
287
|
+
For `Codex`, this means routine host-native interaction stays discoverable, while long-tail admin and maintenance actions are reached through brokered actions rather than public prompts or one-tool-per-action registration.
|
|
288
|
+
|
|
289
|
+
`Claude Code` still uses both `hooks` and `MCP`:
|
|
290
|
+
|
|
291
|
+
- hooks drive runtime capture and injection
|
|
292
|
+
- MCP drives inspect, control, and operational interaction
|
|
293
|
+
|
|
294
|
+
So the two hosts share the same product model, but they do not expose the exact same interaction shape.
|
|
286
295
|
|
|
287
296
|
For high-impact actions, ExperienceEngine does not execute immediately. It uses a:
|
|
288
297
|
|
|
@@ -352,12 +361,13 @@ These are operator-facing controls, not the preferred public onboarding path.
|
|
|
352
361
|
|
|
353
362
|
## Embedding Retrieval
|
|
354
363
|
|
|
355
|
-
ExperienceEngine now supports a multi-provider embedding stack
|
|
364
|
+
ExperienceEngine now supports a multi-provider embedding stack inside a staged hybrid retrieval pipeline.
|
|
356
365
|
|
|
357
366
|
Retrieval is now hybrid by default:
|
|
358
367
|
|
|
359
|
-
-
|
|
360
|
-
- lexical retrieval
|
|
368
|
+
- query normalization and rewrite happen first so retrieval keeps engineering intent when prompt wording shifts
|
|
369
|
+
- lexical and semantic retrieval are fused into one candidate shortlist instead of treating semantic retrieval as the unquestioned main path
|
|
370
|
+
- policy enrichment stays separate from retrieval scoring, so maturity and governance signals do not replace retrieval evidence
|
|
361
371
|
- reranking can promote a better-matching candidate above older score advantages, especially when an external reranker is configured
|
|
362
372
|
|
|
363
373
|
Default behavior (`embeddingProvider = "api"`):
|
|
@@ -369,6 +379,12 @@ Default behavior (`embeddingProvider = "api"`):
|
|
|
369
379
|
- if the API provider fails, ExperienceEngine falls back to the managed local model
|
|
370
380
|
- if the local model fails, ExperienceEngine falls back to legacy hash-based retrieval
|
|
371
381
|
|
|
382
|
+
Prompt-time behavior:
|
|
383
|
+
|
|
384
|
+
- first-turn or prompt-only retrieval may not have any tool names or failure signatures yet
|
|
385
|
+
- ExperienceEngine treats those fields as opportunistic evidence, not required retrieval inputs
|
|
386
|
+
- when prompt-only evidence is sparse, lexical, semantic, and policy stages still run with the task summary and context summary alone
|
|
387
|
+
|
|
372
388
|
Offline behavior (`embeddingProvider = "local"`):
|
|
373
389
|
|
|
374
390
|
- the default local model is `Xenova/multilingual-e5-small`
|
|
@@ -414,6 +430,8 @@ ee install openclaw
|
|
|
414
430
|
What happens:
|
|
415
431
|
- ExperienceEngine installs as an OpenClaw plugin/runtime integration (not `src/adapters/`)
|
|
416
432
|
- OpenClaw runtime events are used for intervention and persistence
|
|
433
|
+
- OpenClaw uses the shared background learning loop by default
|
|
434
|
+
- async hybrid posttask review stays disabled by default unless the runtime is explicitly overridden
|
|
417
435
|
- management remains mostly through CLI fallback today
|
|
418
436
|
- install ends with a short cold-start note so users know capture is active before the first formal hint appears
|
|
419
437
|
|
|
@@ -511,6 +529,9 @@ Useful commands:
|
|
|
511
529
|
```bash
|
|
512
530
|
ee doctor codex
|
|
513
531
|
ee upgrade codex
|
|
532
|
+
ee codex exec -C /path/to/repo -s read-only "Say ok and exit."
|
|
533
|
+
printf "Say ok and exit." | ee codex exec -C /path/to/repo -s read-only -
|
|
534
|
+
ee codex exec --ee-session-id ci-smoke-1 -C /path/to/repo -s read-only "Say ok and exit."
|
|
514
535
|
```
|
|
515
536
|
|
|
516
537
|
First validation:
|
|
@@ -529,6 +550,12 @@ Host note:
|
|
|
529
550
|
- ExperienceEngine installs a longer `startup_timeout_sec` for Codex automatically
|
|
530
551
|
- this avoids MCP handshake failures on slower local startups
|
|
531
552
|
- if Codex still cannot see ExperienceEngine in new sessions, re-run `ee install codex`
|
|
553
|
+
- `ee codex exec` is a deterministic wrapper for non-interactive runs
|
|
554
|
+
- the wrapper owns `lookup -> child codex exec -> record -> finalize` outside the child process
|
|
555
|
+
- for wrapped runs, ExperienceEngine removes the nested `experienceengine` MCP server from the child Codex config temporarily so lifecycle evidence is not double-written
|
|
556
|
+
- use prompt `-` when you want the wrapper to read task instructions from stdin; child Codex still receives a wrapped prompt argument and does not inherit stdin
|
|
557
|
+
- use `--ee-session-id <id>` when CI or debugging needs a stable ExperienceEngine session id
|
|
558
|
+
- `codex exec review` is not wrapped yet; keep using native Codex review or the MCP/CLI surfaces for review workflows
|
|
532
559
|
|
|
533
560
|
Developer validation docs:
|
|
534
561
|
|
package/hooks/hooks.json
CHANGED
|
File without changes
|
package/openclaw.plugin.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "experienceengine",
|
|
3
3
|
"name": "ExperienceEngine",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.2.0",
|
|
5
5
|
"description": "Context-aware experience intervention controller for coding and debugging tasks.",
|
|
6
6
|
"configSchema": {
|
|
7
7
|
"type": "object",
|
|
@@ -28,6 +28,15 @@
|
|
|
28
28
|
"type": "string",
|
|
29
29
|
"description": "Directory used to store raw runtime payload captures."
|
|
30
30
|
},
|
|
31
|
+
"distillerProvider": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"enum": ["openai", "anthropic", "gemini", "openrouter", "deepseek", "bedrock", "vertex_gemini", "groq", "openai_compatible"],
|
|
34
|
+
"description": "Distillation provider reused by phase 2 provider-backed explain."
|
|
35
|
+
},
|
|
36
|
+
"distillerModel": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"description": "Distillation model identifier reused by phase 2 provider-backed explain."
|
|
39
|
+
},
|
|
31
40
|
"maxHints": {
|
|
32
41
|
"type": "integer",
|
|
33
42
|
"minimum": 1,
|
|
@@ -39,6 +48,44 @@
|
|
|
39
48
|
"minimum": 0,
|
|
40
49
|
"maximum": 1,
|
|
41
50
|
"description": "Trigger threshold for intervention gating."
|
|
51
|
+
},
|
|
52
|
+
"hybridEnabled": {
|
|
53
|
+
"type": "boolean",
|
|
54
|
+
"description": "Enable the hybrid routing layer."
|
|
55
|
+
},
|
|
56
|
+
"hybridSyncExplainEnabled": {
|
|
57
|
+
"type": "boolean",
|
|
58
|
+
"description": "Allow bounded sync escalation for explicit explanation requests."
|
|
59
|
+
},
|
|
60
|
+
"hybridAsyncPostmortemEnabled": {
|
|
61
|
+
"type": "boolean",
|
|
62
|
+
"description": "Allow bounded async postmortem review for eligible completed runs."
|
|
63
|
+
},
|
|
64
|
+
"hybridAsyncPostmortemLlmEnabled": {
|
|
65
|
+
"type": "boolean",
|
|
66
|
+
"description": "Enable provider-backed postmortem_review in phase 3."
|
|
67
|
+
},
|
|
68
|
+
"hybridExplainLlmEnabled": {
|
|
69
|
+
"type": "boolean",
|
|
70
|
+
"description": "Enable provider-backed explain_decision in phase 2."
|
|
71
|
+
},
|
|
72
|
+
"hybridExplainProviderMode": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"enum": ["shared_distiller"],
|
|
75
|
+
"description": "Provider resolution mode for phase 2 explain_decision."
|
|
76
|
+
},
|
|
77
|
+
"hybridExplainModelProfileVersion": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"description": "Version label for the provider-backed explain_decision model profile."
|
|
80
|
+
},
|
|
81
|
+
"hybridPostmortemProviderMode": {
|
|
82
|
+
"type": "string",
|
|
83
|
+
"enum": ["shared_distiller"],
|
|
84
|
+
"description": "Provider resolution mode for phase 3 postmortem_review."
|
|
85
|
+
},
|
|
86
|
+
"hybridPostmortemModelProfileVersion": {
|
|
87
|
+
"type": "string",
|
|
88
|
+
"description": "Version label for the provider-backed postmortem_review model profile."
|
|
42
89
|
}
|
|
43
90
|
}
|
|
44
91
|
},
|
|
@@ -61,11 +108,44 @@
|
|
|
61
108
|
"label": "Capture Directory",
|
|
62
109
|
"placeholder": "./data/runtime-captures"
|
|
63
110
|
},
|
|
111
|
+
"distillerProvider": {
|
|
112
|
+
"label": "Distiller Provider"
|
|
113
|
+
},
|
|
114
|
+
"distillerModel": {
|
|
115
|
+
"label": "Distiller Model"
|
|
116
|
+
},
|
|
64
117
|
"maxHints": {
|
|
65
118
|
"label": "Max Hints"
|
|
66
119
|
},
|
|
67
120
|
"triggerThreshold": {
|
|
68
121
|
"label": "Trigger Threshold"
|
|
122
|
+
},
|
|
123
|
+
"hybridEnabled": {
|
|
124
|
+
"label": "Hybrid Enabled"
|
|
125
|
+
},
|
|
126
|
+
"hybridSyncExplainEnabled": {
|
|
127
|
+
"label": "Hybrid Sync Explain Enabled"
|
|
128
|
+
},
|
|
129
|
+
"hybridAsyncPostmortemEnabled": {
|
|
130
|
+
"label": "Hybrid Async Postmortem Enabled"
|
|
131
|
+
},
|
|
132
|
+
"hybridAsyncPostmortemLlmEnabled": {
|
|
133
|
+
"label": "Hybrid Async Postmortem LLM Enabled"
|
|
134
|
+
},
|
|
135
|
+
"hybridExplainLlmEnabled": {
|
|
136
|
+
"label": "Hybrid Explain LLM Enabled"
|
|
137
|
+
},
|
|
138
|
+
"hybridExplainProviderMode": {
|
|
139
|
+
"label": "Hybrid Explain Provider Mode"
|
|
140
|
+
},
|
|
141
|
+
"hybridExplainModelProfileVersion": {
|
|
142
|
+
"label": "Hybrid Explain Model Profile Version"
|
|
143
|
+
},
|
|
144
|
+
"hybridPostmortemProviderMode": {
|
|
145
|
+
"label": "Hybrid Postmortem Provider Mode"
|
|
146
|
+
},
|
|
147
|
+
"hybridPostmortemModelProfileVersion": {
|
|
148
|
+
"label": "Hybrid Postmortem Model Profile Version"
|
|
69
149
|
}
|
|
70
150
|
}
|
|
71
151
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alan512/experienceengine",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Experience governance for coding agents: learn from real task outcomes, inject reusable hints, and retire low-value guidance.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -11,7 +11,15 @@
|
|
|
11
11
|
"openclaw": {
|
|
12
12
|
"extensions": [
|
|
13
13
|
"./dist/plugin/openclaw-plugin.js"
|
|
14
|
-
]
|
|
14
|
+
],
|
|
15
|
+
"compat": {
|
|
16
|
+
"pluginApi": ">=2026.4.1",
|
|
17
|
+
"minGatewayVersion": "2026.4.1"
|
|
18
|
+
},
|
|
19
|
+
"build": {
|
|
20
|
+
"openclawVersion": "2026.4.1",
|
|
21
|
+
"pluginSdkVersion": "2026.4.1"
|
|
22
|
+
}
|
|
15
23
|
},
|
|
16
24
|
"engines": {
|
|
17
25
|
"node": ">=20.0.0"
|
|
@@ -32,28 +40,28 @@
|
|
|
32
40
|
"scripts/claude-plugin",
|
|
33
41
|
".env.example"
|
|
34
42
|
],
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"@huggingface/transformers": "^3.8.1",
|
|
45
|
+
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
46
|
+
"zod": "^3.25.76"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/node": "^22.13.14",
|
|
50
|
+
"tsx": "^4.19.3",
|
|
51
|
+
"typescript": "^5.8.2",
|
|
52
|
+
"vitest": "^3.0.9"
|
|
53
|
+
},
|
|
35
54
|
"scripts": {
|
|
36
55
|
"build": "node scripts/build/clean-dist.mjs && tsc -p tsconfig.build.json && node scripts/build/copy-sqlite-schema.mjs",
|
|
37
56
|
"dev": "tsx watch src/cli/index.ts",
|
|
38
57
|
"evaluate:openclaw-baseline": "tsx src/cli/index.ts evaluate openclaw-baseline",
|
|
39
58
|
"evaluate:openclaw-scenarios": "tsx src/cli/index.ts evaluate openclaw-scenarios --pack high-confidence",
|
|
59
|
+
"evaluate:codex-lifecycle": "tsx src/cli/index.ts evaluate codex-lifecycle",
|
|
40
60
|
"maintenance:merge-warning-variants": "tsx scripts/maintenance/merge-warning-variants.ts",
|
|
41
61
|
"runtime:promote-payload": "tsx scripts/openclaw/promote-runtime-payload.ts",
|
|
42
62
|
"runtime:replay-fixture": "tsx scripts/openclaw/replay-runtime-fixture.ts",
|
|
43
|
-
"prepack": "pnpm build",
|
|
44
63
|
"typecheck": "tsc --noEmit",
|
|
45
64
|
"test": "vitest run",
|
|
46
65
|
"check": "pnpm typecheck && pnpm test && pnpm build"
|
|
47
|
-
},
|
|
48
|
-
"dependencies": {
|
|
49
|
-
"@huggingface/transformers": "^3.8.1",
|
|
50
|
-
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
51
|
-
"zod": "^3.25.76"
|
|
52
|
-
},
|
|
53
|
-
"devDependencies": {
|
|
54
|
-
"@types/node": "^22.13.14",
|
|
55
|
-
"tsx": "^4.19.3",
|
|
56
|
-
"typescript": "^5.8.2",
|
|
57
|
-
"vitest": "^3.0.9"
|
|
58
66
|
}
|
|
59
|
-
}
|
|
67
|
+
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -11,7 +11,7 @@ PACKAGE_ENTRY="${PACKAGE_DIR}/dist/cli/index.js"
|
|
|
11
11
|
STAMP_PATH="${PLUGIN_DATA}/.experienceengine-plugin-version"
|
|
12
12
|
EXPERIENCE_ENGINE_HOME_PATH="${EXPERIENCE_ENGINE_HOME:-${PLUGIN_DATA}/experienceengine-home}"
|
|
13
13
|
STATE_PATH="${EXPERIENCE_ENGINE_HOME_PATH}/claude-marketplace-state.json"
|
|
14
|
-
PACKAGE_VERSION="0.
|
|
14
|
+
PACKAGE_VERSION="0.2.0"
|
|
15
15
|
PACKAGE_SPEC="${EXPERIENCE_ENGINE_PLUGIN_PACKAGE_SPEC:-@alan512/experienceengine@${PACKAGE_VERSION}}"
|
|
16
16
|
|
|
17
17
|
mkdir -p "${PLUGIN_DATA}"
|
|
File without changes
|
|
File without changes
|