@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/README.zh-CN.md
CHANGED
|
@@ -1,59 +1,128 @@
|
|
|
1
1
|
# ExperienceEngine
|
|
2
2
|
|
|
3
|
-
[English README](./README.md)
|
|
3
|
+
[English README](./README.md) | 简体中文
|
|
4
4
|
|
|
5
|
-
ExperienceEngine 是一个面向编程 Agent
|
|
5
|
+
ExperienceEngine 是一个面向编程 Agent 的治理层。它复用真实执行经验,但不会把 memory 变成噪声堆积。它只会在相关时注入简短、任务相关的 guidance,并持续记录这次介入到底是帮到了还是干扰了结果。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**Memory 做加法,ExperienceEngine 做治理。**
|
|
8
|
+
|
|
9
|
+
当前支持的宿主:`OpenClaw`、`Claude Code`、`Codex`
|
|
10
|
+
|
|
11
|
+
## 10 秒理解
|
|
12
|
+
|
|
13
|
+
没有 ExperienceEngine:
|
|
14
|
+
- agent 会在相似仓库里重复犯同样的 SQLite migration 错误
|
|
15
|
+
|
|
16
|
+
有 ExperienceEngine:
|
|
17
|
+
- 它会注入一条提示,例如:`先执行 migration,再打开数据库连接`
|
|
18
|
+
- 后续你可以把这次介入标记为 `helpful` 或 `harmful`
|
|
19
|
+
- 这条经验会据此进入 active、降温或退役
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
任务信号 -> 提炼经验 -> 检索 -> 短提示注入 -> 反馈 -> 治理
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
<details>
|
|
26
|
+
<summary>宿主里的示例对话</summary>
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
用户:修一下这个仓库里的 SQLite 启动失败问题。
|
|
30
|
+
|
|
31
|
+
ExperienceEngine:
|
|
32
|
+
Hint: 先执行 migration,再打开数据库连接。
|
|
33
|
+
|
|
34
|
+
宿主 agent:
|
|
35
|
+
我会先补 migration,然后再重试启动。
|
|
36
|
+
|
|
37
|
+
用户:
|
|
38
|
+
为什么这条 ExperienceEngine 提示会命中?
|
|
39
|
+
|
|
40
|
+
宿主 agent:
|
|
41
|
+
它匹配到了这个仓库里过去一次相同的 SQLite 启动失败,以及当时成功的 migration-first 修复路径。
|
|
42
|
+
|
|
43
|
+
用户:
|
|
44
|
+
把刚才那次 ExperienceEngine 介入标记为 helpful。
|
|
45
|
+
|
|
46
|
+
宿主 agent:
|
|
47
|
+
已记录。之后遇到类似任务时,这条经验会更容易再次命中。
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
</details>
|
|
51
|
+
|
|
52
|
+

