@alan512/experienceengine 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +0 -0
- package/.claude-plugin/plugin.json +1 -1
- package/.env.example +0 -0
- package/.mcp.json +4 -8
- package/LICENSE +21 -0
- package/README.md +288 -95
- package/README.zh-CN.md +316 -65
- package/dist/adapters/claude-code/event-store.d.ts +0 -0
- package/dist/adapters/claude-code/event-store.js +0 -0
- package/dist/adapters/claude-code/event-store.js.map +0 -0
- package/dist/adapters/claude-code/hook-normalizer.d.ts +0 -0
- package/dist/adapters/claude-code/hook-normalizer.js +0 -0
- package/dist/adapters/claude-code/hook-normalizer.js.map +0 -0
- package/dist/adapters/claude-code/runtime-projection.d.ts +0 -0
- package/dist/adapters/claude-code/runtime-projection.js +0 -0
- package/dist/adapters/claude-code/runtime-projection.js.map +0 -0
- package/dist/adapters/claude-code/session-store.d.ts +1 -0
- package/dist/adapters/claude-code/session-store.js +24 -1
- package/dist/adapters/claude-code/session-store.js.map +1 -1
- package/dist/adapters/codex/action-registry.d.ts +84 -0
- package/dist/adapters/codex/action-registry.js +277 -0
- package/dist/adapters/codex/action-registry.js.map +1 -0
- package/dist/adapters/codex/broker-tools.d.ts +114 -0
- package/dist/adapters/codex/broker-tools.js +130 -0
- package/dist/adapters/codex/broker-tools.js.map +1 -0
- package/dist/adapters/codex/instruction-template.d.ts +3 -0
- package/dist/adapters/codex/instruction-template.js +12 -0
- package/dist/adapters/codex/instruction-template.js.map +1 -0
- package/dist/adapters/codex/mcp-server.d.ts +59 -41
- package/dist/adapters/codex/mcp-server.js +177 -728
- package/dist/adapters/codex/mcp-server.js.map +1 -1
- package/dist/analyzer/candidate-signals.d.ts +3 -1
- package/dist/analyzer/candidate-signals.js +159 -0
- package/dist/analyzer/candidate-signals.js.map +1 -1
- package/dist/analyzer/experience-analyzer.d.ts +0 -0
- package/dist/analyzer/experience-analyzer.js +0 -0
- package/dist/analyzer/experience-analyzer.js.map +0 -0
- package/dist/analyzer/extraction-evidence.d.ts +0 -0
- package/dist/analyzer/extraction-evidence.js +0 -0
- package/dist/analyzer/extraction-evidence.js.map +0 -0
- package/dist/analyzer/llm-learning-gate.d.ts +12 -1
- package/dist/analyzer/llm-learning-gate.js +672 -16
- package/dist/analyzer/llm-learning-gate.js.map +1 -1
- package/dist/analyzer/node-deduper.d.ts +0 -0
- package/dist/analyzer/node-deduper.js +0 -0
- package/dist/analyzer/node-deduper.js.map +0 -0
- package/dist/analyzer/node-normalizer.d.ts +0 -0
- package/dist/analyzer/node-normalizer.js +0 -0
- package/dist/analyzer/node-normalizer.js.map +0 -0
- package/dist/analyzer/storage-gate.d.ts +0 -0
- package/dist/analyzer/storage-gate.js +0 -0
- package/dist/analyzer/storage-gate.js.map +0 -0
- package/dist/analyzer/strategy-extractor.d.ts +0 -0
- package/dist/analyzer/strategy-extractor.js +0 -0
- package/dist/analyzer/strategy-extractor.js.map +0 -0
- package/dist/analyzer/warning-extractor.d.ts +0 -0
- package/dist/analyzer/warning-extractor.js +0 -0
- package/dist/analyzer/warning-extractor.js.map +0 -0
- package/dist/cli/commands/backup.d.ts +0 -0
- package/dist/cli/commands/backup.js +0 -0
- package/dist/cli/commands/backup.js.map +0 -0
- package/dist/cli/commands/claude-hook.d.ts +0 -0
- package/dist/cli/commands/claude-hook.js +23 -7
- package/dist/cli/commands/claude-hook.js.map +1 -1
- package/dist/cli/commands/codex-mcp-server.d.ts +0 -0
- package/dist/cli/commands/codex-mcp-server.js +0 -0
- package/dist/cli/commands/codex-mcp-server.js.map +0 -0
- package/dist/cli/commands/codex.d.ts +60 -0
- package/dist/cli/commands/codex.js +188 -0
- package/dist/cli/commands/codex.js.map +1 -0
- package/dist/cli/commands/config.d.ts +0 -0
- package/dist/cli/commands/config.js +88 -2
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/cool.d.ts +0 -0
- package/dist/cli/commands/cool.js +0 -0
- package/dist/cli/commands/cool.js.map +0 -0
- package/dist/cli/commands/disable.d.ts +0 -0
- package/dist/cli/commands/disable.js +0 -0
- package/dist/cli/commands/disable.js.map +0 -0
- package/dist/cli/commands/doctor.d.ts +4 -28
- package/dist/cli/commands/doctor.js +156 -68
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/enable.d.ts +0 -0
- package/dist/cli/commands/enable.js +0 -0
- package/dist/cli/commands/enable.js.map +0 -0
- package/dist/cli/commands/evaluate.d.ts +9 -3
- package/dist/cli/commands/evaluate.js +31 -5
- package/dist/cli/commands/evaluate.js.map +1 -1
- package/dist/cli/commands/export.d.ts +0 -0
- package/dist/cli/commands/export.js +0 -0
- package/dist/cli/commands/export.js.map +0 -0
- package/dist/cli/commands/feedback.d.ts +0 -0
- package/dist/cli/commands/feedback.js +4 -0
- package/dist/cli/commands/feedback.js.map +1 -1
- package/dist/cli/commands/import.d.ts +0 -0
- package/dist/cli/commands/import.js +0 -0
- package/dist/cli/commands/import.js.map +0 -0
- package/dist/cli/commands/init.d.ts +28 -0
- package/dist/cli/commands/init.js +432 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/inspect.d.ts +0 -0
- package/dist/cli/commands/inspect.js +271 -37
- package/dist/cli/commands/inspect.js.map +1 -1
- package/dist/cli/commands/install.d.ts +0 -0
- package/dist/cli/commands/install.js +9 -0
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/maintenance.d.ts +0 -0
- package/dist/cli/commands/maintenance.js +1 -1
- package/dist/cli/commands/maintenance.js.map +1 -1
- package/dist/cli/commands/mcp-server.d.ts +0 -0
- package/dist/cli/commands/mcp-server.js +4 -0
- package/dist/cli/commands/mcp-server.js.map +1 -1
- package/dist/cli/commands/models.d.ts +0 -0
- package/dist/cli/commands/models.js +0 -0
- package/dist/cli/commands/models.js.map +0 -0
- package/dist/cli/commands/repair.d.ts +0 -0
- package/dist/cli/commands/repair.js +3 -3
- package/dist/cli/commands/repair.js.map +1 -1
- package/dist/cli/commands/retire.d.ts +0 -0
- package/dist/cli/commands/retire.js +0 -0
- package/dist/cli/commands/retire.js.map +0 -0
- package/dist/cli/commands/rollback.d.ts +0 -0
- package/dist/cli/commands/rollback.js +0 -0
- package/dist/cli/commands/rollback.js.map +0 -0
- package/dist/cli/commands/stats.d.ts +0 -0
- package/dist/cli/commands/stats.js +0 -0
- package/dist/cli/commands/stats.js.map +0 -0
- package/dist/cli/commands/status.d.ts +0 -0
- package/dist/cli/commands/status.js +89 -7
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/upgrade.d.ts +0 -0
- package/dist/cli/commands/upgrade.js +0 -0
- package/dist/cli/commands/upgrade.js.map +0 -0
- package/dist/cli/dispatch.d.ts +0 -0
- package/dist/cli/dispatch.js +36 -9
- package/dist/cli/dispatch.js.map +1 -1
- package/dist/cli/index.d.ts +0 -0
- package/dist/cli/index.js.map +0 -0
- package/dist/cli/state-model.d.ts +14 -0
- package/dist/cli/state-model.js +23 -0
- package/dist/cli/state-model.js.map +1 -0
- package/dist/config/config-schema.d.ts +209 -0
- package/dist/config/config-schema.js +168 -1
- package/dist/config/config-schema.js.map +1 -1
- package/dist/config/default-config.d.ts +0 -0
- package/dist/config/default-config.js +22 -1
- package/dist/config/default-config.js.map +1 -1
- package/dist/config/load-config.d.ts +0 -0
- package/dist/config/load-config.js +91 -2
- package/dist/config/load-config.js.map +1 -1
- package/dist/config/path-resolver.d.ts +0 -1
- package/dist/config/path-resolver.js +0 -2
- package/dist/config/path-resolver.js.map +1 -1
- package/dist/config/runtime-env.d.ts +8 -0
- package/dist/config/runtime-env.js +14 -0
- package/dist/config/runtime-env.js.map +1 -0
- package/dist/config/secrets-store.d.ts +15 -0
- package/dist/config/secrets-store.js +56 -0
- package/dist/config/secrets-store.js.map +1 -0
- package/dist/config/settings-store.d.ts +29 -0
- package/dist/config/settings-store.js +55 -0
- package/dist/config/settings-store.js.map +1 -1
- package/dist/controller/candidate-retriever.d.ts +49 -2
- package/dist/controller/candidate-retriever.js +258 -125
- package/dist/controller/candidate-retriever.js.map +1 -1
- package/dist/controller/injection-renderer.d.ts +0 -0
- package/dist/controller/injection-renderer.js +52 -1
- package/dist/controller/injection-renderer.js.map +1 -1
- package/dist/controller/injection-scorecard.d.ts +2 -2
- package/dist/controller/injection-scorecard.js +47 -1
- package/dist/controller/injection-scorecard.js.map +1 -1
- package/dist/controller/inline-notice.d.ts +0 -0
- package/dist/controller/inline-notice.js +0 -0
- package/dist/controller/inline-notice.js.map +0 -0
- package/dist/controller/intervention-controller.d.ts +3 -2
- package/dist/controller/intervention-controller.js +339 -17
- package/dist/controller/intervention-controller.js.map +1 -1
- package/dist/controller/lexical-retriever.d.ts +14 -0
- package/dist/controller/lexical-retriever.js +117 -0
- package/dist/controller/lexical-retriever.js.map +1 -0
- package/dist/controller/model-reranker.d.ts +20 -0
- package/dist/controller/model-reranker.js +187 -0
- package/dist/controller/model-reranker.js.map +1 -0
- package/dist/controller/node-ranker.d.ts +0 -0
- package/dist/controller/node-ranker.js +1 -0
- package/dist/controller/node-ranker.js.map +1 -1
- package/dist/controller/policy-enricher.d.ts +10 -0
- package/dist/controller/policy-enricher.js +186 -0
- package/dist/controller/policy-enricher.js.map +1 -0
- package/dist/controller/query-rewrite.d.ts +8 -0
- package/dist/controller/query-rewrite.js +69 -0
- package/dist/controller/query-rewrite.js.map +1 -0
- package/dist/controller/retrieval-context.d.ts +3 -0
- package/dist/controller/retrieval-context.js +37 -0
- package/dist/controller/retrieval-context.js.map +1 -0
- package/dist/controller/second-opinion-gate.d.ts +41 -0
- package/dist/controller/second-opinion-gate.js +225 -0
- package/dist/controller/second-opinion-gate.js.map +1 -0
- package/dist/controller/trigger-evaluator.d.ts +27 -2
- package/dist/controller/trigger-evaluator.js +63 -3
- package/dist/controller/trigger-evaluator.js.map +1 -1
- package/dist/distillation/errors.d.ts +0 -0
- package/dist/distillation/errors.js +0 -0
- package/dist/distillation/errors.js.map +0 -0
- package/dist/distillation/experience-family.d.ts +4 -0
- package/dist/distillation/experience-family.js +14 -0
- package/dist/distillation/experience-family.js.map +1 -0
- package/dist/distillation/host-llm.d.ts +1 -0
- package/dist/distillation/host-llm.js +5 -1
- package/dist/distillation/host-llm.js.map +1 -1
- package/dist/distillation/llm-distiller.d.ts +0 -0
- package/dist/distillation/llm-distiller.js +4 -0
- package/dist/distillation/llm-distiller.js.map +1 -1
- package/dist/distillation/merge-decider.d.ts +0 -0
- package/dist/distillation/merge-decider.js +4 -0
- package/dist/distillation/merge-decider.js.map +1 -1
- package/dist/distillation/model-catalog.d.ts +0 -0
- package/dist/distillation/model-catalog.js +0 -0
- package/dist/distillation/model-catalog.js.map +0 -0
- package/dist/distillation/prompt-contract.d.ts +1 -1
- package/dist/distillation/prompt-contract.js +6 -1
- package/dist/distillation/prompt-contract.js.map +1 -1
- package/dist/distillation/providers/anthropic.d.ts +0 -0
- package/dist/distillation/providers/anthropic.js +0 -0
- package/dist/distillation/providers/anthropic.js.map +0 -0
- package/dist/distillation/providers/azure-openai.d.ts +0 -0
- package/dist/distillation/providers/azure-openai.js +0 -0
- package/dist/distillation/providers/azure-openai.js.map +0 -0
- package/dist/distillation/providers/baidu-qianfan.d.ts +0 -0
- package/dist/distillation/providers/baidu-qianfan.js +0 -0
- package/dist/distillation/providers/baidu-qianfan.js.map +0 -0
- package/dist/distillation/providers/bedrock.d.ts +0 -0
- package/dist/distillation/providers/bedrock.js +0 -0
- package/dist/distillation/providers/bedrock.js.map +0 -0
- package/dist/distillation/providers/dashscope.d.ts +0 -0
- package/dist/distillation/providers/dashscope.js +0 -0
- package/dist/distillation/providers/dashscope.js.map +0 -0
- package/dist/distillation/providers/deepseek.d.ts +0 -0
- package/dist/distillation/providers/deepseek.js +0 -0
- package/dist/distillation/providers/deepseek.js.map +0 -0
- package/dist/distillation/providers/gemini.d.ts +0 -0
- package/dist/distillation/providers/gemini.js +5 -1
- package/dist/distillation/providers/gemini.js.map +1 -1
- package/dist/distillation/providers/google-adc.d.ts +0 -0
- package/dist/distillation/providers/google-adc.js +0 -0
- package/dist/distillation/providers/google-adc.js.map +0 -0
- package/dist/distillation/providers/minimax.d.ts +0 -0
- package/dist/distillation/providers/minimax.js +0 -0
- package/dist/distillation/providers/minimax.js.map +0 -0
- package/dist/distillation/providers/moonshot.d.ts +0 -0
- package/dist/distillation/providers/moonshot.js +0 -0
- package/dist/distillation/providers/moonshot.js.map +0 -0
- package/dist/distillation/providers/openai-compatible-factory.d.ts +0 -0
- package/dist/distillation/providers/openai-compatible-factory.js +0 -0
- package/dist/distillation/providers/openai-compatible-factory.js.map +0 -0
- package/dist/distillation/providers/openai-compatible.d.ts +0 -0
- package/dist/distillation/providers/openai-compatible.js +0 -0
- package/dist/distillation/providers/openai-compatible.js.map +0 -0
- package/dist/distillation/providers/openai.d.ts +0 -0
- package/dist/distillation/providers/openai.js +0 -0
- package/dist/distillation/providers/openai.js.map +0 -0
- package/dist/distillation/providers/openrouter.d.ts +0 -0
- package/dist/distillation/providers/openrouter.js +0 -0
- package/dist/distillation/providers/openrouter.js.map +0 -0
- package/dist/distillation/providers/registry.d.ts +0 -0
- package/dist/distillation/providers/registry.js +0 -0
- package/dist/distillation/providers/registry.js.map +0 -0
- package/dist/distillation/providers/siliconflow.d.ts +0 -0
- package/dist/distillation/providers/siliconflow.js +0 -0
- package/dist/distillation/providers/siliconflow.js.map +0 -0
- package/dist/distillation/providers/tencent-hunyuan.d.ts +0 -0
- package/dist/distillation/providers/tencent-hunyuan.js +0 -0
- package/dist/distillation/providers/tencent-hunyuan.js.map +0 -0
- package/dist/distillation/providers/types.d.ts +0 -0
- package/dist/distillation/providers/types.js +0 -0
- package/dist/distillation/providers/types.js.map +0 -0
- package/dist/distillation/providers/volcengine-ark.d.ts +0 -0
- package/dist/distillation/providers/volcengine-ark.js +0 -0
- package/dist/distillation/providers/volcengine-ark.js.map +0 -0
- package/dist/distillation/providers/zhipu.d.ts +0 -0
- package/dist/distillation/providers/zhipu.js +0 -0
- package/dist/distillation/providers/zhipu.js.map +0 -0
- package/dist/distillation/queue-worker.d.ts +0 -0
- package/dist/distillation/queue-worker.js +78 -9
- package/dist/distillation/queue-worker.js.map +1 -1
- package/dist/distillation/types.d.ts +0 -0
- package/dist/distillation/types.js +0 -0
- package/dist/distillation/types.js.map +0 -0
- package/dist/evaluation/benchmark-report.d.ts +0 -0
- package/dist/evaluation/benchmark-report.js +0 -0
- package/dist/evaluation/benchmark-report.js.map +0 -0
- package/dist/evaluation/benchmark-summary.d.ts +0 -0
- package/dist/evaluation/benchmark-summary.js +0 -0
- package/dist/evaluation/benchmark-summary.js.map +0 -0
- package/dist/evaluation/codex-lifecycle-validation.d.ts +60 -0
- package/dist/evaluation/codex-lifecycle-validation.js +233 -0
- package/dist/evaluation/codex-lifecycle-validation.js.map +1 -0
- package/dist/evaluation/hybrid-phase1-rollout-summary.d.ts +63 -0
- package/dist/evaluation/hybrid-phase1-rollout-summary.js +108 -0
- package/dist/evaluation/hybrid-phase1-rollout-summary.js.map +1 -0
- package/dist/evaluation/hybrid-phase3-gate-metrics.d.ts +26 -0
- package/dist/evaluation/hybrid-phase3-gate-metrics.js +23 -0
- package/dist/evaluation/hybrid-phase3-gate-metrics.js.map +1 -0
- package/dist/evaluation/openclaw-baseline.d.ts +8 -0
- package/dist/evaluation/openclaw-baseline.js +27 -0
- package/dist/evaluation/openclaw-baseline.js.map +1 -1
- package/dist/evaluation/openclaw-scenarios.d.ts +0 -0
- package/dist/evaluation/openclaw-scenarios.js +0 -0
- package/dist/evaluation/openclaw-scenarios.js.map +0 -0
- package/dist/experience-management/governance-observability.d.ts +13 -0
- package/dist/experience-management/governance-observability.js +37 -0
- package/dist/experience-management/governance-observability.js.map +1 -0
- package/dist/experience-management/node-lifecycle-governance.d.ts +8 -0
- package/dist/experience-management/node-lifecycle-governance.js +80 -0
- package/dist/experience-management/node-lifecycle-governance.js.map +1 -0
- package/dist/experience-management/task-management-signals.d.ts +29 -0
- package/dist/experience-management/task-management-signals.js +148 -0
- package/dist/experience-management/task-management-signals.js.map +1 -0
- package/dist/feedback/automatic-attribution.d.ts +0 -0
- package/dist/feedback/automatic-attribution.js +0 -0
- package/dist/feedback/automatic-attribution.js.map +0 -0
- package/dist/feedback/feedback-manager.d.ts +4 -1
- package/dist/feedback/feedback-manager.js +11 -22
- package/dist/feedback/feedback-manager.js.map +1 -1
- package/dist/feedback/harm-detector.d.ts +0 -0
- package/dist/feedback/harm-detector.js +0 -0
- package/dist/feedback/harm-detector.js.map +0 -0
- package/dist/feedback/state-transition.d.ts +6 -1
- package/dist/feedback/state-transition.js +14 -2
- package/dist/feedback/state-transition.js.map +1 -1
- package/dist/feedback/stats-updater.d.ts +0 -0
- package/dist/feedback/stats-updater.js +0 -0
- package/dist/feedback/stats-updater.js.map +0 -0
- package/dist/hybrid/capsule-builder.d.ts +23 -0
- package/dist/hybrid/capsule-builder.js +114 -0
- package/dist/hybrid/capsule-builder.js.map +1 -0
- package/dist/hybrid/explain-provider-client.d.ts +19 -0
- package/dist/hybrid/explain-provider-client.js +34 -0
- package/dist/hybrid/explain-provider-client.js.map +1 -0
- package/dist/hybrid/postmortem-provider-client.d.ts +19 -0
- package/dist/hybrid/postmortem-provider-client.js +34 -0
- package/dist/hybrid/postmortem-provider-client.js.map +1 -0
- package/dist/hybrid/rollout.d.ts +9 -0
- package/dist/hybrid/rollout.js +49 -0
- package/dist/hybrid/rollout.js.map +1 -0
- package/dist/hybrid/router.d.ts +4 -0
- package/dist/hybrid/router.js +62 -0
- package/dist/hybrid/router.js.map +1 -0
- package/dist/hybrid/types.d.ts +140 -0
- package/dist/{compiler → hybrid}/types.js +0 -0
- package/dist/{packs → hybrid}/types.js.map +1 -1
- package/dist/hybrid/validators.d.ts +5 -0
- package/dist/hybrid/validators.js +94 -0
- package/dist/hybrid/validators.js.map +1 -0
- package/dist/hybrid/worker-client.d.ts +61 -0
- package/dist/hybrid/worker-client.js +196 -0
- package/dist/hybrid/worker-client.js.map +1 -0
- package/dist/hybrid/workers/explain-decision-llm.d.ts +8 -0
- package/dist/hybrid/workers/explain-decision-llm.js +152 -0
- package/dist/hybrid/workers/explain-decision-llm.js.map +1 -0
- package/dist/hybrid/workers/explain-decision.d.ts +2 -0
- package/dist/hybrid/workers/explain-decision.js +40 -0
- package/dist/hybrid/workers/explain-decision.js.map +1 -0
- package/dist/hybrid/workers/postmortem-review-llm.d.ts +8 -0
- package/dist/hybrid/workers/postmortem-review-llm.js +398 -0
- package/dist/hybrid/workers/postmortem-review-llm.js.map +1 -0
- package/dist/hybrid/workers/postmortem-review.d.ts +2 -0
- package/dist/hybrid/workers/postmortem-review.js +66 -0
- package/dist/hybrid/workers/postmortem-review.js.map +1 -0
- package/dist/index.d.ts +0 -0
- package/dist/index.js +0 -0
- package/dist/index.js.map +0 -0
- package/dist/input/context-summary-adapter.d.ts +0 -0
- package/dist/input/context-summary-adapter.js +0 -0
- package/dist/input/context-summary-adapter.js.map +0 -0
- package/dist/input/input-adapter.d.ts +0 -0
- package/dist/input/input-adapter.js +2 -1
- package/dist/input/input-adapter.js.map +1 -1
- package/dist/input/outcome-resolver.d.ts +0 -0
- package/dist/input/outcome-resolver.js +5 -5
- package/dist/input/outcome-resolver.js.map +1 -1
- package/dist/input/scope-resolver.d.ts +0 -0
- package/dist/input/scope-resolver.js +0 -0
- package/dist/input/scope-resolver.js.map +0 -0
- package/dist/input/tasktype-resolver.d.ts +0 -0
- package/dist/input/tasktype-resolver.js +2 -0
- package/dist/input/tasktype-resolver.js.map +1 -1
- package/dist/input/tool-event-significance.d.ts +5 -0
- package/dist/input/tool-event-significance.js +7 -0
- package/dist/input/tool-event-significance.js.map +1 -0
- package/dist/install/claude-cli.d.ts +0 -0
- package/dist/install/claude-cli.js +0 -0
- package/dist/install/claude-cli.js.map +0 -0
- package/dist/install/claude-code-doctor.d.ts +8 -2
- package/dist/install/claude-code-doctor.js +54 -9
- package/dist/install/claude-code-doctor.js.map +1 -1
- package/dist/install/claude-code-installer.d.ts +0 -0
- package/dist/install/claude-code-installer.js +50 -1
- package/dist/install/claude-code-installer.js.map +1 -1
- package/dist/install/claude-marketplace-state.d.ts +14 -0
- package/dist/install/claude-marketplace-state.js +47 -0
- package/dist/install/claude-marketplace-state.js.map +1 -0
- package/dist/install/claude-runtime-target.d.ts +0 -0
- package/dist/install/claude-runtime-target.js +0 -0
- package/dist/install/claude-runtime-target.js.map +0 -0
- package/dist/install/codex-cli.d.ts +15 -0
- package/dist/install/codex-cli.js +55 -3
- package/dist/install/codex-cli.js.map +1 -1
- package/dist/install/codex-installer.d.ts +18 -0
- package/dist/install/codex-installer.js +91 -1
- package/dist/install/codex-installer.js.map +1 -1
- package/dist/install/codex-runtime-target.d.ts +0 -0
- package/dist/install/codex-runtime-target.js +0 -0
- package/dist/install/codex-runtime-target.js.map +0 -0
- package/dist/install/host-detection.d.ts +0 -0
- package/dist/install/host-detection.js +0 -0
- package/dist/install/host-detection.js.map +0 -0
- package/dist/install/openclaw-cli.d.ts +11 -0
- package/dist/install/openclaw-cli.js +0 -0
- package/dist/install/openclaw-cli.js.map +1 -1
- package/dist/install/openclaw-installer.d.ts +12 -0
- package/dist/install/openclaw-installer.js +198 -31
- package/dist/install/openclaw-installer.js.map +1 -1
- package/dist/install/public-install.d.ts +14 -4
- package/dist/install/public-install.js +20 -7
- package/dist/install/public-install.js.map +1 -1
- package/dist/install/registry-health.d.ts +0 -0
- package/dist/install/registry-health.js +0 -0
- package/dist/install/registry-health.js.map +0 -0
- package/dist/interaction/operational-actions-service.d.ts +0 -0
- package/dist/interaction/operational-actions-service.js +0 -0
- package/dist/interaction/operational-actions-service.js.map +0 -0
- package/dist/interaction/operational-service.d.ts +0 -0
- package/dist/interaction/operational-service.js +0 -0
- package/dist/interaction/operational-service.js.map +0 -0
- package/dist/interaction/repo-summary.d.ts +3 -17
- package/dist/interaction/repo-summary.js +10 -27
- package/dist/interaction/repo-summary.js.map +1 -1
- package/dist/interaction/service.d.ts +59 -95
- package/dist/interaction/service.js +505 -266
- package/dist/interaction/service.js.map +1 -1
- package/dist/interaction/state-artifact-service.d.ts +0 -0
- package/dist/interaction/state-artifact-service.js +0 -0
- package/dist/interaction/state-artifact-service.js.map +0 -0
- package/dist/maintenance/claude-validate-print.d.ts +0 -0
- package/dist/maintenance/claude-validate-print.js +0 -0
- package/dist/maintenance/claude-validate-print.js.map +0 -0
- package/dist/maintenance/embedding-smoke.d.ts +0 -0
- package/dist/maintenance/embedding-smoke.js +0 -0
- package/dist/maintenance/embedding-smoke.js.map +0 -0
- package/dist/maintenance/redistill-rule-nodes.d.ts +0 -0
- package/dist/maintenance/redistill-rule-nodes.js +0 -0
- package/dist/maintenance/redistill-rule-nodes.js.map +0 -0
- package/dist/maintenance/scope-merge.d.ts +0 -1
- package/dist/maintenance/scope-merge.js +0 -20
- package/dist/maintenance/scope-merge.js.map +1 -1
- package/dist/maintenance/warning-variant-cleanup.d.ts +0 -0
- package/dist/maintenance/warning-variant-cleanup.js +0 -0
- package/dist/maintenance/warning-variant-cleanup.js.map +0 -0
- package/dist/plugin/fixture-sanitizer.d.ts +0 -0
- package/dist/plugin/fixture-sanitizer.js +0 -0
- package/dist/plugin/fixture-sanitizer.js.map +0 -0
- package/dist/plugin/hooks/before-prompt-build.d.ts +1 -0
- package/dist/plugin/hooks/before-prompt-build.js +4 -1
- package/dist/plugin/hooks/before-prompt-build.js.map +1 -1
- package/dist/plugin/hooks/message-sent.d.ts +0 -0
- package/dist/plugin/hooks/message-sent.js +0 -0
- package/dist/plugin/hooks/message-sent.js.map +0 -0
- package/dist/plugin/hooks/tool-result-persist.d.ts +0 -0
- package/dist/plugin/hooks/tool-result-persist.js +0 -0
- package/dist/plugin/hooks/tool-result-persist.js.map +0 -0
- package/dist/plugin/openclaw-install-state.d.ts +39 -0
- package/dist/plugin/openclaw-install-state.js +24 -0
- package/dist/plugin/openclaw-install-state.js.map +1 -0
- package/dist/plugin/openclaw-plugin.d.ts +148 -0
- package/dist/plugin/openclaw-plugin.js +98 -7
- package/dist/plugin/openclaw-plugin.js.map +1 -1
- package/dist/plugin/openclaw-routine-interaction.d.ts +7 -0
- package/dist/plugin/openclaw-routine-interaction.js +301 -0
- package/dist/plugin/openclaw-routine-interaction.js.map +1 -0
- package/dist/plugin/openclaw-runtime-defaults.d.ts +16 -0
- package/dist/plugin/openclaw-runtime-defaults.js +16 -0
- package/dist/plugin/openclaw-runtime-defaults.js.map +1 -0
- package/dist/plugin/runtime-capture.d.ts +0 -0
- package/dist/plugin/runtime-capture.js +0 -0
- package/dist/plugin/runtime-capture.js.map +0 -0
- package/dist/plugin/runtime-helpers.d.ts +0 -0
- package/dist/plugin/runtime-helpers.js +0 -0
- package/dist/plugin/runtime-helpers.js.map +0 -0
- package/dist/runtime/service.d.ts +33 -6
- package/dist/runtime/service.js +427 -50
- package/dist/runtime/service.js.map +1 -1
- package/dist/store/logs/jsonl-logger.d.ts +0 -0
- package/dist/store/logs/jsonl-logger.js +0 -0
- package/dist/store/logs/jsonl-logger.js.map +0 -0
- package/dist/store/sqlite/db.d.ts +0 -0
- package/dist/store/sqlite/db.js +37 -0
- package/dist/store/sqlite/db.js.map +1 -1
- package/dist/store/sqlite/migrations.d.ts +0 -0
- package/dist/store/sqlite/migrations.js +0 -0
- package/dist/store/sqlite/migrations.js.map +0 -0
- package/dist/store/sqlite/repositories/candidate-repo.d.ts +0 -0
- package/dist/store/sqlite/repositories/candidate-repo.js +8 -2
- package/dist/store/sqlite/repositories/candidate-repo.js.map +1 -1
- package/dist/store/sqlite/repositories/distillation-job-repo.d.ts +0 -0
- package/dist/store/sqlite/repositories/distillation-job-repo.js +0 -0
- package/dist/store/sqlite/repositories/distillation-job-repo.js.map +0 -0
- package/dist/store/sqlite/repositories/hybrid-invocation-trace-repo.d.ts +11 -0
- package/dist/store/sqlite/repositories/hybrid-invocation-trace-repo.js +76 -0
- package/dist/store/sqlite/repositories/hybrid-invocation-trace-repo.js.map +1 -0
- package/dist/store/sqlite/repositories/hybrid-review-artifact-repo.d.ts +11 -0
- package/dist/store/sqlite/repositories/hybrid-review-artifact-repo.js +73 -0
- package/dist/store/sqlite/repositories/hybrid-review-artifact-repo.js.map +1 -0
- package/dist/store/sqlite/repositories/injection-repo.d.ts +1 -0
- package/dist/store/sqlite/repositories/injection-repo.js +11 -0
- package/dist/store/sqlite/repositories/injection-repo.js.map +1 -1
- package/dist/store/sqlite/repositories/input-record-repo.d.ts +3 -0
- package/dist/store/sqlite/repositories/input-record-repo.js +35 -0
- package/dist/store/sqlite/repositories/input-record-repo.js.map +1 -1
- package/dist/store/sqlite/repositories/node-repo.d.ts +3 -0
- package/dist/store/sqlite/repositories/node-repo.js +62 -8
- package/dist/store/sqlite/repositories/node-repo.js.map +1 -1
- package/dist/store/sqlite/repositories/outcome-record-repo.d.ts +0 -0
- package/dist/store/sqlite/repositories/outcome-record-repo.js +0 -0
- package/dist/store/sqlite/repositories/outcome-record-repo.js.map +0 -0
- package/dist/store/sqlite/repositories/review-event-repo.d.ts +0 -0
- package/dist/store/sqlite/repositories/review-event-repo.js +0 -0
- package/dist/store/sqlite/repositories/review-event-repo.js.map +0 -0
- package/dist/store/sqlite/repositories/scope-repo.d.ts +0 -0
- package/dist/store/sqlite/repositories/scope-repo.js +0 -0
- package/dist/store/sqlite/repositories/scope-repo.js.map +0 -0
- package/dist/store/sqlite/repositories/stats-repo.d.ts +0 -0
- package/dist/store/sqlite/repositories/stats-repo.js +0 -0
- package/dist/store/sqlite/repositories/stats-repo.js.map +0 -0
- package/dist/store/sqlite/repositories/task-run-repo.d.ts +2 -0
- package/dist/store/sqlite/repositories/task-run-repo.js +18 -2
- package/dist/store/sqlite/repositories/task-run-repo.js.map +1 -1
- package/dist/store/sqlite/schema.sql +49 -49
- package/dist/store/vector/api-embedding-provider.d.ts +2 -0
- package/dist/store/vector/api-embedding-provider.js +23 -19
- package/dist/store/vector/api-embedding-provider.js.map +1 -1
- package/dist/store/vector/embeddings.d.ts +1 -1
- package/dist/store/vector/embeddings.js +26 -5
- package/dist/store/vector/embeddings.js.map +1 -1
- package/dist/store/vector/lancedb.d.ts +0 -0
- package/dist/store/vector/lancedb.js +0 -0
- package/dist/store/vector/lancedb.js.map +0 -0
- package/dist/store/vector/local-provider.d.ts +0 -0
- package/dist/store/vector/local-provider.js +0 -0
- package/dist/store/vector/local-provider.js.map +0 -0
- package/dist/store/vector/node-index.d.ts +0 -0
- package/dist/store/vector/node-index.js +0 -0
- package/dist/store/vector/node-index.js.map +0 -0
- package/dist/store/vector/provider-types.d.ts +0 -0
- package/dist/store/vector/provider-types.js +0 -0
- package/dist/store/vector/provider-types.js.map +0 -0
- package/dist/types/analyzer.d.ts +0 -0
- package/dist/types/analyzer.js +0 -0
- package/dist/types/analyzer.js.map +0 -0
- package/dist/types/domain.d.ts +166 -47
- package/dist/types/domain.js +0 -0
- package/dist/types/domain.js.map +0 -0
- package/dist/types/plugin.d.ts +3 -1
- package/dist/types/plugin.js +0 -0
- package/dist/types/plugin.js.map +0 -0
- package/dist/types/storage.d.ts +0 -0
- package/dist/types/storage.js +0 -0
- package/dist/types/storage.js.map +0 -0
- package/dist/utils/clock.d.ts +0 -0
- package/dist/utils/clock.js +0 -0
- package/dist/utils/clock.js.map +0 -0
- package/dist/utils/errors.d.ts +0 -0
- package/dist/utils/errors.js +0 -0
- package/dist/utils/errors.js.map +0 -0
- package/dist/utils/hashing.d.ts +0 -0
- package/dist/utils/hashing.js +0 -0
- package/dist/utils/hashing.js.map +0 -0
- package/dist/utils/ids.d.ts +0 -0
- package/dist/utils/ids.js +0 -0
- package/dist/utils/ids.js.map +0 -0
- package/dist/utils/text.d.ts +0 -0
- package/dist/utils/text.js +0 -0
- package/dist/utils/text.js.map +0 -0
- package/dist/version/package-version.d.ts +0 -0
- package/dist/version/package-version.js +0 -0
- package/dist/version/package-version.js.map +0 -0
- package/dist/version/remote-release.d.ts +0 -0
- package/dist/version/remote-release.js +0 -0
- package/dist/version/remote-release.js.map +0 -0
- package/docs/releases/v0.1.0.md +0 -0
- package/docs/releases/v0.1.1.md +0 -0
- package/docs/releases/v0.1.2.md +3 -3
- package/docs/releases/v0.1.3.md +95 -0
- package/docs/releases/v0.2.0.md +85 -0
- package/docs/user-guide.md +263 -133
- package/hooks/hooks.json +0 -0
- package/openclaw.plugin.json +81 -1
- package/package.json +25 -16
- package/plugins/claude-code-experienceengine/.claude-plugin/plugin.json +1 -1
- package/plugins/claude-code-experienceengine/.mcp.json +4 -3
- package/plugins/claude-code-experienceengine/hooks/hooks.json +0 -0
- package/plugins/claude-code-experienceengine/scripts/claude-hook.sh +30 -1
- package/plugins/claude-code-experienceengine/scripts/install-deps.sh +41 -6
- package/scripts/claude-plugin/claude-hook.sh +0 -0
- package/scripts/claude-plugin/install-deps.sh +0 -0
- package/dist/cli/commands/pack.d.ts +0 -1
- package/dist/cli/commands/pack.js +0 -321
- package/dist/cli/commands/pack.js.map +0 -1
- package/dist/compiler/agents-renderer.d.ts +0 -4
- package/dist/compiler/agents-renderer.js +0 -105
- package/dist/compiler/agents-renderer.js.map +0 -1
- package/dist/compiler/claude-renderer.d.ts +0 -2
- package/dist/compiler/claude-renderer.js +0 -40
- package/dist/compiler/claude-renderer.js.map +0 -1
- package/dist/compiler/codex-renderer.d.ts +0 -2
- package/dist/compiler/codex-renderer.js +0 -40
- package/dist/compiler/codex-renderer.js.map +0 -1
- package/dist/compiler/compiler.d.ts +0 -4
- package/dist/compiler/compiler.js +0 -87
- package/dist/compiler/compiler.js.map +0 -1
- package/dist/compiler/deployer.d.ts +0 -21
- package/dist/compiler/deployer.js +0 -64
- package/dist/compiler/deployer.js.map +0 -1
- package/dist/compiler/github-renderer.d.ts +0 -2
- package/dist/compiler/github-renderer.js +0 -63
- package/dist/compiler/github-renderer.js.map +0 -1
- package/dist/compiler/types.d.ts +0 -45
- package/dist/compiler/types.js.map +0 -1
- package/dist/interaction/pack-actions-service.d.ts +0 -59
- package/dist/interaction/pack-actions-service.js +0 -172
- package/dist/interaction/pack-actions-service.js.map +0 -1
- package/dist/packs/fs-registry.d.ts +0 -27
- package/dist/packs/fs-registry.js +0 -216
- package/dist/packs/fs-registry.js.map +0 -1
- package/dist/packs/index-sync.d.ts +0 -9
- package/dist/packs/index-sync.js +0 -54
- package/dist/packs/index-sync.js.map +0 -1
- package/dist/packs/types.d.ts +0 -55
- package/dist/packs/types.js +0 -2
- package/dist/store/sqlite/repositories/pack-repo.d.ts +0 -16
- package/dist/store/sqlite/repositories/pack-repo.js +0 -192
- package/dist/store/sqlite/repositories/pack-repo.js.map +0 -1
|
File without changes
|
package/.env.example
CHANGED
|
File without changes
|
package/.mcp.json
CHANGED
|
@@ -2,15 +2,11 @@
|
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"experienceengine": {
|
|
4
4
|
"type": "stdio",
|
|
5
|
-
"command": "
|
|
6
|
-
"args": [
|
|
7
|
-
"${CLAUDE_PLUGIN_ROOT}/dist/cli/index.js",
|
|
8
|
-
"mcp-server"
|
|
9
|
-
],
|
|
5
|
+
"command": "/mnt/d/ExperienceEngineData/.experienceengine/bin/experienceengine-mcp-server",
|
|
6
|
+
"args": [],
|
|
10
7
|
"env": {
|
|
11
|
-
"
|
|
12
|
-
"EXPERIENCE_ENGINE_HOME": "${CLAUDE_PLUGIN_DATA}/experienceengine-home"
|
|
8
|
+
"EXPERIENCE_ENGINE_HOME": "/home/seed/.experienceengine"
|
|
13
9
|
}
|
|
14
10
|
}
|
|
15
11
|
}
|
|
16
|
-
}
|
|
12
|
+
}
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Alan-512
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,130 +1,312 @@
|
|
|
1
1
|
# ExperienceEngine
|
|
2
2
|
|
|
3
|
-
[
|
|
3
|
+
English | [简体中文](./README.zh-CN.md)
|
|
4
4
|
|
|
5
|
-
ExperienceEngine is a
|
|
5
|
+
ExperienceEngine is a governance layer for coding agents that reuses real execution experience without turning memory into noise. It injects short task-specific guidance only when relevant, then tracks whether that intervention helped or harmed.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**Memory does addition. ExperienceEngine does governance.**
|
|
8
|
+
|
|
9
|
+
Supported hosts today: `OpenClaw`, `Claude Code`, `Codex`
|
|
10
|
+
|
|
11
|
+
## 10-Second Example
|
|
12
|
+
|
|
13
|
+
Without ExperienceEngine:
|
|
14
|
+
- the agent repeats the same SQLite migration mistake in a similar repo
|
|
15
|
+
|
|
16
|
+
With ExperienceEngine:
|
|
17
|
+
- it injects a hint like: `Run the migration before opening the DB connection`
|
|
18
|
+
- later you mark that intervention `helpful` or `harmful`
|
|
19
|
+
- the experience can then become active, cool down, or retire
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
task signals -> distilled experience -> retrieval -> short intervention -> feedback -> governance
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
<details>
|
|
26
|
+
<summary>Example host transcript</summary>
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
User: Fix the SQLite startup failure in this repo.
|
|
30
|
+
|
|
31
|
+
ExperienceEngine:
|
|
32
|
+
Hint: Run the migration before opening the DB connection.
|
|
33
|
+
|
|
34
|
+
Host agent:
|
|
35
|
+
I’ll apply the migration first, then retry startup.
|
|
36
|
+
|
|
37
|
+
User:
|
|
38
|
+
Why did that ExperienceEngine hint match?
|
|
39
|
+
|
|
40
|
+
Host agent:
|
|
41
|
+
It matched a prior task in this repo with the same SQLite startup pattern and a successful migration-first fix.
|
|
42
|
+
|
|
43
|
+
User:
|
|
44
|
+
Mark the last ExperienceEngine intervention as helpful.
|
|
45
|
+
|
|
46
|
+
Host agent:
|
|
47
|
+
Recorded. That experience gets stronger for similar future tasks.
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
</details>
|
|
51
|
+
|
|
52
|
+

|
|
53
|
+
|
|
54
|
+
## Quick Start
|
|
55
|
+
|
|
56
|
+
Fastest host-specific install paths:
|
|
8
57
|
|
|
9
|
-
Supported hosts today:
|
|
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
|
-
ExperienceEngine is not a general memory store and not a replacement context engine.
|
|
17
|
-
|
|
18
|
-
It focuses on four things:
|
|
19
|
-
- capture task/tool/outcome signals from the host agent
|
|
20
|
-
- compress useful prior experience into short `strategy` or `warning` nodes
|
|
21
|
-
- decide whether to inject guidance for a similar task
|
|
22
|
-
- update node state from real `helped` / `harmed` outcomes
|
|
23
|
-
|
|
24
|
-
## Why It Is Not Just Memory
|
|
25
|
-
|
|
26
|
-
Most agent memory systems answer:
|
|
27
|
-
|
|
28
|
-
- what facts should be remembered
|
|
29
|
-
- what user preferences should be carried forward
|
|
30
|
-
- what repository context should be loaded next time
|
|
31
|
-
|
|
32
|
-
ExperienceEngine answers a different question:
|
|
33
|
-
|
|
34
|
-
- when should prior experience intervene
|
|
35
|
-
- which `strategy` or `warning` should be injected
|
|
36
|
-
- whether that intervention actually helped
|
|
37
|
-
- whether the experience should stay active, cool down, or retire
|
|
38
|
-
|
|
39
|
-
In practice:
|
|
40
|
-
- memory keeps facts and preferences
|
|
41
|
-
- ExperienceEngine governs reusable coding tactics and failure-avoidance guidance
|
|
42
|
-
|
|
43
|
-
## What You Can Use Today
|
|
44
|
-
|
|
45
|
-
Already available in the repository:
|
|
46
|
-
- host integration for `OpenClaw`, `Claude Code`, and `Codex`
|
|
47
|
-
- MCP-native interaction surfaces plus CLI fallback
|
|
48
|
-
- API-first semantic retrieval with graceful fallback:
|
|
49
|
-
- OpenAI `text-embedding-3-small`
|
|
50
|
-
- Gemini `gemini-embedding-001`
|
|
51
|
-
- Jina `jina-embeddings-v3`
|
|
52
|
-
- managed local embedding fallback
|
|
53
|
-
- legacy hash-based fallback
|
|
54
|
-
- quick inspection and feedback commands such as `ee inspect --last`, `ee helped`, and `ee harmed`
|
|
55
|
-
- local Experience Pack workflow:
|
|
56
|
-
- `draft`
|
|
57
|
-
- `review`
|
|
58
|
-
- `publish`
|
|
59
|
-
- `rollback`
|
|
60
|
-
- compiler and deploy workflow for host instruction files:
|
|
61
|
-
- `AGENTS.md`
|
|
62
|
-
- `CODEX.md`
|
|
63
|
-
- `CLAUDE.md`
|
|
64
|
-
- GitHub agent profile markdown
|
|
70
|
+
`ee init` initializes shared ExperienceEngine state after the host-specific installation step.
|
|
65
71
|
|
|
66
|
-
|
|
72
|
+
Need detailed per-host setup instructions, fallback paths, readiness states, or operator workflows? Jump to [Full Setup and Operator Details](#full-setup-and-operator-details).
|
|
73
|
+
|
|
74
|
+
## Who It's For
|
|
75
|
+
|
|
76
|
+
Use ExperienceEngine if:
|
|
77
|
+
- you use coding agents repeatedly in similar repos or workflows
|
|
78
|
+
- you want **small, intervention-focused guidance**, not general memory recall
|
|
79
|
+
- you want to know whether reused experience actually **helped or harmed**
|
|
80
|
+
- you want stale guidance to cool down or retire instead of accumulating forever
|
|
81
|
+
|
|
82
|
+
Do not use ExperienceEngine if:
|
|
83
|
+
- you only want a personal note-taking memory
|
|
84
|
+
- you want generic document RAG
|
|
85
|
+
- you rarely repeat workflows
|
|
86
|
+
- you want the system to remember everything by default
|
|
87
|
+
|
|
88
|
+
## Host Support Matrix
|
|
89
|
+
|
|
90
|
+
| Host | Install path | Routine interaction | Maturity |
|
|
91
|
+
|---|---|---|---|
|
|
92
|
+
| `OpenClaw` | native plugin install | host-native | most complete today |
|
|
93
|
+
| `Claude Code` | marketplace plugin, with `ee install claude-code` fallback | MCP + plugin hooks | supported |
|
|
94
|
+
| `Codex` | `ee install codex`, with native MCP fallback | MCP-native | supported |
|
|
95
|
+
|
|
96
|
+
## Why It Exists
|
|
97
|
+
|
|
98
|
+
Coding agents often repeat the same mistakes because prior execution experience is not reused in a governed way.
|
|
99
|
+
|
|
100
|
+
ExperienceEngine is designed for intervention governance, not general memory accumulation.
|
|
101
|
+
|
|
102
|
+
## Why Not Memory / RAG
|
|
103
|
+
|
|
104
|
+
| Question | Memory Systems | ExperienceEngine |
|
|
105
|
+
|---|---|---|
|
|
106
|
+
| Persist facts and preferences across sessions | Yes | Not the primary job |
|
|
107
|
+
| Capture repeated failure → fix → success paths | Partial, usually manual | Yes, from real task signals |
|
|
108
|
+
| Track whether a recalled item helped or harmed | Usually no | Yes, per intervention |
|
|
109
|
+
| Retire stale or harmful guidance automatically | Usually no | Yes, cooling and retirement are built in |
|
|
110
|
+
| Keep context small and intervention-focused | Not the main goal | Yes, it injects short task-specific guidance |
|
|
111
|
+
| Generic document lookup | Common fit | Not the primary job |
|
|
112
|
+
|
|
113
|
+
## Where It Sits In The Agent Loop
|
|
114
|
+
|
|
115
|
+
At a high level, ExperienceEngine operates around the agent loop like this:
|
|
116
|
+
|
|
117
|
+
```text
|
|
118
|
+
User task
|
|
119
|
+
-> before_prompt_build: retrieve and inject matching experience
|
|
120
|
+
-> agent reasoning + tools: capture failures, retries, corrections, and outcomes
|
|
121
|
+
-> task finalization: distill new candidates into reusable experience
|
|
122
|
+
-> helped / harmed feedback: promote, cool, or retire nodes
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
ExperienceEngine works at the context layer. It does not modify the host model's weights.
|
|
126
|
+
|
|
127
|
+
## Experience Lifecycle
|
|
128
|
+
|
|
129
|
+
```text
|
|
130
|
+
task signals
|
|
131
|
+
-> candidate
|
|
132
|
+
-> active
|
|
133
|
+
-> cooling
|
|
134
|
+
-> retired
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Each node moves through that lifecycle using real task outcomes, not just time-based cleanup. Helpful experience gets reinforced; harmful experience gets cooled or retired.
|
|
138
|
+
|
|
139
|
+
## What You Can Do Today
|
|
140
|
+
|
|
141
|
+
- reuse short guidance from similar coding work
|
|
142
|
+
- review why a hint matched
|
|
143
|
+
- mark interventions helpful or harmful
|
|
144
|
+
- inspect active, cooling, and retired experience
|
|
145
|
+
- run across `OpenClaw`, `Claude Code`, and `Codex`
|
|
146
|
+
|
|
147
|
+
### Under The Hood
|
|
148
|
+
|
|
149
|
+
- MCP-native interaction surfaces plus CLI/operator fallback
|
|
150
|
+
- semantic retrieval with API and local fallback
|
|
151
|
+
- host-agent driven inspection and feedback, with CLI fallback commands such as `ee inspect --last`, `ee helped`, and `ee harmed`
|
|
152
|
+
|
|
153
|
+
For a more detailed explanation of what ExperienceEngine records and how an experience node is structured, see:
|
|
154
|
+
|
|
155
|
+
- [Experience Model Overview](./docs/development/experience-model.md)
|
|
67
156
|
|
|
68
|
-
|
|
157
|
+
## Current Status
|
|
69
158
|
|
|
70
|
-
|
|
159
|
+
- Stable: core experience lifecycle, inspect/helped/harmed loop, host integrations, CLI/operator fallback
|
|
160
|
+
- Good path today: `OpenClaw` native plugin install
|
|
161
|
+
- Evolving: retrieval tuning, provider strategy, advanced host UX
|
|
162
|
+
- If you want the smoothest first experience today, start with `OpenClaw`.
|
|
163
|
+
|
|
164
|
+
## What First Success Looks Like
|
|
165
|
+
|
|
166
|
+
After installation and initialization, the first visible signs of value are:
|
|
167
|
+
|
|
168
|
+
- ExperienceEngine injects a short hint during a real task
|
|
169
|
+
- the host can explain why that hint matched
|
|
170
|
+
- feedback on the last intervention affects future reuse
|
|
171
|
+
- `ee inspect --last` shows the recent intervention and related node state
|
|
172
|
+
|
|
173
|
+
## Prerequisites
|
|
174
|
+
|
|
175
|
+
Before installing an adapter, make sure the host CLI already works on this machine:
|
|
176
|
+
|
|
177
|
+
- `openclaw` for the OpenClaw plugin/runtime integration
|
|
178
|
+
- `claude` for the Claude Code adapter
|
|
179
|
+
- `codex` for the Codex adapter
|
|
180
|
+
|
|
181
|
+
**ExperienceEngine does not install those host CLIs for you.** It wires itself into an already working host environment.
|
|
182
|
+
|
|
183
|
+
OpenClaw notes:
|
|
184
|
+
- requires a working OpenClaw installation with native plugin support
|
|
185
|
+
- the documented OpenClaw path assumes `openclaw plugins install` and `openclaw gateway restart` are available
|
|
186
|
+
- OpenClaw now uses the shared background learning loop by default
|
|
187
|
+
- OpenClaw still keeps async hybrid posttask review disabled by default; `ee status` and `ee doctor openclaw` show that explicitly
|
|
188
|
+
|
|
189
|
+
General package requirement:
|
|
190
|
+
- Node.js `>=20` is required for the published package
|
|
191
|
+
|
|
192
|
+
## Full Setup and Operator Details
|
|
193
|
+
|
|
194
|
+
### Full Setup by Host
|
|
195
|
+
|
|
196
|
+
ExperienceEngine no longer treats the `ee` CLI as the universal first-install entrypoint across all hosts.
|
|
197
|
+
|
|
198
|
+
Install ExperienceEngine through the host setup flow for the host you want to use:
|
|
71
199
|
|
|
72
200
|
- `OpenClaw`
|
|
73
|
-
-
|
|
201
|
+
- host-native plugin install:
|
|
74
202
|
- `openclaw plugins install @alan512/experienceengine`
|
|
75
|
-
-
|
|
76
|
-
-
|
|
203
|
+
- after installing, restart the OpenClaw gateway before the first real task:
|
|
204
|
+
- `openclaw gateway restart`
|
|
77
205
|
- `Codex`
|
|
78
|
-
-
|
|
79
|
-
- `
|
|
80
|
-
-
|
|
81
|
-
-
|
|
206
|
+
- EE-managed Codex setup:
|
|
207
|
+
- `ee install codex`
|
|
208
|
+
- native/manual fallback:
|
|
209
|
+
- see the advanced example below if you need direct MCP wiring
|
|
210
|
+
- after either path, start a new Codex session in the repo so the MCP wiring and `AGENTS.md` instruction block are picked up
|
|
82
211
|
- `Claude Code`
|
|
83
|
-
-
|
|
212
|
+
- host-native marketplace install:
|
|
213
|
+
- add the bundled marketplace from GitHub:
|
|
84
214
|
- `/plugin marketplace add https://github.com/Alan-512/ExperienceEngine.git`
|
|
85
215
|
- install the bundled plugin:
|
|
86
216
|
- `/plugin install experienceengine@experienceengine`
|
|
87
217
|
- `ee install claude-code` remains the operator fallback when you need direct hooks + MCP wiring outside the marketplace flow
|
|
218
|
+
- after installation, start a new Claude Code session so the plugin hooks and bundled MCP config are loaded
|
|
219
|
+
|
|
220
|
+
Across all three hosts, the intended flow is the same:
|
|
221
|
+
|
|
222
|
+
1. install ExperienceEngine through the host-specific setup path
|
|
223
|
+
2. initialize shared ExperienceEngine state with `ee init`
|
|
224
|
+
3. restart or open a fresh host session until the repo is `Ready`
|
|
225
|
+
4. keep routine inspection and feedback inside the host when supported
|
|
226
|
+
5. use `ee` as the operator fallback for validation, repair, and deeper inspection
|
|
227
|
+
|
|
228
|
+
### Shared Initialization
|
|
229
|
+
|
|
230
|
+
`ee init` is shared-product initialization, not host-specific setup.
|
|
231
|
+
|
|
232
|
+
- Run it once after your first host installation to configure:
|
|
233
|
+
- distillation provider/model/auth
|
|
234
|
+
- embedding mode/provider
|
|
235
|
+
- any shared provider secrets
|
|
236
|
+
- Later host installations reuse the same ExperienceEngine home, settings, and shared secrets.
|
|
237
|
+
|
|
238
|
+
After installation, ExperienceEngine should orient the user toward the next setup step:
|
|
239
|
+
|
|
240
|
+
- if host wiring is in place, the product is at least `Installed`
|
|
241
|
+
- after shared state is configured with `ee init`, the product is `Initialized`
|
|
242
|
+
- once the host or repo has reloaded correctly for real work, the product is `Ready`
|
|
243
|
+
|
|
244
|
+
Minimal shared initialization example:
|
|
88
245
|
|
|
89
|
-
|
|
246
|
+
```bash
|
|
247
|
+
ee init distillation --provider openai --model gpt-4.1-mini --auth-mode api_key
|
|
248
|
+
ee init secret OPENAI_API_KEY <your-api-key>
|
|
249
|
+
ee init embedding --mode api --api-provider openai --model text-embedding-3-small
|
|
250
|
+
ee init show
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
If you prefer Gemini or Jina for embeddings, use the same `ee init embedding` flow with the matching provider and model.
|
|
254
|
+
|
|
255
|
+
### Routine Use vs Operator Use
|
|
256
|
+
|
|
257
|
+
For routine use, ask the host agent naturally for ExperienceEngine state or feedback actions, for example:
|
|
258
|
+
|
|
259
|
+
- "What did ExperienceEngine just inject?"
|
|
260
|
+
- "Why did that ExperienceEngine hint match?"
|
|
261
|
+
- "Mark the last ExperienceEngine intervention as helpful or harmful."
|
|
262
|
+
|
|
263
|
+
OpenClaw also supports these additional readiness and recent-silence questions in-session:
|
|
264
|
+
|
|
265
|
+
- "Is ExperienceEngine ready here?"
|
|
266
|
+
- "Is ExperienceEngine still warming up in this repo?"
|
|
267
|
+
- "Why didn't ExperienceEngine inject anything just now?"
|
|
268
|
+
|
|
269
|
+
For `OpenClaw`, `Codex`, and `Claude Code`, the common review-and-feedback follow-ups should stay in the host session first.
|
|
270
|
+
Use CLI fallback whenever the host-side path is unavailable or you need explicit operator control.
|
|
271
|
+
|
|
272
|
+
Use the `ee` CLI when you need explicit operator validation or troubleshooting:
|
|
90
273
|
|
|
91
274
|
```bash
|
|
275
|
+
ee init
|
|
92
276
|
ee doctor <openclaw|claude-code|codex>
|
|
93
277
|
ee status
|
|
94
278
|
ee maintenance embedding-smoke
|
|
95
279
|
```
|
|
96
280
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
Before installing an adapter, make sure the host CLI already works on this machine:
|
|
100
|
-
|
|
101
|
-
- `openclaw` for the OpenClaw plugin/runtime integration
|
|
102
|
-
- `claude` for the Claude Code adapter
|
|
103
|
-
- `codex` for the Codex adapter
|
|
281
|
+
### Readiness and Value States
|
|
104
282
|
|
|
105
|
-
ExperienceEngine
|
|
283
|
+
ExperienceEngine treats onboarding and value as two separate layers:
|
|
106
284
|
|
|
107
|
-
|
|
285
|
+
- `Setup state`
|
|
286
|
+
- `Installed`
|
|
287
|
+
- `Initialized`
|
|
288
|
+
- `Ready`
|
|
289
|
+
- `Value state`
|
|
290
|
+
- `Warming up`
|
|
291
|
+
- `First value reached`
|
|
108
292
|
|
|
109
|
-
|
|
293
|
+
These are not one linear ladder. A repo can already be `Ready` while still `Warming up`.
|
|
110
294
|
|
|
111
|
-
-
|
|
112
|
-
- validation and maintenance belong to `ee`
|
|
295
|
+
`First value reached` should only be claimed after visible output from a real task run. A generic warm-up message or static onboarding text does not count as first value.
|
|
113
296
|
|
|
114
|
-
|
|
297
|
+
## Installation Model
|
|
115
298
|
|
|
116
|
-
|
|
117
|
-
-
|
|
118
|
-
-
|
|
299
|
+
ExperienceEngine separates:
|
|
300
|
+
- host installation
|
|
301
|
+
- shared initialization
|
|
302
|
+
- operator workflows
|
|
119
303
|
|
|
120
|
-
|
|
304
|
+
The host remains the primary interaction surface.
|
|
305
|
+
`ee` remains the explicit operator surface for setup, validation, repair, status, and maintenance.
|
|
121
306
|
|
|
122
|
-
-
|
|
123
|
-
- repair guidance
|
|
124
|
-
- status inspection
|
|
125
|
-
- learning and intervention feedback
|
|
307
|
+
## Advanced Per-Host Commands (Operator / Development Only)
|
|
126
308
|
|
|
127
|
-
|
|
309
|
+
Most users can ignore this section and use the host-specific setup flow above.
|
|
128
310
|
|
|
129
311
|
If you need explicit per-host control as an operator or while developing the product, these commands still exist:
|
|
130
312
|
|
|
@@ -134,6 +316,15 @@ ee install claude-code
|
|
|
134
316
|
ee install codex
|
|
135
317
|
```
|
|
136
318
|
|
|
319
|
+
<details>
|
|
320
|
+
<summary>Native/manual Codex MCP fallback example</summary>
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
codex mcp add experienceengine --env EXPERIENCE_ENGINE_HOME=$HOME/.experienceengine -- npx -y @alan512/experienceengine codex-mcp-server
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
</details>
|
|
327
|
+
|
|
137
328
|
Notes:
|
|
138
329
|
- `OpenClaw` uses plugin/runtime integration (not `src/adapters/`) and CLI fallback for management.
|
|
139
330
|
- `Claude Code` installs both hooks and the shared ExperienceEngine MCP server.
|
|
@@ -163,10 +354,7 @@ That managed state includes:
|
|
|
163
354
|
Current default behavior:
|
|
164
355
|
|
|
165
356
|
- `embeddingProvider = "api"`
|
|
166
|
-
- provider priority:
|
|
167
|
-
- OpenAI when `OPENAI_API_KEY` is present
|
|
168
|
-
- Gemini when `GEMINI_API_KEY` is present
|
|
169
|
-
- Jina when `JINA_API_KEY` is present
|
|
357
|
+
- provider priority: OpenAI -> Gemini -> Jina
|
|
170
358
|
- if no API provider is available, ExperienceEngine falls back to the managed local embedding model
|
|
171
359
|
|
|
172
360
|
Useful environment variables:
|
|
@@ -182,4 +370,9 @@ See the full user guide here:
|
|
|
182
370
|
|
|
183
371
|
- [ExperienceEngine User Guide](./docs/user-guide.md)
|
|
184
372
|
|
|
185
|
-
The user guide covers installation, host-specific notes, first-run validation,
|
|
373
|
+
The user guide covers installation, host-specific notes, first-run validation, troubleshooting, and maintenance operations.
|
|
374
|
+
|
|
375
|
+
## License
|
|
376
|
+
|
|
377
|
+
This project is licensed under the MIT License.
|
|
378
|
+
See [LICENSE](./LICENSE).
|