@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
package/docs/user-guide.md
CHANGED
|
@@ -11,6 +11,19 @@ In practice, this means:
|
|
|
11
11
|
- noisy or harmful prior patterns can be cooled or retired
|
|
12
12
|
- the system gradually learns which guidance is actually useful
|
|
13
13
|
|
|
14
|
+
It also means ExperienceEngine separates:
|
|
15
|
+
|
|
16
|
+
- `task history`
|
|
17
|
+
- broad runtime records of what happened
|
|
18
|
+
- `reusable experience`
|
|
19
|
+
- only the subset of tasks that produced transferable decision guidance
|
|
20
|
+
|
|
21
|
+
So a task can be recorded without being promoted into learning.
|
|
22
|
+
|
|
23
|
+
For a focused explanation of what ExperienceEngine stores and how an experience node is governed, see:
|
|
24
|
+
|
|
25
|
+
- [docs/development/experience-model.md](development/experience-model.md)
|
|
26
|
+
|
|
14
27
|
For a practical end-to-end workflow on a real repository, see:
|
|
15
28
|
|
|
16
29
|
- [docs/development/real-repo-playbook.md](development/real-repo-playbook.md)
|
|
@@ -48,6 +61,24 @@ When it injects guidance, you will usually see a lightweight notice like:
|
|
|
48
61
|
|
|
49
62
|
If there is no intervention, it stays silent.
|
|
50
63
|
|
|
64
|
+
When ExperienceEngine is less certain but still sees a credible same-family match, it may choose a conservative injection instead of skipping entirely. In that case the injected block stays smaller by default, but mature low-risk nodes can still include a short `Goal / Steps / Avoid` structure when that makes the guidance more actionable.
|
|
65
|
+
|
|
66
|
+
When you inspect the latest turn, you may also see a learning decision such as:
|
|
67
|
+
|
|
68
|
+
```text
|
|
69
|
+
Learning status: captured
|
|
70
|
+
Learning reason: provider routing debugging exposed a reusable configuration pattern
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
or:
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
Learning status: rejected
|
|
77
|
+
Learning reason: task stayed in expression-layer refinement: wording, copy, or presentation changes are recorded but not learned
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
This is intentional. ExperienceEngine now records broad task history, but it only promotes tasks with transferable decision value into the reusable experience pool.
|
|
81
|
+
|
|
51
82
|
When the host surfaces task-finalization metadata, ExperienceEngine can also show a lightweight feedback reminder after an injected turn so the user can quickly mark whether the hint helped or harmed.
|
|
52
83
|
|
|
53
84
|
You can also turn inline notices off:
|
|
@@ -58,76 +89,209 @@ ee config set notices.inline false
|
|
|
58
89
|
|
|
59
90
|
## Install And First Run
|
|
60
91
|
|
|
61
|
-
ExperienceEngine installation
|
|
92
|
+
ExperienceEngine installation now starts from the host you want to use.
|
|
62
93
|
|
|
63
94
|
That means the first installation step belongs to the host you want to use, not to the `ee` CLI.
|
|
64
95
|
|
|
65
|
-
Install ExperienceEngine through the host
|
|
96
|
+
Install ExperienceEngine through the host setup flow for:
|
|
66
97
|
|
|
67
98
|
- `OpenClaw`
|
|
68
|
-
-
|
|
99
|
+
- host-native plugin install:
|
|
69
100
|
- `openclaw plugins install @alan512/experienceengine`
|
|
70
|
-
-
|
|
71
|
-
-
|
|
101
|
+
- after installing, restart the gateway before the first real task:
|
|
102
|
+
- `openclaw gateway restart`
|
|
72
103
|
- `Codex`
|
|
73
|
-
-
|
|
104
|
+
- EE-managed Codex setup:
|
|
105
|
+
- `ee install codex`
|
|
106
|
+
- native/manual fallback:
|
|
74
107
|
- `codex mcp add experienceengine --env EXPERIENCE_ENGINE_HOME=$HOME/.experienceengine -- npx -y @alan512/experienceengine codex-mcp-server`
|
|
75
|
-
-
|
|
76
|
-
- blocked until the public npm package `@alan512/experienceengine` is published
|
|
108
|
+
- after either path, start a new Codex session in this repo so the MCP wiring and `AGENTS.md` instruction block are picked up
|
|
77
109
|
- `Claude Code`
|
|
78
|
-
-
|
|
110
|
+
- host-native marketplace install:
|
|
111
|
+
- add the bundled marketplace from GitHub:
|
|
79
112
|
- `/plugin marketplace add https://github.com/Alan-512/ExperienceEngine.git`
|
|
80
113
|
- install the bundled plugin:
|
|
81
114
|
- `/plugin install experienceengine@experienceengine`
|
|
82
115
|
- `ee install claude-code` remains the explicit operator fallback when you need direct hooks + MCP wiring outside the marketplace flow
|
|
116
|
+
- after installation, start a new Claude Code session so the plugin hooks and bundled MCP config are loaded
|
|
117
|
+
|
|
118
|
+
Across all three hosts, the intended product journey is the same:
|
|
119
|
+
|
|
120
|
+
1. install ExperienceEngine through the host-specific setup path
|
|
121
|
+
2. initialize shared ExperienceEngine state with `ee init`
|
|
122
|
+
3. restart or open a fresh host session until the repo is `Ready`
|
|
123
|
+
4. keep routine review and feedback inside the host agent when the host supports it cleanly
|
|
124
|
+
5. use `ee` as the operator fallback for validation, repair, and deeper inspection
|
|
83
125
|
|
|
84
|
-
|
|
126
|
+
The host-specific differences are real, but they sit underneath one shared model:
|
|
127
|
+
|
|
128
|
+
- installation mechanics differ by host
|
|
129
|
+
- routine interaction should feel similar wherever the host supports it
|
|
130
|
+
- CLI remains the explicit fallback and operator surface
|
|
131
|
+
|
|
132
|
+
Then continue using your host agent normally.
|
|
133
|
+
|
|
134
|
+
For most users, ExperienceEngine should stay in the background and be inspected through the host agent itself. Typical prompts are:
|
|
135
|
+
|
|
136
|
+
- "What did ExperienceEngine just inject?"
|
|
137
|
+
- "Why did that ExperienceEngine hint match?"
|
|
138
|
+
- "Mark the last ExperienceEngine intervention as helpful or harmful."
|
|
139
|
+
|
|
140
|
+
OpenClaw also supports these additional phase-2 routine questions in-session:
|
|
141
|
+
|
|
142
|
+
- "Is ExperienceEngine ready here?"
|
|
143
|
+
- "Is ExperienceEngine still warming up in this repo?"
|
|
144
|
+
- "Why didn't ExperienceEngine inject anything just now?"
|
|
145
|
+
|
|
146
|
+
For `OpenClaw`, `Codex`, and `Claude Code`, these routine follow-ups should stay in the host session first.
|
|
147
|
+
|
|
148
|
+
Use the `ee` CLI only when you need explicit validation, repair, or operator-style troubleshooting:
|
|
85
149
|
|
|
86
150
|
```bash
|
|
151
|
+
ee init
|
|
87
152
|
ee doctor <openclaw|claude-code|codex>
|
|
88
153
|
ee status
|
|
89
154
|
```
|
|
90
155
|
|
|
156
|
+
Use `ee init` once to initialize ExperienceEngine's shared distillation, embedding, and secret state. New host installations should reuse that same shared EE state instead of asking you to re-enter the same API key per host window.
|
|
157
|
+
|
|
158
|
+
In practical terms, the routine loop currently looks like this:
|
|
159
|
+
|
|
160
|
+
- `Codex`
|
|
161
|
+
- ask the host agent first for recent injections, matching reasons, and helped / harmed feedback
|
|
162
|
+
- `Claude Code`
|
|
163
|
+
- ask the host agent first for recent injections, matching reasons, and helped / harmed feedback
|
|
164
|
+
- `OpenClaw`
|
|
165
|
+
- ask the host agent first for recent injections, matching reasons, readiness, warm-up progress, recent silence, and helped / harmed feedback
|
|
166
|
+
- keep CLI/operator fallback for deeper inspection, repair, and advanced management
|
|
167
|
+
|
|
168
|
+
For onboarding and first value, ExperienceEngine now uses a two-layer product model:
|
|
169
|
+
|
|
170
|
+
- `Setup state`
|
|
171
|
+
- `Installed`
|
|
172
|
+
- `Initialized`
|
|
173
|
+
- `Ready`
|
|
174
|
+
- `Value state`
|
|
175
|
+
- `Warming up`
|
|
176
|
+
- `First value reached`
|
|
177
|
+
|
|
178
|
+
These are not one linear state machine.
|
|
179
|
+
|
|
180
|
+
Examples:
|
|
181
|
+
|
|
182
|
+
- a repo can already be `Ready` while still `Warming up`
|
|
183
|
+
- a repo can be `Ready` and already have reached first value
|
|
184
|
+
|
|
185
|
+
In practice:
|
|
186
|
+
|
|
187
|
+
- installation into a host gets you to `Installed`
|
|
188
|
+
- `ee init` moves the shared product state toward `Initialized`
|
|
189
|
+
- a restart or new host session usually completes `Ready`
|
|
190
|
+
- real task activity moves the value layer from `Warming up` toward `First value reached`
|
|
191
|
+
|
|
192
|
+
`First value reached` must be tied to visible output from real work, such as:
|
|
193
|
+
|
|
194
|
+
- a visible real task record
|
|
195
|
+
- a visible learning decision
|
|
196
|
+
- a visible intervention
|
|
197
|
+
|
|
198
|
+
These do **not** count by themselves:
|
|
199
|
+
|
|
200
|
+
- a static onboarding message
|
|
201
|
+
- a generic warm-up explanation
|
|
202
|
+
- a recommendation not tied to a real observed task run
|
|
203
|
+
|
|
91
204
|
You do **not** need to clone the repository or run `pnpm build` for normal user installation.
|
|
92
205
|
|
|
93
206
|
### Operational CLI
|
|
94
207
|
|
|
95
|
-
After
|
|
208
|
+
After the host setup succeeds, the host agent remains the primary interaction surface.
|
|
96
209
|
|
|
97
|
-
Use
|
|
210
|
+
Use `ee` for:
|
|
98
211
|
|
|
212
|
+
- one-time shared initialization after the first host setup
|
|
99
213
|
- installation validation
|
|
100
214
|
- repair guidance
|
|
101
215
|
- runtime status checks
|
|
102
216
|
- learning and intervention inspection
|
|
103
217
|
- quick helped / harmed feedback
|
|
104
218
|
|
|
219
|
+
`ee status` and `ee doctor` now also summarize recent retrieval health in product language. They still show the raw counters, but they additionally explain whether ExperienceEngine is mostly injecting, mostly staying conservative, or still skipping too many close-match tasks in the current repo.
|
|
220
|
+
|
|
221
|
+
Their roles are intentionally different:
|
|
222
|
+
|
|
223
|
+
- `ee status`
|
|
224
|
+
- daily progress view
|
|
225
|
+
- current setup/value state
|
|
226
|
+
- next practical step
|
|
227
|
+
- `ee doctor <host>`
|
|
228
|
+
- explicit validation and troubleshooting
|
|
229
|
+
- install and wiring verification
|
|
230
|
+
- repair-oriented next steps
|
|
231
|
+
|
|
232
|
+
The most useful inspection command during product debugging is still:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
ee inspect --last
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
That output now tells you both:
|
|
239
|
+
|
|
240
|
+
- what was injected
|
|
241
|
+
- whether the finalized task was learned, rejected from learning, or only kept as runtime history
|
|
242
|
+
- whether the intervention was a normal injection or a conservative one
|
|
243
|
+
- why ExperienceEngine acted that way in plain language instead of only raw gate fields
|
|
244
|
+
- how trustworthy the selected guidance currently is
|
|
245
|
+
|
|
246
|
+
When you inspect a specific node, ExperienceEngine now also shows a lightweight quality judgment layer:
|
|
247
|
+
|
|
248
|
+
- a `quality band` (`strong`, `building`, or `risky`)
|
|
249
|
+
- the short drivers behind that judgment
|
|
250
|
+
- a compact applicability profile covering best fit, scope validity, confidence, risk, and when to avoid reuse
|
|
251
|
+
|
|
105
252
|
## How MCP Interaction Works
|
|
106
253
|
|
|
107
|
-
For `Codex` and `Claude Code`, ExperienceEngine is designed to
|
|
254
|
+
For `Codex` and `Claude Code`, ExperienceEngine is designed to keep routine review and management inside the host session first.
|
|
255
|
+
|
|
256
|
+
That means after installation, you usually do not leave the agent session to manage ExperienceEngine. Instead, you ask the agent naturally and the host uses its native EE wiring for routine interaction.
|
|
257
|
+
|
|
258
|
+
This is one host-specific implementation of the same shared product model described above:
|
|
108
259
|
|
|
109
|
-
|
|
260
|
+
- host-native install or wiring gets the repo to `Installed`
|
|
261
|
+
- shared `ee init` state gets the product to `Initialized`
|
|
262
|
+
- a fresh host session gets the repo to `Ready`
|
|
263
|
+
- routine inspection and feedback stay inside the host when the host supports them cleanly
|
|
264
|
+
- CLI remains the explicit fallback and operator path
|
|
110
265
|
|
|
111
266
|
Typical examples:
|
|
112
267
|
- "What did ExperienceEngine just inject?"
|
|
268
|
+
- "Why did that ExperienceEngine hint match?"
|
|
113
269
|
- "Show the recent injected turns."
|
|
114
270
|
- "List active warning nodes."
|
|
115
271
|
- "Pause ExperienceEngine for this project."
|
|
116
|
-
- "Mark the last ExperienceEngine intervention as harmful."
|
|
117
|
-
- "Record quick feedback for the last ExperienceEngine intervention."
|
|
272
|
+
- "Mark the last ExperienceEngine intervention as helpful or harmful."
|
|
118
273
|
- "Create a backup of ExperienceEngine state."
|
|
119
274
|
- "Rollback ExperienceEngine to backup `<id>`."
|
|
120
275
|
|
|
121
276
|
### MCP Interaction Model
|
|
122
277
|
|
|
123
|
-
|
|
278
|
+
`Codex` exposes a layered MCP surface:
|
|
124
279
|
|
|
125
|
-
- `
|
|
126
|
-
-
|
|
127
|
-
- `
|
|
128
|
-
-
|
|
129
|
-
- `
|
|
130
|
-
-
|
|
280
|
+
- `Direct tools`
|
|
281
|
+
- core loop actions like lookup, recording important tool outcomes, finalize, last-feedback, capabilities, and doctor
|
|
282
|
+
- `Routine read resources`
|
|
283
|
+
- read-only state like last interaction, recent history, repo summary, and routine node views
|
|
284
|
+
- `Brokered advanced actions`
|
|
285
|
+
- lower-frequency inspect, admin, maintenance, and high-impact plan/execute flows exposed through a small broker tool surface instead of many direct schemas
|
|
286
|
+
|
|
287
|
+
For `Codex`, this means routine host-native interaction stays discoverable, while long-tail admin and maintenance actions are reached through brokered actions rather than public prompts or one-tool-per-action registration.
|
|
288
|
+
|
|
289
|
+
`Claude Code` still uses both `hooks` and `MCP`:
|
|
290
|
+
|
|
291
|
+
- hooks drive runtime capture and injection
|
|
292
|
+
- MCP drives inspect, control, and operational interaction
|
|
293
|
+
|
|
294
|
+
So the two hosts share the same product model, but they do not expose the exact same interaction shape.
|
|
131
295
|
|
|
132
296
|
For high-impact actions, ExperienceEngine does not execute immediately. It uses a:
|
|
133
297
|
|
|
@@ -155,104 +319,17 @@ Today, ExperienceEngine's minimal governance surface is:
|
|
|
155
319
|
|
|
156
320
|
A dedicated standalone review UI is still deferred. The current product shape is intentionally CLI/MCP-first rather than UI-first.
|
|
157
321
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
Experience Pack v1 is a **local shared-directory registry** for reusable experience assets.
|
|
322
|
+
That does not mean every host surface is identical today:
|
|
161
323
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
-
|
|
171
|
-
- packs are host-agnostic assets, not host-specific config fragments
|
|
172
|
-
- multiple local repos can reuse the same published pack
|
|
173
|
-
- there is no team sync, remote distribution, or UI workflow in v1
|
|
174
|
-
|
|
175
|
-
Current CLI surface:
|
|
176
|
-
|
|
177
|
-
```bash
|
|
178
|
-
ee pack list
|
|
179
|
-
ee pack inspect <pack-id>
|
|
180
|
-
ee pack status <pack-id> [version] [agents|codex|github|claude] [repo-path]
|
|
181
|
-
ee pack draft create <pack-id> <node-id[,node-id...]> [name...]
|
|
182
|
-
ee pack review <pack-id> <description...>
|
|
183
|
-
ee pack publish <pack-id>
|
|
184
|
-
ee pack compile <pack-id> [version]
|
|
185
|
-
ee pack compile <pack-id> [version] codex
|
|
186
|
-
ee pack compile <pack-id> [version] github
|
|
187
|
-
ee pack compile <pack-id> [version] claude
|
|
188
|
-
ee pack deploy <pack-id> [version] [agents|codex|github|claude] [repo-path] [--dry-run] [--force] [--status-only]
|
|
189
|
-
ee pack rollback <pack-id> <version>
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
Use this when you want to turn a set of proven nodes into a managed local asset instead of leaving them only in SQLite state.
|
|
193
|
-
|
|
194
|
-
### Compiler v1
|
|
195
|
-
|
|
196
|
-
Compiler v1 turns a published or rolled-back Experience Pack into host-friendly static artifacts.
|
|
197
|
-
|
|
198
|
-
It is intentionally conservative:
|
|
199
|
-
|
|
200
|
-
- it only reads Pack files that already exist in the local registry
|
|
201
|
-
- it only exports a static artifact
|
|
202
|
-
- it does **not** auto-write into your repo root
|
|
203
|
-
|
|
204
|
-
Example:
|
|
205
|
-
|
|
206
|
-
```bash
|
|
207
|
-
ee pack compile auth-debug-pack
|
|
208
|
-
ee pack compile auth-debug-pack codex
|
|
209
|
-
ee pack compile auth-debug-pack github
|
|
210
|
-
ee pack compile auth-debug-pack claude
|
|
211
|
-
ee pack deploy auth-debug-pack agents /path/to/repo --dry-run
|
|
212
|
-
ee pack deploy auth-debug-pack codex /path/to/repo
|
|
213
|
-
ee pack deploy github-pack github /path/to/repo --force
|
|
214
|
-
ee pack deploy auth-debug-pack claude /path/to/repo
|
|
215
|
-
ee pack deploy auth-debug-pack agents /path/to/repo --status-only
|
|
216
|
-
ee pack status auth-debug-pack agents /path/to/repo
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
Default output location:
|
|
220
|
-
|
|
221
|
-
```text
|
|
222
|
-
~/.experienceengine/packs/<pack-id>/compiled/<target>/<version>/
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
Artifacts produced:
|
|
226
|
-
|
|
227
|
-
- `AGENTS.md` for `agents` target
|
|
228
|
-
- `CODEX.md` for `codex` target
|
|
229
|
-
- `CLAUDE.md` for `claude` target
|
|
230
|
-
- `<pack-id>.agent.md` for `github` target
|
|
231
|
-
- `compile-report.json`
|
|
232
|
-
|
|
233
|
-
Deploying compiled artifacts:
|
|
234
|
-
|
|
235
|
-
- `agents` target writes to `<repo>/AGENTS.md`
|
|
236
|
-
- `codex` target writes to `<repo>/CODEX.md`
|
|
237
|
-
- `claude` target writes to `<repo>/CLAUDE.md`
|
|
238
|
-
- `github` target writes to `<repo>/.github/agents/<pack-id>.md`
|
|
239
|
-
|
|
240
|
-
Use `--dry-run` to preview the destination without writing files. Existing files are protected by default; use `--force` only when you intentionally want to overwrite the destination. Use `--status-only` to inspect whether the destination is `missing`, `up_to_date`, or `drifted` without writing anything.
|
|
241
|
-
|
|
242
|
-
If you only want the deployment state without invoking the deploy command shape, use:
|
|
243
|
-
|
|
244
|
-
```bash
|
|
245
|
-
ee pack status <pack-id> [version] [agents|codex|github|claude] [repo-path]
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
Compiler visibility is also exposed through:
|
|
249
|
-
|
|
250
|
-
- `ee pack list`
|
|
251
|
-
- `ee pack inspect <pack-id>`
|
|
252
|
-
- `ee inspect learning`
|
|
253
|
-
- `ee doctor <adapter>`
|
|
254
|
-
|
|
255
|
-
These surfaces show which targets the current Pack version has already compiled, whether a published Pack is stale, and the latest compile target/time.
|
|
324
|
+
- `Codex` and `Claude Code` use MCP-native host interaction for routine use
|
|
325
|
+
- `OpenClaw` now supports six in-session routine interaction families through the plugin path:
|
|
326
|
+
- what was injected
|
|
327
|
+
- why it matched
|
|
328
|
+
- helped / harmed feedback
|
|
329
|
+
- readiness in the current repo
|
|
330
|
+
- warm-up / first-value progress
|
|
331
|
+
- recent silence on the latest turn
|
|
332
|
+
- advanced operator actions still remain more explicit in CLI across all hosts
|
|
256
333
|
|
|
257
334
|
## Host-Specific Setup
|
|
258
335
|
|
|
@@ -264,6 +341,14 @@ Before installing ExperienceEngine into any host, make sure the host CLI itself
|
|
|
264
341
|
|
|
265
342
|
ExperienceEngine wires itself into an existing host environment. It does not install the host CLI for you.
|
|
266
343
|
|
|
344
|
+
If you are installing ExperienceEngine into a repo for the first time, prefer:
|
|
345
|
+
|
|
346
|
+
```bash
|
|
347
|
+
ee install codex
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
That command wires the shared MCP server and writes the local `AGENTS.md` instruction block for the current repo.
|
|
351
|
+
|
|
267
352
|
If you are operating or debugging the product directly, the explicit fallback commands still exist:
|
|
268
353
|
|
|
269
354
|
```bash
|
|
@@ -276,7 +361,14 @@ These are operator-facing controls, not the preferred public onboarding path.
|
|
|
276
361
|
|
|
277
362
|
## Embedding Retrieval
|
|
278
363
|
|
|
279
|
-
ExperienceEngine now supports a multi-provider embedding stack
|
|
364
|
+
ExperienceEngine now supports a multi-provider embedding stack inside a staged hybrid retrieval pipeline.
|
|
365
|
+
|
|
366
|
+
Retrieval is now hybrid by default:
|
|
367
|
+
|
|
368
|
+
- query normalization and rewrite happen first so retrieval keeps engineering intent when prompt wording shifts
|
|
369
|
+
- lexical and semantic retrieval are fused into one candidate shortlist instead of treating semantic retrieval as the unquestioned main path
|
|
370
|
+
- policy enrichment stays separate from retrieval scoring, so maturity and governance signals do not replace retrieval evidence
|
|
371
|
+
- reranking can promote a better-matching candidate above older score advantages, especially when an external reranker is configured
|
|
280
372
|
|
|
281
373
|
Default behavior (`embeddingProvider = "api"`):
|
|
282
374
|
|
|
@@ -287,6 +379,12 @@ Default behavior (`embeddingProvider = "api"`):
|
|
|
287
379
|
- if the API provider fails, ExperienceEngine falls back to the managed local model
|
|
288
380
|
- if the local model fails, ExperienceEngine falls back to legacy hash-based retrieval
|
|
289
381
|
|
|
382
|
+
Prompt-time behavior:
|
|
383
|
+
|
|
384
|
+
- first-turn or prompt-only retrieval may not have any tool names or failure signatures yet
|
|
385
|
+
- ExperienceEngine treats those fields as opportunistic evidence, not required retrieval inputs
|
|
386
|
+
- when prompt-only evidence is sparse, lexical, semantic, and policy stages still run with the task summary and context summary alone
|
|
387
|
+
|
|
290
388
|
Offline behavior (`embeddingProvider = "local"`):
|
|
291
389
|
|
|
292
390
|
- the default local model is `Xenova/multilingual-e5-small`
|
|
@@ -332,6 +430,8 @@ ee install openclaw
|
|
|
332
430
|
What happens:
|
|
333
431
|
- ExperienceEngine installs as an OpenClaw plugin/runtime integration (not `src/adapters/`)
|
|
334
432
|
- OpenClaw runtime events are used for intervention and persistence
|
|
433
|
+
- OpenClaw uses the shared background learning loop by default
|
|
434
|
+
- async hybrid posttask review stays disabled by default unless the runtime is explicitly overridden
|
|
335
435
|
- management remains mostly through CLI fallback today
|
|
336
436
|
- install ends with a short cold-start note so users know capture is active before the first formal hint appears
|
|
337
437
|
|
|
@@ -429,6 +529,9 @@ Useful commands:
|
|
|
429
529
|
```bash
|
|
430
530
|
ee doctor codex
|
|
431
531
|
ee upgrade codex
|
|
532
|
+
ee codex exec -C /path/to/repo -s read-only "Say ok and exit."
|
|
533
|
+
printf "Say ok and exit." | ee codex exec -C /path/to/repo -s read-only -
|
|
534
|
+
ee codex exec --ee-session-id ci-smoke-1 -C /path/to/repo -s read-only "Say ok and exit."
|
|
432
535
|
```
|
|
433
536
|
|
|
434
537
|
First validation:
|
|
@@ -447,6 +550,12 @@ Host note:
|
|
|
447
550
|
- ExperienceEngine installs a longer `startup_timeout_sec` for Codex automatically
|
|
448
551
|
- this avoids MCP handshake failures on slower local startups
|
|
449
552
|
- if Codex still cannot see ExperienceEngine in new sessions, re-run `ee install codex`
|
|
553
|
+
- `ee codex exec` is a deterministic wrapper for non-interactive runs
|
|
554
|
+
- the wrapper owns `lookup -> child codex exec -> record -> finalize` outside the child process
|
|
555
|
+
- for wrapped runs, ExperienceEngine removes the nested `experienceengine` MCP server from the child Codex config temporarily so lifecycle evidence is not double-written
|
|
556
|
+
- use prompt `-` when you want the wrapper to read task instructions from stdin; child Codex still receives a wrapped prompt argument and does not inherit stdin
|
|
557
|
+
- use `--ee-session-id <id>` when CI or debugging needs a stable ExperienceEngine session id
|
|
558
|
+
- `codex exec review` is not wrapped yet; keep using native Codex review or the MCP/CLI surfaces for review workflows
|
|
450
559
|
|
|
451
560
|
Developer validation docs:
|
|
452
561
|
|
|
@@ -463,6 +572,11 @@ Even though MCP is the main user interaction model for Claude/Codex, the `ee` CL
|
|
|
463
572
|
|
|
464
573
|
Use MCP first for normal day-to-day interaction inside Claude/Codex.
|
|
465
574
|
|
|
575
|
+
For the common routine loop, keep these actions in the host session first:
|
|
576
|
+
- ask what ExperienceEngine just injected
|
|
577
|
+
- ask why it matched
|
|
578
|
+
- mark the last intervention as helped or harmed
|
|
579
|
+
|
|
466
580
|
Use `ee` directly when:
|
|
467
581
|
- the host session cannot currently access MCP
|
|
468
582
|
- you are scripting or automating locally
|
|
@@ -494,7 +608,11 @@ ee rollback <backup-id>
|
|
|
494
608
|
|
|
495
609
|
## Doctor, Repair, and Upgrade
|
|
496
610
|
|
|
497
|
-
|
|
611
|
+
If something feels wrong in normal use, ask the host agent to inspect ExperienceEngine first.
|
|
612
|
+
|
|
613
|
+
Use the `ee` CLI when you need explicit local validation or the host cannot currently surface enough state.
|
|
614
|
+
|
|
615
|
+
CLI fallback:
|
|
498
616
|
|
|
499
617
|
```bash
|
|
500
618
|
ee doctor openclaw
|
|
@@ -511,7 +629,7 @@ What doctor tells you:
|
|
|
511
629
|
- how many raw task records / task runs / pending candidates / formal nodes exist today
|
|
512
630
|
- the next step to reach first durable value when the system is still warming up
|
|
513
631
|
|
|
514
|
-
Use repair when host wiring drifted:
|
|
632
|
+
Use repair when host wiring drifted and you need an explicit local recovery step:
|
|
515
633
|
|
|
516
634
|
```bash
|
|
517
635
|
ee repair openclaw
|
|
@@ -558,7 +676,7 @@ Managed artifacts live under:
|
|
|
558
676
|
|
|
559
677
|
Use backup when you want a restorable checkpoint of current ExperienceEngine state.
|
|
560
678
|
|
|
561
|
-
In an MCP-capable host, ask the agent to create a backup. The agent should
|
|
679
|
+
In an MCP-capable host, ask the agent to create a backup first. The agent should show a plan and only execute after you confirm.
|
|
562
680
|
|
|
563
681
|
CLI fallback:
|
|
564
682
|
|
|
@@ -587,6 +705,8 @@ Import restores a valid ExperienceEngine snapshot directory.
|
|
|
587
705
|
|
|
588
706
|
Before import overwrites current ExperienceEngine state, the system creates a safeguard backup automatically.
|
|
589
707
|
|
|
708
|
+
In MCP-capable hosts, prefer asking the agent to plan the import first.
|
|
709
|
+
|
|
590
710
|
CLI fallback:
|
|
591
711
|
|
|
592
712
|
```bash
|
|
@@ -599,6 +719,8 @@ Rollback restores one of the managed backups.
|
|
|
599
719
|
|
|
600
720
|
Before rollback overwrites current ExperienceEngine state, the system also creates a safeguard backup automatically.
|
|
601
721
|
|
|
722
|
+
In MCP-capable hosts, prefer asking the agent to plan the rollback first.
|
|
723
|
+
|
|
602
724
|
CLI fallback:
|
|
603
725
|
|
|
604
726
|
```bash
|
|
@@ -618,6 +740,11 @@ For risky changes:
|
|
|
618
740
|
|
|
619
741
|
### Review what happened last
|
|
620
742
|
|
|
743
|
+
For normal day-to-day usage in Claude Code or Codex, ask the host agent first:
|
|
744
|
+
|
|
745
|
+
- "What did ExperienceEngine just inject?"
|
|
746
|
+
- "Why did that ExperienceEngine hint match?"
|
|
747
|
+
|
|
621
748
|
Fallback CLI:
|
|
622
749
|
|
|
623
750
|
```bash
|
|
@@ -629,11 +756,11 @@ This view now also shows:
|
|
|
629
756
|
- origin record ids when they exist
|
|
630
757
|
- the node evidence summary attached to each injected hint
|
|
631
758
|
|
|
632
|
-
|
|
759
|
+
### Review recent injected turns
|
|
633
760
|
|
|
634
|
-
-
|
|
761
|
+
In MCP-capable hosts, ask:
|
|
635
762
|
|
|
636
|
-
|
|
763
|
+
- "Show the recent injected ExperienceEngine turns."
|
|
637
764
|
|
|
638
765
|
Fallback CLI:
|
|
639
766
|
|
|
@@ -641,12 +768,10 @@ Fallback CLI:
|
|
|
641
768
|
ee inspect recent injected 10
|
|
642
769
|
```
|
|
643
770
|
|
|
644
|
-
In MCP-capable hosts, ask:
|
|
645
|
-
|
|
646
|
-
- "Show the recent injected ExperienceEngine turns."
|
|
647
|
-
|
|
648
771
|
### Review current node inventory
|
|
649
772
|
|
|
773
|
+
In MCP-capable hosts, ask for the current active strategies or warnings first.
|
|
774
|
+
|
|
650
775
|
Fallback CLI:
|
|
651
776
|
|
|
652
777
|
```bash
|
|
@@ -658,6 +783,8 @@ ee inspect node <id>
|
|
|
658
783
|
|
|
659
784
|
### Manually correct feedback
|
|
660
785
|
|
|
786
|
+
In MCP-capable hosts, prefer asking the agent to mark the last intervention as helpful or harmful.
|
|
787
|
+
|
|
661
788
|
Fallback CLI:
|
|
662
789
|
|
|
663
790
|
```bash
|
|
@@ -673,6 +800,8 @@ ee feedback node <id> harmed
|
|
|
673
800
|
|
|
674
801
|
### Temporarily pause interventions
|
|
675
802
|
|
|
803
|
+
In MCP-capable hosts, prefer asking the agent to pause or resume ExperienceEngine for the current scope.
|
|
804
|
+
|
|
676
805
|
Fallback CLI:
|
|
677
806
|
|
|
678
807
|
```bash
|
|
@@ -687,12 +816,13 @@ What is already mature enough to use:
|
|
|
687
816
|
- real runtime integration on Claude Code
|
|
688
817
|
- real runtime integration on Codex
|
|
689
818
|
- MCP-native inspect/control workflows on Claude/Codex
|
|
819
|
+
- in-session routine review and feedback workflows on OpenClaw
|
|
690
820
|
- managed state backup and restore over MCP `plan + confirm`
|
|
691
821
|
|
|
692
822
|
What is still intentionally simpler:
|
|
693
|
-
- OpenClaw does not
|
|
823
|
+
- OpenClaw does not use the same MCP-native interaction shape as Claude/Codex
|
|
694
824
|
- user-facing docs are lighter than a full product site
|
|
695
|
-
- CLI fallback is still more complete than some host-
|
|
825
|
+
- CLI fallback is still more complete than some host-side surfaces
|
|
696
826
|
|
|
697
827
|
## If Something Feels Wrong
|
|
698
828
|
|
package/hooks/hooks.json
CHANGED
|
File without changes
|