|
|
53
|
+
|
|
54
|
+
## 快速开始
|
|
55
|
+
|
|
56
|
+
最快的宿主安装路径:
|
|
8
57
|
|
|
9
|
-
当前支持的宿主:
|
|
10
58
|
- `OpenClaw`
|
|
11
|
-
- `
|
|
59
|
+
- `openclaw plugins install @alan512/experienceengine`
|
|
60
|
+
- `openclaw gateway restart`
|
|
61
|
+
- `ee init`
|
|
12
62
|
- `Codex`
|
|
63
|
+
- `ee install codex`
|
|
64
|
+
- `ee init`
|
|
65
|
+
- `Claude Code`
|
|
66
|
+
- `/plugin marketplace add https://github.com/Alan-512/ExperienceEngine.git`
|
|
67
|
+
- `/plugin install experienceengine@experienceengine`
|
|
68
|
+
- `ee init`
|
|
13
69
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
70
|
+
`ee init` 用于在宿主安装完成后初始化共享的 ExperienceEngine 状态。
|
|
71
|
+
|
|
72
|
+
如果你需要更详细的宿主安装说明、fallback 路径、ready 状态说明或 operator 工作流,跳转到 [完整安装与运维说明](#完整安装与运维说明)。
|
|
73
|
+
|
|
74
|
+
## 适合谁用
|
|
18
75
|
|
|
19
|
-
|
|
76
|
+
以下情况适合使用 ExperienceEngine:
|
|
77
|
+
- 你会在相似仓库或相似工作流里反复使用 coding agent
|
|
78
|
+
- 你想要的是**短小、介入式 guidance**,而不是泛化的 memory recall
|
|
79
|
+
- 你关心历史经验到底是**帮到了还是害了**
|
|
80
|
+
- 你希望过时 guidance 能自动降温或退役,而不是越积越多
|
|
20
81
|
|
|
21
|
-
|
|
82
|
+
以下情况不适合:
|
|
83
|
+
- 你只想要一个个人笔记型 memory
|
|
84
|
+
- 你想要通用文档 RAG
|
|
85
|
+
- 你的工作流几乎不重复
|
|
86
|
+
- 你希望系统默认记住所有东西
|
|
22
87
|
|
|
23
|
-
|
|
24
|
-
- 上一轮任务的教训,在新会话里直接丢失
|
|
25
|
-
- memory 会一直加,但通常不会主动退役低价值内容
|
|
26
|
-
- 记住的东西越来越多,context 越来越重,agent 的注意力反而被稀释
|
|
88
|
+
## 宿主支持矩阵
|
|
27
89
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
|
|
90
|
+
| 宿主 | 安装路径 | 日常交互 | 成熟度 |
|
|
91
|
+
|---|---|---|---|
|
|
92
|
+
| `OpenClaw` | 原生插件安装 | 宿主原生 | 当前最完整 |
|
|
93
|
+
| `Claude Code` | marketplace 插件,保留 `ee install claude-code` fallback | MCP + plugin hooks | 已支持 |
|
|
94
|
+
| `Codex` | `ee install codex`,保留原生 MCP fallback | MCP 原生 | 已支持 |
|
|
33
95
|
|
|
34
|
-
|
|
96
|
+
## 为什么要做这个
|
|
35
97
|
|
|
36
|
-
|
|
98
|
+
Coding agent 会重复犯同类错误,通常不是因为模型不够聪明,而是因为之前的执行经验没有被**以可治理的方式**复用。
|
|
99
|
+
|
|
100
|
+
ExperienceEngine 的目标不是通用 memory 累积,而是**介入治理**。
|
|
101
|
+
|
|
102
|
+
## 为什么不是 Memory / RAG
|
|
37
103
|
|
|
38
104
|
| 问题 | Memory 系统 | ExperienceEngine |
|
|
39
105
|
|---|---|---|
|
|
40
|
-
|
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
|
|
|
44
|
-
|
|
|
106
|
+
| 跨会话保存事实和偏好 | 可以 | 不是核心目标 |
|
|
107
|
+
| 捕获失败 -> 修复 -> 成功的经验路径 | 部分支持,通常依赖人工 | 可以,来自真实任务信号 |
|
|
108
|
+
| 知道一条回忆到底有没有帮助 | 通常不行 | 可以,逐次记录 |
|
|
109
|
+
| 自动退役过时或有害 guidance | 通常不行 | 可以,内建 cooling / retired 生命周期 |
|
|
110
|
+
| 保持提示短小、任务相关 | 不是核心目标 | 是 |
|
|
111
|
+
| 通用文档检索 | 常见适用场景 | 不是核心目标 |
|
|
45
112
|
|
|
46
113
|
## 它在 Agent Loop 里的位置
|
|
47
114
|
|
|
115
|
+
从高层看,ExperienceEngine 围绕 agent loop 的位置是这样的:
|
|
116
|
+
|
|
48
117
|
```text
|
|
49
118
|
用户任务
|
|
50
119
|
-> before_prompt_build:检索并注入匹配经验
|
|
51
|
-
-> agent 推理 +
|
|
120
|
+
-> agent 推理 + 工具调用:捕获失败、重试、修正和结果
|
|
52
121
|
-> task finalize:把候选信号提炼成可复用经验
|
|
53
122
|
-> helped / harmed:提升、降温或退役节点
|
|
54
123
|
```
|
|
55
124
|
|
|
56
|
-
ExperienceEngine 工作在 context
|
|
125
|
+
ExperienceEngine 工作在 context 层,不会修改宿主模型权重。
|
|
57
126
|
|
|
58
127
|
## 经验生命周期
|
|
59
128
|
|
|
@@ -65,44 +134,77 @@ ExperienceEngine 工作在 context 层,不会去修改宿主模型权重。
|
|
|
65
134
|
-> retired
|
|
66
135
|
```
|
|
67
136
|
|
|
68
|
-
|
|
137
|
+
每条经验都根据真实任务结果演化,而不是按时间粗暴清理。帮到任务的经验会被强化,反复有害的经验会被降温或退役。
|
|
138
|
+
|
|
139
|
+
## 现在能做什么
|
|
140
|
+
|
|
141
|
+
- 在相似编码任务里复用短 guidance
|
|
142
|
+
- 查看某条 hint 为什么命中
|
|
143
|
+
- 把最近一次介入标记为 helpful 或 harmful
|
|
144
|
+
- 查看 active、cooling、retired 等生命周期状态
|
|
145
|
+
- 在 `OpenClaw`、`Claude Code`、`Codex` 三个宿主中使用
|
|
69
146
|
|
|
70
|
-
|
|
147
|
+
### 底层实现
|
|
71
148
|
|
|
72
|
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
- API-first 语义检索与平滑回退:
|
|
76
|
-
- OpenAI `text-embedding-3-small`
|
|
77
|
-
- Gemini `gemini-embedding-001`
|
|
78
|
-
- Jina `jina-embeddings-v3`
|
|
79
|
-
- 受管本地 embedding fallback
|
|
80
|
-
- legacy hash-based fallback
|
|
81
|
-
- 通过宿主 agent 直接查看和反馈经验,并保留 CLI fallback:
|
|
82
|
-
- `ee inspect --last`
|
|
83
|
-
- `ee helped`
|
|
84
|
-
- `ee harmed`
|
|
149
|
+
- MCP 原生交互面,加上 CLI / operator fallback
|
|
150
|
+
- 支持 API 与本地回退的语义检索
|
|
151
|
+
- 宿主 agent 内可直接查看和反馈经验,CLI fallback 包括 `ee inspect --last`、`ee helped`、`ee harmed`
|
|
85
152
|
|
|
86
|
-
|
|
153
|
+
如果你想看 ExperienceNode 结构和治理字段,见:
|
|
87
154
|
|
|
88
155
|
- [Experience Model Overview](./docs/development/experience-model.md)
|
|
89
156
|
|
|
90
|
-
##
|
|
157
|
+
## 当前状态
|
|
158
|
+
|
|
159
|
+
- Stable:核心经验生命周期、inspect/helped/harmed loop、宿主集成、CLI/operator fallback
|
|
160
|
+
- 当前最顺滑的路径:`OpenClaw` 原生插件安装
|
|
161
|
+
- 仍在演进:retrieval 调优、provider 策略、更高级的宿主 UX
|
|
162
|
+
- 如果你想最快拿到第一份顺滑体验,建议先从 `OpenClaw` 开始
|
|
163
|
+
|
|
164
|
+
## 什么叫第一次真正成功
|
|
165
|
+
|
|
166
|
+
安装并初始化后,第一次真正体现价值的信号通常是:
|
|
167
|
+
|
|
168
|
+
- ExperienceEngine 在真实任务里注入了一条短 hint
|
|
169
|
+
- 宿主能解释为什么这条 hint 会命中
|
|
170
|
+
- 你对最近一次介入的反馈,会影响后续复用
|
|
171
|
+
- `ee inspect --last` 能看到最近的介入和相关节点状态
|
|
172
|
+
|
|
173
|
+
## 前置条件
|
|
174
|
+
|
|
175
|
+
安装宿主前,请先确认对应宿主 CLI 已能在当前机器正常工作:
|
|
176
|
+
|
|
177
|
+
- `openclaw`
|
|
178
|
+
- `claude`
|
|
179
|
+
- `codex`
|
|
180
|
+
|
|
181
|
+
**ExperienceEngine 不会替你安装这些宿主 CLI。** 它只会接入一个已经可用的宿主环境。
|
|
182
|
+
|
|
183
|
+
OpenClaw 说明:
|
|
184
|
+
- 需要本机已有可正常工作的 OpenClaw,且支持原生插件安装
|
|
185
|
+
- 下面的 OpenClaw 路径默认要求 `openclaw plugins install` 和 `openclaw gateway restart` 可用
|
|
186
|
+
|
|
187
|
+
通用包要求:
|
|
188
|
+
- 发布包要求 Node.js `>=20`
|
|
91
189
|
|
|
92
|
-
|
|
190
|
+
## 完整安装与运维说明
|
|
93
191
|
|
|
94
|
-
|
|
192
|
+
### 按宿主安装
|
|
193
|
+
|
|
194
|
+
ExperienceEngine 现在不再把 `ee` CLI 当成适用于所有宿主的统一首要安装入口。
|
|
195
|
+
|
|
196
|
+
请先从宿主自己的安装路径接入:
|
|
95
197
|
|
|
96
198
|
- `OpenClaw`
|
|
97
199
|
- 宿主原生插件安装:
|
|
98
200
|
- `openclaw plugins install @alan512/experienceengine`
|
|
99
|
-
-
|
|
201
|
+
- 安装后,在开始真实任务前先重启 gateway:
|
|
100
202
|
- `openclaw gateway restart`
|
|
101
203
|
- `Codex`
|
|
102
204
|
- EE 托管安装:
|
|
103
205
|
- `ee install codex`
|
|
104
206
|
- 原生 / 手工 fallback:
|
|
105
|
-
-
|
|
207
|
+
- 如果你需要直接 MCP wiring,可参考后面的高级示例
|
|
106
208
|
- 无论走哪条路径,首次接入后都建议在仓库里开启一个新的 Codex 会话,让 MCP 配置和 `AGENTS.md` 指令块生效
|
|
107
209
|
- `Claude Code`
|
|
108
210
|
- 宿主原生 marketplace 安装:
|
|
@@ -110,34 +212,33 @@ ExperienceEngine 现在采用**宿主侧安装优先**。
|
|
|
110
212
|
- `/plugin marketplace add https://github.com/Alan-512/ExperienceEngine.git`
|
|
111
213
|
- 再安装插件:
|
|
112
214
|
- `/plugin install experienceengine@experienceengine`
|
|
113
|
-
- 如果你需要显式 hooks + MCP wiring
|
|
215
|
+
- 如果你需要显式 hooks + MCP wiring,仍可使用:
|
|
114
216
|
- `ee install claude-code`
|
|
115
217
|
- 安装后建议开启一个新的 Claude Code 会话,让插件 hooks 和 bundled MCP 配置生效
|
|
116
218
|
|
|
117
|
-
|
|
219
|
+
无论哪个宿主,整体流程都是一样的:
|
|
118
220
|
|
|
119
|
-
|
|
221
|
+
1. 通过宿主路径安装 ExperienceEngine
|
|
222
|
+
2. 执行一次 `ee init` 初始化共享状态
|
|
223
|
+
3. 重启或新开宿主会话,直到仓库变成 `Ready`
|
|
224
|
+
4. 日常检查和反馈优先留在宿主内部完成
|
|
225
|
+
5. 需要验证、修复或深度排障时,再退回 `ee` CLI
|
|
120
226
|
|
|
121
|
-
|
|
122
|
-
- “显示最近一次 ExperienceEngine 介入。”
|
|
123
|
-
- “把刚才那次 ExperienceEngine 提示标记为 helpful。”
|
|
227
|
+
### 共享初始化
|
|
124
228
|
|
|
125
|
-
|
|
229
|
+
`ee init` 属于 ExperienceEngine 的共享初始化,不是某个宿主自己的安装步骤。
|
|
126
230
|
|
|
127
|
-
|
|
128
|
-
ee init
|
|
129
|
-
ee doctor <openclaw|claude-code|codex>
|
|
130
|
-
ee status
|
|
131
|
-
ee maintenance embedding-smoke
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
这里的 `ee init` 属于 ExperienceEngine 的**共享初始化**,不是某个宿主自己的安装步骤。
|
|
135
|
-
|
|
136
|
-
- 第一次把 EE 接到任意一个宿主后,做一次初始化即可。它会统一引导你配置:
|
|
231
|
+
- 第一次接入任意宿主后执行一次,用来配置:
|
|
137
232
|
- distillation provider / model / auth
|
|
138
233
|
- embedding 模式 / provider
|
|
139
234
|
- 共享 provider secret
|
|
140
|
-
-
|
|
235
|
+
- 后续再接入其他宿主,会复用同一个 ExperienceEngine home、配置和共享 secret
|
|
236
|
+
|
|
237
|
+
安装完成后,ExperienceEngine 应该把用户引导到下一步状态:
|
|
238
|
+
|
|
239
|
+
- 如果宿主 wiring 已完成,产品至少是 `Installed`
|
|
240
|
+
- 执行完 `ee init` 后,进入 `Initialized`
|
|
241
|
+
- 宿主或仓库完成 reload 并能开始真实任务后,进入 `Ready`
|
|
141
242
|
|
|
142
243
|
最小共享初始化示例:
|
|
143
244
|
|
|
@@ -150,42 +251,63 @@ ee init show
|
|
|
150
251
|
|
|
151
252
|
如果你更想用 Gemini 或 Jina 做 embedding,可以沿用同样的 `ee init embedding` 流程,只替换 provider 和 model。
|
|
152
253
|
|
|
153
|
-
|
|
254
|
+
### 日常使用与 Operator 使用
|
|
154
255
|
|
|
155
|
-
|
|
256
|
+
日常使用时,优先直接问宿主 agent,例如:
|
|
156
257
|
|
|
157
|
-
-
|
|
158
|
-
-
|
|
159
|
-
-
|
|
258
|
+
- “ExperienceEngine 刚刚注入了什么?”
|
|
259
|
+
- “为什么那条 ExperienceEngine 提示会命中?”
|
|
260
|
+
- “把刚才那次 ExperienceEngine 介入标记为 helpful 或 harmful。”
|
|
160
261
|
|
|
161
|
-
|
|
262
|
+
OpenClaw 还支持这些 readiness / silence 问题:
|
|
162
263
|
|
|
163
|
-
|
|
264
|
+
- “ExperienceEngine 这里 ready 了吗?”
|
|
265
|
+
- “这个仓库里的 ExperienceEngine 还在 warming up 吗?”
|
|
266
|
+
- “刚才为什么 ExperienceEngine 没有注入?”
|
|
164
267
|
|
|
165
|
-
|
|
268
|
+
对于 `OpenClaw`、`Codex`、`Claude Code`,常规 review / feedback 路径都应优先留在宿主内部完成。
|
|
269
|
+
只有宿主侧路径不可用,或者你需要显式 operator 控制时,再退回 CLI。
|
|
166
270
|
|
|
167
|
-
|
|
168
|
-
- 验证、修复、状态查看属于 `ee`
|
|
271
|
+
当你需要显式运维、验证或排障时,可以用:
|
|
169
272
|
|
|
170
|
-
|
|
273
|
+
```bash
|
|
274
|
+
ee init
|
|
275
|
+
ee doctor <openclaw|claude-code|codex>
|
|
276
|
+
ee status
|
|
277
|
+
ee maintenance embedding-smoke
|
|
278
|
+
```
|
|
171
279
|
|
|
172
|
-
|
|
173
|
-
- `Claude Code` 走 Claude 原生插件资产与 marketplace 分发
|
|
174
|
-
- `OpenClaw` 走 plugin/runtime 集成
|
|
280
|
+
### Ready 与 Value 状态
|
|
175
281
|
|
|
176
|
-
|
|
282
|
+
ExperienceEngine 把 onboarding 和 value 拆成两层:
|
|
177
283
|
|
|
178
|
-
`
|
|
284
|
+
- `Setup state`
|
|
285
|
+
- `Installed`
|
|
286
|
+
- `Initialized`
|
|
287
|
+
- `Ready`
|
|
288
|
+
- `Value state`
|
|
289
|
+
- `Warming up`
|
|
290
|
+
- `First value reached`
|
|
179
291
|
|
|
180
|
-
|
|
181
|
-
- 健康检查
|
|
182
|
-
- 修复建议
|
|
183
|
-
- 状态查看
|
|
184
|
-
- 学习与介入反馈
|
|
292
|
+
这不是一条严格线性阶梯。一个仓库可以已经 `Ready`,但还处于 `Warming up`。
|
|
185
293
|
|
|
186
|
-
|
|
294
|
+
`First value reached` 只应该在真实任务里已经出现可见价值时才成立。仅仅显示 onboarding 文案或 warm-up 提示,不算 first value。
|
|
187
295
|
|
|
188
|
-
|
|
296
|
+
## 安装模型
|
|
297
|
+
|
|
298
|
+
ExperienceEngine 明确拆分:
|
|
299
|
+
- 宿主安装
|
|
300
|
+
- 共享初始化
|
|
301
|
+
- operator 工作流
|
|
302
|
+
|
|
303
|
+
宿主仍然是主交互面。
|
|
304
|
+
`ee` 仍然是显式的 operator 面,用于 setup、验证、修复、状态查看和维护。
|
|
305
|
+
|
|
306
|
+
## 高级按宿主命令(仅限 Operator / 开发者)
|
|
307
|
+
|
|
308
|
+
大多数用户可以跳过这一节,直接使用上面的宿主安装路径。
|
|
309
|
+
|
|
310
|
+
如果你是运维者、开发者,或者确实想显式控制某个宿主,仍可使用:
|
|
189
311
|
|
|
190
312
|
```bash
|
|
191
313
|
ee install openclaw
|
|
@@ -193,12 +315,23 @@ ee install claude-code
|
|
|
193
315
|
ee install codex
|
|
194
316
|
```
|
|
195
317
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
318
|
+
<details>
|
|
319
|
+
<summary>Codex 原生 / 手工 MCP fallback 示例</summary>
|
|
320
|
+
|
|
321
|
+
```bash
|
|
322
|
+
codex mcp add experienceengine --env EXPERIENCE_ENGINE_HOME=$HOME/.experienceengine -- npx -y @alan512/experienceengine codex-mcp-server
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
</details>
|
|
326
|
+
|
|
327
|
+
说明:
|
|
328
|
+
- `OpenClaw` 走 plugin/runtime integration,而不是 `src/adapters/`
|
|
329
|
+
- `Claude Code` 会安装 hooks 和共享 ExperienceEngine MCP 服务
|
|
330
|
+
- `Codex` 会安装共享 ExperienceEngine MCP 服务
|
|
331
|
+
- `ee install ...` 与 `ee doctor ...` 会在 `npm` / `pnpm` 使用非官方 registry 时给出提示,因为受管模型下载在 `https://registry.npmjs.org` 下最稳定
|
|
332
|
+
- 成功执行 `ee install ...` 后,也会提醒冷启动预期:capture 会立刻开始,但 formal experience 一般需要在同一仓库里出现几次相似任务后才会形成
|
|
200
333
|
|
|
201
|
-
|
|
334
|
+
这些命令属于 operator fallback,不是默认公开安装路径。
|
|
202
335
|
|
|
203
336
|
## 数据目录
|
|
204
337
|
|
|
@@ -220,10 +353,7 @@ ee install codex
|
|
|
220
353
|
当前默认行为:
|
|
221
354
|
|
|
222
355
|
- `embeddingProvider = "api"`
|
|
223
|
-
- provider 优先级:
|
|
224
|
-
- 设置了 `OPENAI_API_KEY` 时优先 OpenAI
|
|
225
|
-
- 设置了 `GEMINI_API_KEY` 时使用 Gemini
|
|
226
|
-
- 设置了 `JINA_API_KEY` 时使用 Jina
|
|
356
|
+
- provider 优先级:OpenAI -> Gemini -> Jina
|
|
227
357
|
- 如果没有任何 API provider 可用,会自动回退到受管本地 embedding
|
|
228
358
|
|
|
229
359
|
常用环境变量:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -12,4 +12,5 @@ export declare const loadClaudeSession: (sessionId: string, options?: SessionSto
|
|
|
12
12
|
export declare const rememberClaudePromptContext: (context: HostPromptContext, options?: SessionStoreOptions) => void;
|
|
13
13
|
export declare const appendClaudeToolResult: (result: HostToolResult, options?: SessionStoreOptions) => void;
|
|
14
14
|
export declare const clearClaudeSession: (sessionId: string, options?: SessionStoreOptions) => void;
|
|
15
|
+
export declare const findClaudeSessionByCwd: (cwd: string, options?: SessionStoreOptions) => ClaudeStoredSession | null;
|
|
15
16
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { resolveExperienceEnginePaths, resolveProductStateDir } from "../../config/path-resolver.js";
|
|
4
4
|
const sanitizeSessionId = (sessionId) => sessionId.replace(/[^a-zA-Z0-9_.-]+/g, "_");
|
|
@@ -11,6 +11,15 @@ const resolveSessionDir = (options = {}) => {
|
|
|
11
11
|
return join(resolveProductStateDir(paths), "sessions");
|
|
12
12
|
};
|
|
13
13
|
const resolveSessionPath = (sessionId, options = {}) => join(resolveSessionDir(options), `${sanitizeSessionId(sessionId)}.json`);
|
|
14
|
+
const listClaudeSessionPaths = (options = {}) => {
|
|
15
|
+
const dir = resolveSessionDir(options);
|
|
16
|
+
if (!existsSync(dir)) {
|
|
17
|
+
return [];
|
|
18
|
+
}
|
|
19
|
+
return readdirSync(dir)
|
|
20
|
+
.filter((entry) => entry.endsWith(".json"))
|
|
21
|
+
.map((entry) => join(dir, entry));
|
|
22
|
+
};
|
|
14
23
|
export const loadClaudeSession = (sessionId, options = {}) => {
|
|
15
24
|
const filePath = resolveSessionPath(sessionId, options);
|
|
16
25
|
if (!existsSync(filePath)) {
|
|
@@ -53,4 +62,18 @@ export const clearClaudeSession = (sessionId, options = {}) => {
|
|
|
53
62
|
const filePath = resolveSessionPath(sessionId, options);
|
|
54
63
|
rmSync(filePath, { force: true });
|
|
55
64
|
};
|
|
65
|
+
export const findClaudeSessionByCwd = (cwd, options = {}) => {
|
|
66
|
+
const matches = listClaudeSessionPaths(options)
|
|
67
|
+
.map((filePath) => ({
|
|
68
|
+
filePath,
|
|
69
|
+
mtimeMs: statSync(filePath).mtimeMs,
|
|
70
|
+
session: JSON.parse(readFileSync(filePath, "utf8"))
|
|
71
|
+
}))
|
|
72
|
+
.filter((entry) => entry.session.promptContext?.cwd === cwd)
|
|
73
|
+
.sort((left, right) => right.mtimeMs - left.mtimeMs);
|
|
74
|
+
if (matches.length !== 1) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
return matches[0]?.session ?? null;
|
|
78
|
+
};
|
|
56
79
|
//# sourceMappingURL=session-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../../src/adapters/claude-code/session-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../../src/adapters/claude-code/session-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { ExperienceNodeType, ExperienceState } from "../../types/domain.js";
|
|
3
|
+
export type CodexActionCategory = "inspect" | "state" | "admin" | "maintenance";
|
|
4
|
+
export type CodexActionRiskLevel = "low" | "medium" | "high";
|
|
5
|
+
export type CodexActionDefinition = {
|
|
6
|
+
id: string;
|
|
7
|
+
title: string;
|
|
8
|
+
summary: string;
|
|
9
|
+
category: CodexActionCategory;
|
|
10
|
+
riskLevel: CodexActionRiskLevel;
|
|
11
|
+
requiresConfirmation: boolean;
|
|
12
|
+
inputSchema?: z.ZodTypeAny;
|
|
13
|
+
examplePayload?: Record<string, unknown>;
|
|
14
|
+
handler: (args: Record<string, unknown>) => Promise<unknown>;
|
|
15
|
+
};
|
|
16
|
+
type RegistryDeps = {
|
|
17
|
+
interactionSurface: {
|
|
18
|
+
inspectRecent: (args?: {
|
|
19
|
+
mode?: "all" | "injected";
|
|
20
|
+
limit?: number;
|
|
21
|
+
}) => Promise<unknown>;
|
|
22
|
+
inspectNode: (args: {
|
|
23
|
+
nodeId: string;
|
|
24
|
+
}) => Promise<unknown>;
|
|
25
|
+
listNodesByState: (args: {
|
|
26
|
+
state: ExperienceState;
|
|
27
|
+
}) => Promise<unknown>;
|
|
28
|
+
listNodesByType: (args: {
|
|
29
|
+
nodeType: ExperienceNodeType;
|
|
30
|
+
}) => Promise<unknown>;
|
|
31
|
+
inspectLearningSummary: () => Promise<unknown>;
|
|
32
|
+
coolNode: (args: {
|
|
33
|
+
nodeId: string;
|
|
34
|
+
}) => Promise<unknown>;
|
|
35
|
+
retireNode: (args: {
|
|
36
|
+
nodeId: string;
|
|
37
|
+
}) => Promise<unknown>;
|
|
38
|
+
feedbackNode: (args: {
|
|
39
|
+
nodeId: string;
|
|
40
|
+
feedback: "helped" | "harmed";
|
|
41
|
+
}) => Promise<unknown>;
|
|
42
|
+
disableScope: (args?: {
|
|
43
|
+
cwd?: string;
|
|
44
|
+
}) => Promise<unknown>;
|
|
45
|
+
enableScope: (args?: {
|
|
46
|
+
cwd?: string;
|
|
47
|
+
}) => Promise<unknown>;
|
|
48
|
+
};
|
|
49
|
+
operationalSurface: {
|
|
50
|
+
checkUpdate: (adapter: "openclaw" | "claude-code" | "codex") => Promise<unknown>;
|
|
51
|
+
};
|
|
52
|
+
operationalActions: {
|
|
53
|
+
planOperation: (args: {
|
|
54
|
+
adapter: "openclaw" | "claude-code" | "codex";
|
|
55
|
+
operation: "install" | "repair" | "upgrade";
|
|
56
|
+
}) => unknown;
|
|
57
|
+
executePlannedOperation: (args: {
|
|
58
|
+
planId: string;
|
|
59
|
+
confirmationToken: string;
|
|
60
|
+
}) => unknown;
|
|
61
|
+
};
|
|
62
|
+
stateArtifacts: {
|
|
63
|
+
listBackups: () => unknown;
|
|
64
|
+
planOperation: (args: {
|
|
65
|
+
operation: "backup" | "export";
|
|
66
|
+
} | {
|
|
67
|
+
operation: "import";
|
|
68
|
+
importPath: string;
|
|
69
|
+
} | {
|
|
70
|
+
operation: "rollback";
|
|
71
|
+
backupId: string;
|
|
72
|
+
}) => unknown;
|
|
73
|
+
executePlannedOperation: (args: {
|
|
74
|
+
planId: string;
|
|
75
|
+
confirmationToken: string;
|
|
76
|
+
}) => unknown;
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
export type CodexActionRegistry = ReturnType<typeof createCodexActionRegistry>;
|
|
80
|
+
export declare const createCodexActionRegistry: (deps: RegistryDeps) => {
|
|
81
|
+
list: () => CodexActionDefinition[];
|
|
82
|
+
get: (id: string) => CodexActionDefinition | undefined;
|
|
83
|
+
};
|
|
84
|
+
export {};
|