@alan512/experienceengine 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +0 -0
- package/.claude-plugin/plugin.json +1 -1
- package/.env.example +0 -0
- package/.mcp.json +4 -8
- package/LICENSE +21 -0
- package/README.md +288 -95
- package/README.zh-CN.md +316 -65
- package/dist/adapters/claude-code/event-store.d.ts +0 -0
- package/dist/adapters/claude-code/event-store.js +0 -0
- package/dist/adapters/claude-code/event-store.js.map +0 -0
- package/dist/adapters/claude-code/hook-normalizer.d.ts +0 -0
- package/dist/adapters/claude-code/hook-normalizer.js +0 -0
- package/dist/adapters/claude-code/hook-normalizer.js.map +0 -0
- package/dist/adapters/claude-code/runtime-projection.d.ts +0 -0
- package/dist/adapters/claude-code/runtime-projection.js +0 -0
- package/dist/adapters/claude-code/runtime-projection.js.map +0 -0
- package/dist/adapters/claude-code/session-store.d.ts +1 -0
- package/dist/adapters/claude-code/session-store.js +24 -1
- package/dist/adapters/claude-code/session-store.js.map +1 -1
- package/dist/adapters/codex/action-registry.d.ts +84 -0
- package/dist/adapters/codex/action-registry.js +277 -0
- package/dist/adapters/codex/action-registry.js.map +1 -0
- package/dist/adapters/codex/broker-tools.d.ts +114 -0
- package/dist/adapters/codex/broker-tools.js +130 -0
- package/dist/adapters/codex/broker-tools.js.map +1 -0
- package/dist/adapters/codex/instruction-template.d.ts +3 -0
- package/dist/adapters/codex/instruction-template.js +12 -0
- package/dist/adapters/codex/instruction-template.js.map +1 -0
- package/dist/adapters/codex/mcp-server.d.ts +59 -41
- package/dist/adapters/codex/mcp-server.js +177 -728
- package/dist/adapters/codex/mcp-server.js.map +1 -1
- package/dist/analyzer/candidate-signals.d.ts +3 -1
- package/dist/analyzer/candidate-signals.js +159 -0
- package/dist/analyzer/candidate-signals.js.map +1 -1
- package/dist/analyzer/experience-analyzer.d.ts +0 -0
- package/dist/analyzer/experience-analyzer.js +0 -0
- package/dist/analyzer/experience-analyzer.js.map +0 -0
- package/dist/analyzer/extraction-evidence.d.ts +0 -0
- package/dist/analyzer/extraction-evidence.js +0 -0
- package/dist/analyzer/extraction-evidence.js.map +0 -0
- package/dist/analyzer/llm-learning-gate.d.ts +12 -1
- package/dist/analyzer/llm-learning-gate.js +672 -16
- package/dist/analyzer/llm-learning-gate.js.map +1 -1
- package/dist/analyzer/node-deduper.d.ts +0 -0
- package/dist/analyzer/node-deduper.js +0 -0
- package/dist/analyzer/node-deduper.js.map +0 -0
- package/dist/analyzer/node-normalizer.d.ts +0 -0
- package/dist/analyzer/node-normalizer.js +0 -0
- package/dist/analyzer/node-normalizer.js.map +0 -0
- package/dist/analyzer/storage-gate.d.ts +0 -0
- package/dist/analyzer/storage-gate.js +0 -0
- package/dist/analyzer/storage-gate.js.map +0 -0
- package/dist/analyzer/strategy-extractor.d.ts +0 -0
- package/dist/analyzer/strategy-extractor.js +0 -0
- package/dist/analyzer/strategy-extractor.js.map +0 -0
- package/dist/analyzer/warning-extractor.d.ts +0 -0
- package/dist/analyzer/warning-extractor.js +0 -0
- package/dist/analyzer/warning-extractor.js.map +0 -0
- package/dist/cli/commands/backup.d.ts +0 -0
- package/dist/cli/commands/backup.js +0 -0
- package/dist/cli/commands/backup.js.map +0 -0
- package/dist/cli/commands/claude-hook.d.ts +0 -0
- package/dist/cli/commands/claude-hook.js +23 -7
- package/dist/cli/commands/claude-hook.js.map +1 -1
- package/dist/cli/commands/codex-mcp-server.d.ts +0 -0
- package/dist/cli/commands/codex-mcp-server.js +0 -0
- package/dist/cli/commands/codex-mcp-server.js.map +0 -0
- package/dist/cli/commands/codex.d.ts +60 -0
- package/dist/cli/commands/codex.js +188 -0
- package/dist/cli/commands/codex.js.map +1 -0
- package/dist/cli/commands/config.d.ts +0 -0
- package/dist/cli/commands/config.js +88 -2
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/cool.d.ts +0 -0
- package/dist/cli/commands/cool.js +0 -0
- package/dist/cli/commands/cool.js.map +0 -0
- package/dist/cli/commands/disable.d.ts +0 -0
- package/dist/cli/commands/disable.js +0 -0
- package/dist/cli/commands/disable.js.map +0 -0
- package/dist/cli/commands/doctor.d.ts +4 -28
- package/dist/cli/commands/doctor.js +156 -68
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/enable.d.ts +0 -0
- package/dist/cli/commands/enable.js +0 -0
- package/dist/cli/commands/enable.js.map +0 -0
- package/dist/cli/commands/evaluate.d.ts +9 -3
- package/dist/cli/commands/evaluate.js +31 -5
- package/dist/cli/commands/evaluate.js.map +1 -1
- package/dist/cli/commands/export.d.ts +0 -0
- package/dist/cli/commands/export.js +0 -0
- package/dist/cli/commands/export.js.map +0 -0
- package/dist/cli/commands/feedback.d.ts +0 -0
- package/dist/cli/commands/feedback.js +4 -0
- package/dist/cli/commands/feedback.js.map +1 -1
- package/dist/cli/commands/import.d.ts +0 -0
- package/dist/cli/commands/import.js +0 -0
- package/dist/cli/commands/import.js.map +0 -0
- package/dist/cli/commands/init.d.ts +28 -0
- package/dist/cli/commands/init.js +432 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/inspect.d.ts +0 -0
- package/dist/cli/commands/inspect.js +271 -37
- package/dist/cli/commands/inspect.js.map +1 -1
- package/dist/cli/commands/install.d.ts +0 -0
- package/dist/cli/commands/install.js +9 -0
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/maintenance.d.ts +0 -0
- package/dist/cli/commands/maintenance.js +1 -1
- package/dist/cli/commands/maintenance.js.map +1 -1
- package/dist/cli/commands/mcp-server.d.ts +0 -0
- package/dist/cli/commands/mcp-server.js +4 -0
- package/dist/cli/commands/mcp-server.js.map +1 -1
- package/dist/cli/commands/models.d.ts +0 -0
- package/dist/cli/commands/models.js +0 -0
- package/dist/cli/commands/models.js.map +0 -0
- package/dist/cli/commands/repair.d.ts +0 -0
- package/dist/cli/commands/repair.js +3 -3
- package/dist/cli/commands/repair.js.map +1 -1
- package/dist/cli/commands/retire.d.ts +0 -0
- package/dist/cli/commands/retire.js +0 -0
- package/dist/cli/commands/retire.js.map +0 -0
- package/dist/cli/commands/rollback.d.ts +0 -0
- package/dist/cli/commands/rollback.js +0 -0
- package/dist/cli/commands/rollback.js.map +0 -0
- package/dist/cli/commands/stats.d.ts +0 -0
- package/dist/cli/commands/stats.js +0 -0
- package/dist/cli/commands/stats.js.map +0 -0
- package/dist/cli/commands/status.d.ts +0 -0
- package/dist/cli/commands/status.js +89 -7
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/upgrade.d.ts +0 -0
- package/dist/cli/commands/upgrade.js +0 -0
- package/dist/cli/commands/upgrade.js.map +0 -0
- package/dist/cli/dispatch.d.ts +0 -0
- package/dist/cli/dispatch.js +36 -9
- package/dist/cli/dispatch.js.map +1 -1
- package/dist/cli/index.d.ts +0 -0
- package/dist/cli/index.js.map +0 -0
- package/dist/cli/state-model.d.ts +14 -0
- package/dist/cli/state-model.js +23 -0
- package/dist/cli/state-model.js.map +1 -0
- package/dist/config/config-schema.d.ts +209 -0
- package/dist/config/config-schema.js +168 -1
- package/dist/config/config-schema.js.map +1 -1
- package/dist/config/default-config.d.ts +0 -0
- package/dist/config/default-config.js +22 -1
- package/dist/config/default-config.js.map +1 -1
- package/dist/config/load-config.d.ts +0 -0
- package/dist/config/load-config.js +91 -2
- package/dist/config/load-config.js.map +1 -1
- package/dist/config/path-resolver.d.ts +0 -1
- package/dist/config/path-resolver.js +0 -2
- package/dist/config/path-resolver.js.map +1 -1
- package/dist/config/runtime-env.d.ts +8 -0
- package/dist/config/runtime-env.js +14 -0
- package/dist/config/runtime-env.js.map +1 -0
- package/dist/config/secrets-store.d.ts +15 -0
- package/dist/config/secrets-store.js +56 -0
- package/dist/config/secrets-store.js.map +1 -0
- package/dist/config/settings-store.d.ts +29 -0
- package/dist/config/settings-store.js +55 -0
- package/dist/config/settings-store.js.map +1 -1
- package/dist/controller/candidate-retriever.d.ts +49 -2
- package/dist/controller/candidate-retriever.js +258 -125
- package/dist/controller/candidate-retriever.js.map +1 -1
- package/dist/controller/injection-renderer.d.ts +0 -0
- package/dist/controller/injection-renderer.js +52 -1
- package/dist/controller/injection-renderer.js.map +1 -1
- package/dist/controller/injection-scorecard.d.ts +2 -2
- package/dist/controller/injection-scorecard.js +47 -1
- package/dist/controller/injection-scorecard.js.map +1 -1
- package/dist/controller/inline-notice.d.ts +0 -0
- package/dist/controller/inline-notice.js +0 -0
- package/dist/controller/inline-notice.js.map +0 -0
- package/dist/controller/intervention-controller.d.ts +3 -2
- package/dist/controller/intervention-controller.js +339 -17
- package/dist/controller/intervention-controller.js.map +1 -1
- package/dist/controller/lexical-retriever.d.ts +14 -0
- package/dist/controller/lexical-retriever.js +117 -0
- package/dist/controller/lexical-retriever.js.map +1 -0
- package/dist/controller/model-reranker.d.ts +20 -0
- package/dist/controller/model-reranker.js +187 -0
- package/dist/controller/model-reranker.js.map +1 -0
- package/dist/controller/node-ranker.d.ts +0 -0
- package/dist/controller/node-ranker.js +1 -0
- package/dist/controller/node-ranker.js.map +1 -1
- package/dist/controller/policy-enricher.d.ts +10 -0
- package/dist/controller/policy-enricher.js +186 -0
- package/dist/controller/policy-enricher.js.map +1 -0
- package/dist/controller/query-rewrite.d.ts +8 -0
- package/dist/controller/query-rewrite.js +69 -0
- package/dist/controller/query-rewrite.js.map +1 -0
- package/dist/controller/retrieval-context.d.ts +3 -0
- package/dist/controller/retrieval-context.js +37 -0
- package/dist/controller/retrieval-context.js.map +1 -0
- package/dist/controller/second-opinion-gate.d.ts +41 -0
- package/dist/controller/second-opinion-gate.js +225 -0
- package/dist/controller/second-opinion-gate.js.map +1 -0
- package/dist/controller/trigger-evaluator.d.ts +27 -2
- package/dist/controller/trigger-evaluator.js +63 -3
- package/dist/controller/trigger-evaluator.js.map +1 -1
- package/dist/distillation/errors.d.ts +0 -0
- package/dist/distillation/errors.js +0 -0
- package/dist/distillation/errors.js.map +0 -0
- package/dist/distillation/experience-family.d.ts +4 -0
- package/dist/distillation/experience-family.js +14 -0
- package/dist/distillation/experience-family.js.map +1 -0
- package/dist/distillation/host-llm.d.ts +1 -0
- package/dist/distillation/host-llm.js +5 -1
- package/dist/distillation/host-llm.js.map +1 -1
- package/dist/distillation/llm-distiller.d.ts +0 -0
- package/dist/distillation/llm-distiller.js +4 -0
- package/dist/distillation/llm-distiller.js.map +1 -1
- package/dist/distillation/merge-decider.d.ts +0 -0
- package/dist/distillation/merge-decider.js +4 -0
- package/dist/distillation/merge-decider.js.map +1 -1
- package/dist/distillation/model-catalog.d.ts +0 -0
- package/dist/distillation/model-catalog.js +0 -0
- package/dist/distillation/model-catalog.js.map +0 -0
- package/dist/distillation/prompt-contract.d.ts +1 -1
- package/dist/distillation/prompt-contract.js +6 -1
- package/dist/distillation/prompt-contract.js.map +1 -1
- package/dist/distillation/providers/anthropic.d.ts +0 -0
- package/dist/distillation/providers/anthropic.js +0 -0
- package/dist/distillation/providers/anthropic.js.map +0 -0
- package/dist/distillation/providers/azure-openai.d.ts +0 -0
- package/dist/distillation/providers/azure-openai.js +0 -0
- package/dist/distillation/providers/azure-openai.js.map +0 -0
- package/dist/distillation/providers/baidu-qianfan.d.ts +0 -0
- package/dist/distillation/providers/baidu-qianfan.js +0 -0
- package/dist/distillation/providers/baidu-qianfan.js.map +0 -0
- package/dist/distillation/providers/bedrock.d.ts +0 -0
- package/dist/distillation/providers/bedrock.js +0 -0
- package/dist/distillation/providers/bedrock.js.map +0 -0
- package/dist/distillation/providers/dashscope.d.ts +0 -0
- package/dist/distillation/providers/dashscope.js +0 -0
- package/dist/distillation/providers/dashscope.js.map +0 -0
- package/dist/distillation/providers/deepseek.d.ts +0 -0
- package/dist/distillation/providers/deepseek.js +0 -0
- package/dist/distillation/providers/deepseek.js.map +0 -0
- package/dist/distillation/providers/gemini.d.ts +0 -0
- package/dist/distillation/providers/gemini.js +5 -1
- package/dist/distillation/providers/gemini.js.map +1 -1
- package/dist/distillation/providers/google-adc.d.ts +0 -0
- package/dist/distillation/providers/google-adc.js +0 -0
- package/dist/distillation/providers/google-adc.js.map +0 -0
- package/dist/distillation/providers/minimax.d.ts +0 -0
- package/dist/distillation/providers/minimax.js +0 -0
- package/dist/distillation/providers/minimax.js.map +0 -0
- package/dist/distillation/providers/moonshot.d.ts +0 -0
- package/dist/distillation/providers/moonshot.js +0 -0
- package/dist/distillation/providers/moonshot.js.map +0 -0
- package/dist/distillation/providers/openai-compatible-factory.d.ts +0 -0
- package/dist/distillation/providers/openai-compatible-factory.js +0 -0
- package/dist/distillation/providers/openai-compatible-factory.js.map +0 -0
- package/dist/distillation/providers/openai-compatible.d.ts +0 -0
- package/dist/distillation/providers/openai-compatible.js +0 -0
- package/dist/distillation/providers/openai-compatible.js.map +0 -0
- package/dist/distillation/providers/openai.d.ts +0 -0
- package/dist/distillation/providers/openai.js +0 -0
- package/dist/distillation/providers/openai.js.map +0 -0
- package/dist/distillation/providers/openrouter.d.ts +0 -0
- package/dist/distillation/providers/openrouter.js +0 -0
- package/dist/distillation/providers/openrouter.js.map +0 -0
- package/dist/distillation/providers/registry.d.ts +0 -0
- package/dist/distillation/providers/registry.js +0 -0
- package/dist/distillation/providers/registry.js.map +0 -0
- package/dist/distillation/providers/siliconflow.d.ts +0 -0
- package/dist/distillation/providers/siliconflow.js +0 -0
- package/dist/distillation/providers/siliconflow.js.map +0 -0
- package/dist/distillation/providers/tencent-hunyuan.d.ts +0 -0
- package/dist/distillation/providers/tencent-hunyuan.js +0 -0
- package/dist/distillation/providers/tencent-hunyuan.js.map +0 -0
- package/dist/distillation/providers/types.d.ts +0 -0
- package/dist/distillation/providers/types.js +0 -0
- package/dist/distillation/providers/types.js.map +0 -0
- package/dist/distillation/providers/volcengine-ark.d.ts +0 -0
- package/dist/distillation/providers/volcengine-ark.js +0 -0
- package/dist/distillation/providers/volcengine-ark.js.map +0 -0
- package/dist/distillation/providers/zhipu.d.ts +0 -0
- package/dist/distillation/providers/zhipu.js +0 -0
- package/dist/distillation/providers/zhipu.js.map +0 -0
- package/dist/distillation/queue-worker.d.ts +0 -0
- package/dist/distillation/queue-worker.js +78 -9
- package/dist/distillation/queue-worker.js.map +1 -1
- package/dist/distillation/types.d.ts +0 -0
- package/dist/distillation/types.js +0 -0
- package/dist/distillation/types.js.map +0 -0
- package/dist/evaluation/benchmark-report.d.ts +0 -0
- package/dist/evaluation/benchmark-report.js +0 -0
- package/dist/evaluation/benchmark-report.js.map +0 -0
- package/dist/evaluation/benchmark-summary.d.ts +0 -0
- package/dist/evaluation/benchmark-summary.js +0 -0
- package/dist/evaluation/benchmark-summary.js.map +0 -0
- package/dist/evaluation/codex-lifecycle-validation.d.ts +60 -0
- package/dist/evaluation/codex-lifecycle-validation.js +233 -0
- package/dist/evaluation/codex-lifecycle-validation.js.map +1 -0
- package/dist/evaluation/hybrid-phase1-rollout-summary.d.ts +63 -0
- package/dist/evaluation/hybrid-phase1-rollout-summary.js +108 -0
- package/dist/evaluation/hybrid-phase1-rollout-summary.js.map +1 -0
- package/dist/evaluation/hybrid-phase3-gate-metrics.d.ts +26 -0
- package/dist/evaluation/hybrid-phase3-gate-metrics.js +23 -0
- package/dist/evaluation/hybrid-phase3-gate-metrics.js.map +1 -0
- package/dist/evaluation/openclaw-baseline.d.ts +8 -0
- package/dist/evaluation/openclaw-baseline.js +27 -0
- package/dist/evaluation/openclaw-baseline.js.map +1 -1
- package/dist/evaluation/openclaw-scenarios.d.ts +0 -0
- package/dist/evaluation/openclaw-scenarios.js +0 -0
- package/dist/evaluation/openclaw-scenarios.js.map +0 -0
- package/dist/experience-management/governance-observability.d.ts +13 -0
- package/dist/experience-management/governance-observability.js +37 -0
- package/dist/experience-management/governance-observability.js.map +1 -0
- package/dist/experience-management/node-lifecycle-governance.d.ts +8 -0
- package/dist/experience-management/node-lifecycle-governance.js +80 -0
- package/dist/experience-management/node-lifecycle-governance.js.map +1 -0
- package/dist/experience-management/task-management-signals.d.ts +29 -0
- package/dist/experience-management/task-management-signals.js +148 -0
- package/dist/experience-management/task-management-signals.js.map +1 -0
- package/dist/feedback/automatic-attribution.d.ts +0 -0
- package/dist/feedback/automatic-attribution.js +0 -0
- package/dist/feedback/automatic-attribution.js.map +0 -0
- package/dist/feedback/feedback-manager.d.ts +4 -1
- package/dist/feedback/feedback-manager.js +11 -22
- package/dist/feedback/feedback-manager.js.map +1 -1
- package/dist/feedback/harm-detector.d.ts +0 -0
- package/dist/feedback/harm-detector.js +0 -0
- package/dist/feedback/harm-detector.js.map +0 -0
- package/dist/feedback/state-transition.d.ts +6 -1
- package/dist/feedback/state-transition.js +14 -2
- package/dist/feedback/state-transition.js.map +1 -1
- package/dist/feedback/stats-updater.d.ts +0 -0
- package/dist/feedback/stats-updater.js +0 -0
- package/dist/feedback/stats-updater.js.map +0 -0
- package/dist/hybrid/capsule-builder.d.ts +23 -0
- package/dist/hybrid/capsule-builder.js +114 -0
- package/dist/hybrid/capsule-builder.js.map +1 -0
- package/dist/hybrid/explain-provider-client.d.ts +19 -0
- package/dist/hybrid/explain-provider-client.js +34 -0
- package/dist/hybrid/explain-provider-client.js.map +1 -0
- package/dist/hybrid/postmortem-provider-client.d.ts +19 -0
- package/dist/hybrid/postmortem-provider-client.js +34 -0
- package/dist/hybrid/postmortem-provider-client.js.map +1 -0
- package/dist/hybrid/rollout.d.ts +9 -0
- package/dist/hybrid/rollout.js +49 -0
- package/dist/hybrid/rollout.js.map +1 -0
- package/dist/hybrid/router.d.ts +4 -0
- package/dist/hybrid/router.js +62 -0
- package/dist/hybrid/router.js.map +1 -0
- package/dist/hybrid/types.d.ts +140 -0
- package/dist/{compiler → hybrid}/types.js +0 -0
- package/dist/{packs → hybrid}/types.js.map +1 -1
- package/dist/hybrid/validators.d.ts +5 -0
- package/dist/hybrid/validators.js +94 -0
- package/dist/hybrid/validators.js.map +1 -0
- package/dist/hybrid/worker-client.d.ts +61 -0
- package/dist/hybrid/worker-client.js +196 -0
- package/dist/hybrid/worker-client.js.map +1 -0
- package/dist/hybrid/workers/explain-decision-llm.d.ts +8 -0
- package/dist/hybrid/workers/explain-decision-llm.js +152 -0
- package/dist/hybrid/workers/explain-decision-llm.js.map +1 -0
- package/dist/hybrid/workers/explain-decision.d.ts +2 -0
- package/dist/hybrid/workers/explain-decision.js +40 -0
- package/dist/hybrid/workers/explain-decision.js.map +1 -0
- package/dist/hybrid/workers/postmortem-review-llm.d.ts +8 -0
- package/dist/hybrid/workers/postmortem-review-llm.js +398 -0
- package/dist/hybrid/workers/postmortem-review-llm.js.map +1 -0
- package/dist/hybrid/workers/postmortem-review.d.ts +2 -0
- package/dist/hybrid/workers/postmortem-review.js +66 -0
- package/dist/hybrid/workers/postmortem-review.js.map +1 -0
- package/dist/index.d.ts +0 -0
- package/dist/index.js +0 -0
- package/dist/index.js.map +0 -0
- package/dist/input/context-summary-adapter.d.ts +0 -0
- package/dist/input/context-summary-adapter.js +0 -0
- package/dist/input/context-summary-adapter.js.map +0 -0
- package/dist/input/input-adapter.d.ts +0 -0
- package/dist/input/input-adapter.js +2 -1
- package/dist/input/input-adapter.js.map +1 -1
- package/dist/input/outcome-resolver.d.ts +0 -0
- package/dist/input/outcome-resolver.js +5 -5
- package/dist/input/outcome-resolver.js.map +1 -1
- package/dist/input/scope-resolver.d.ts +0 -0
- package/dist/input/scope-resolver.js +0 -0
- package/dist/input/scope-resolver.js.map +0 -0
- package/dist/input/tasktype-resolver.d.ts +0 -0
- package/dist/input/tasktype-resolver.js +2 -0
- package/dist/input/tasktype-resolver.js.map +1 -1
- package/dist/input/tool-event-significance.d.ts +5 -0
- package/dist/input/tool-event-significance.js +7 -0
- package/dist/input/tool-event-significance.js.map +1 -0
- package/dist/install/claude-cli.d.ts +0 -0
- package/dist/install/claude-cli.js +0 -0
- package/dist/install/claude-cli.js.map +0 -0
- package/dist/install/claude-code-doctor.d.ts +8 -2
- package/dist/install/claude-code-doctor.js +54 -9
- package/dist/install/claude-code-doctor.js.map +1 -1
- package/dist/install/claude-code-installer.d.ts +0 -0
- package/dist/install/claude-code-installer.js +50 -1
- package/dist/install/claude-code-installer.js.map +1 -1
- package/dist/install/claude-marketplace-state.d.ts +14 -0
- package/dist/install/claude-marketplace-state.js +47 -0
- package/dist/install/claude-marketplace-state.js.map +1 -0
- package/dist/install/claude-runtime-target.d.ts +0 -0
- package/dist/install/claude-runtime-target.js +0 -0
- package/dist/install/claude-runtime-target.js.map +0 -0
- package/dist/install/codex-cli.d.ts +15 -0
- package/dist/install/codex-cli.js +55 -3
- package/dist/install/codex-cli.js.map +1 -1
- package/dist/install/codex-installer.d.ts +18 -0
- package/dist/install/codex-installer.js +91 -1
- package/dist/install/codex-installer.js.map +1 -1
- package/dist/install/codex-runtime-target.d.ts +0 -0
- package/dist/install/codex-runtime-target.js +0 -0
- package/dist/install/codex-runtime-target.js.map +0 -0
- package/dist/install/host-detection.d.ts +0 -0
- package/dist/install/host-detection.js +0 -0
- package/dist/install/host-detection.js.map +0 -0
- package/dist/install/openclaw-cli.d.ts +11 -0
- package/dist/install/openclaw-cli.js +0 -0
- package/dist/install/openclaw-cli.js.map +1 -1
- package/dist/install/openclaw-installer.d.ts +12 -0
- package/dist/install/openclaw-installer.js +198 -31
- package/dist/install/openclaw-installer.js.map +1 -1
- package/dist/install/public-install.d.ts +14 -4
- package/dist/install/public-install.js +20 -7
- package/dist/install/public-install.js.map +1 -1
- package/dist/install/registry-health.d.ts +0 -0
- package/dist/install/registry-health.js +0 -0
- package/dist/install/registry-health.js.map +0 -0
- package/dist/interaction/operational-actions-service.d.ts +0 -0
- package/dist/interaction/operational-actions-service.js +0 -0
- package/dist/interaction/operational-actions-service.js.map +0 -0
- package/dist/interaction/operational-service.d.ts +0 -0
- package/dist/interaction/operational-service.js +0 -0
- package/dist/interaction/operational-service.js.map +0 -0
- package/dist/interaction/repo-summary.d.ts +3 -17
- package/dist/interaction/repo-summary.js +10 -27
- package/dist/interaction/repo-summary.js.map +1 -1
- package/dist/interaction/service.d.ts +59 -95
- package/dist/interaction/service.js +505 -266
- package/dist/interaction/service.js.map +1 -1
- package/dist/interaction/state-artifact-service.d.ts +0 -0
- package/dist/interaction/state-artifact-service.js +0 -0
- package/dist/interaction/state-artifact-service.js.map +0 -0
- package/dist/maintenance/claude-validate-print.d.ts +0 -0
- package/dist/maintenance/claude-validate-print.js +0 -0
- package/dist/maintenance/claude-validate-print.js.map +0 -0
- package/dist/maintenance/embedding-smoke.d.ts +0 -0
- package/dist/maintenance/embedding-smoke.js +0 -0
- package/dist/maintenance/embedding-smoke.js.map +0 -0
- package/dist/maintenance/redistill-rule-nodes.d.ts +0 -0
- package/dist/maintenance/redistill-rule-nodes.js +0 -0
- package/dist/maintenance/redistill-rule-nodes.js.map +0 -0
- package/dist/maintenance/scope-merge.d.ts +0 -1
- package/dist/maintenance/scope-merge.js +0 -20
- package/dist/maintenance/scope-merge.js.map +1 -1
- package/dist/maintenance/warning-variant-cleanup.d.ts +0 -0
- package/dist/maintenance/warning-variant-cleanup.js +0 -0
- package/dist/maintenance/warning-variant-cleanup.js.map +0 -0
- package/dist/plugin/fixture-sanitizer.d.ts +0 -0
- package/dist/plugin/fixture-sanitizer.js +0 -0
- package/dist/plugin/fixture-sanitizer.js.map +0 -0
- package/dist/plugin/hooks/before-prompt-build.d.ts +1 -0
- package/dist/plugin/hooks/before-prompt-build.js +4 -1
- package/dist/plugin/hooks/before-prompt-build.js.map +1 -1
- package/dist/plugin/hooks/message-sent.d.ts +0 -0
- package/dist/plugin/hooks/message-sent.js +0 -0
- package/dist/plugin/hooks/message-sent.js.map +0 -0
- package/dist/plugin/hooks/tool-result-persist.d.ts +0 -0
- package/dist/plugin/hooks/tool-result-persist.js +0 -0
- package/dist/plugin/hooks/tool-result-persist.js.map +0 -0
- package/dist/plugin/openclaw-install-state.d.ts +39 -0
- package/dist/plugin/openclaw-install-state.js +24 -0
- package/dist/plugin/openclaw-install-state.js.map +1 -0
- package/dist/plugin/openclaw-plugin.d.ts +148 -0
- package/dist/plugin/openclaw-plugin.js +98 -7
- package/dist/plugin/openclaw-plugin.js.map +1 -1
- package/dist/plugin/openclaw-routine-interaction.d.ts +7 -0
- package/dist/plugin/openclaw-routine-interaction.js +301 -0
- package/dist/plugin/openclaw-routine-interaction.js.map +1 -0
- package/dist/plugin/openclaw-runtime-defaults.d.ts +16 -0
- package/dist/plugin/openclaw-runtime-defaults.js +16 -0
- package/dist/plugin/openclaw-runtime-defaults.js.map +1 -0
- package/dist/plugin/runtime-capture.d.ts +0 -0
- package/dist/plugin/runtime-capture.js +0 -0
- package/dist/plugin/runtime-capture.js.map +0 -0
- package/dist/plugin/runtime-helpers.d.ts +0 -0
- package/dist/plugin/runtime-helpers.js +0 -0
- package/dist/plugin/runtime-helpers.js.map +0 -0
- package/dist/runtime/service.d.ts +33 -6
- package/dist/runtime/service.js +427 -50
- package/dist/runtime/service.js.map +1 -1
- package/dist/store/logs/jsonl-logger.d.ts +0 -0
- package/dist/store/logs/jsonl-logger.js +0 -0
- package/dist/store/logs/jsonl-logger.js.map +0 -0
- package/dist/store/sqlite/db.d.ts +0 -0
- package/dist/store/sqlite/db.js +37 -0
- package/dist/store/sqlite/db.js.map +1 -1
- package/dist/store/sqlite/migrations.d.ts +0 -0
- package/dist/store/sqlite/migrations.js +0 -0
- package/dist/store/sqlite/migrations.js.map +0 -0
- package/dist/store/sqlite/repositories/candidate-repo.d.ts +0 -0
- package/dist/store/sqlite/repositories/candidate-repo.js +8 -2
- package/dist/store/sqlite/repositories/candidate-repo.js.map +1 -1
- package/dist/store/sqlite/repositories/distillation-job-repo.d.ts +0 -0
- package/dist/store/sqlite/repositories/distillation-job-repo.js +0 -0
- package/dist/store/sqlite/repositories/distillation-job-repo.js.map +0 -0
- package/dist/store/sqlite/repositories/hybrid-invocation-trace-repo.d.ts +11 -0
- package/dist/store/sqlite/repositories/hybrid-invocation-trace-repo.js +76 -0
- package/dist/store/sqlite/repositories/hybrid-invocation-trace-repo.js.map +1 -0
- package/dist/store/sqlite/repositories/hybrid-review-artifact-repo.d.ts +11 -0
- package/dist/store/sqlite/repositories/hybrid-review-artifact-repo.js +73 -0
- package/dist/store/sqlite/repositories/hybrid-review-artifact-repo.js.map +1 -0
- package/dist/store/sqlite/repositories/injection-repo.d.ts +1 -0
- package/dist/store/sqlite/repositories/injection-repo.js +11 -0
- package/dist/store/sqlite/repositories/injection-repo.js.map +1 -1
- package/dist/store/sqlite/repositories/input-record-repo.d.ts +3 -0
- package/dist/store/sqlite/repositories/input-record-repo.js +35 -0
- package/dist/store/sqlite/repositories/input-record-repo.js.map +1 -1
- package/dist/store/sqlite/repositories/node-repo.d.ts +3 -0
- package/dist/store/sqlite/repositories/node-repo.js +62 -8
- package/dist/store/sqlite/repositories/node-repo.js.map +1 -1
- package/dist/store/sqlite/repositories/outcome-record-repo.d.ts +0 -0
- package/dist/store/sqlite/repositories/outcome-record-repo.js +0 -0
- package/dist/store/sqlite/repositories/outcome-record-repo.js.map +0 -0
- package/dist/store/sqlite/repositories/review-event-repo.d.ts +0 -0
- package/dist/store/sqlite/repositories/review-event-repo.js +0 -0
- package/dist/store/sqlite/repositories/review-event-repo.js.map +0 -0
- package/dist/store/sqlite/repositories/scope-repo.d.ts +0 -0
- package/dist/store/sqlite/repositories/scope-repo.js +0 -0
- package/dist/store/sqlite/repositories/scope-repo.js.map +0 -0
- package/dist/store/sqlite/repositories/stats-repo.d.ts +0 -0
- package/dist/store/sqlite/repositories/stats-repo.js +0 -0
- package/dist/store/sqlite/repositories/stats-repo.js.map +0 -0
- package/dist/store/sqlite/repositories/task-run-repo.d.ts +2 -0
- package/dist/store/sqlite/repositories/task-run-repo.js +18 -2
- package/dist/store/sqlite/repositories/task-run-repo.js.map +1 -1
- package/dist/store/sqlite/schema.sql +49 -49
- package/dist/store/vector/api-embedding-provider.d.ts +2 -0
- package/dist/store/vector/api-embedding-provider.js +23 -19
- package/dist/store/vector/api-embedding-provider.js.map +1 -1
- package/dist/store/vector/embeddings.d.ts +1 -1
- package/dist/store/vector/embeddings.js +26 -5
- package/dist/store/vector/embeddings.js.map +1 -1
- package/dist/store/vector/lancedb.d.ts +0 -0
- package/dist/store/vector/lancedb.js +0 -0
- package/dist/store/vector/lancedb.js.map +0 -0
- package/dist/store/vector/local-provider.d.ts +0 -0
- package/dist/store/vector/local-provider.js +0 -0
- package/dist/store/vector/local-provider.js.map +0 -0
- package/dist/store/vector/node-index.d.ts +0 -0
- package/dist/store/vector/node-index.js +0 -0
- package/dist/store/vector/node-index.js.map +0 -0
- package/dist/store/vector/provider-types.d.ts +0 -0
- package/dist/store/vector/provider-types.js +0 -0
- package/dist/store/vector/provider-types.js.map +0 -0
- package/dist/types/analyzer.d.ts +0 -0
- package/dist/types/analyzer.js +0 -0
- package/dist/types/analyzer.js.map +0 -0
- package/dist/types/domain.d.ts +166 -47
- package/dist/types/domain.js +0 -0
- package/dist/types/domain.js.map +0 -0
- package/dist/types/plugin.d.ts +3 -1
- package/dist/types/plugin.js +0 -0
- package/dist/types/plugin.js.map +0 -0
- package/dist/types/storage.d.ts +0 -0
- package/dist/types/storage.js +0 -0
- package/dist/types/storage.js.map +0 -0
- package/dist/utils/clock.d.ts +0 -0
- package/dist/utils/clock.js +0 -0
- package/dist/utils/clock.js.map +0 -0
- package/dist/utils/errors.d.ts +0 -0
- package/dist/utils/errors.js +0 -0
- package/dist/utils/errors.js.map +0 -0
- package/dist/utils/hashing.d.ts +0 -0
- package/dist/utils/hashing.js +0 -0
- package/dist/utils/hashing.js.map +0 -0
- package/dist/utils/ids.d.ts +0 -0
- package/dist/utils/ids.js +0 -0
- package/dist/utils/ids.js.map +0 -0
- package/dist/utils/text.d.ts +0 -0
- package/dist/utils/text.js +0 -0
- package/dist/utils/text.js.map +0 -0
- package/dist/version/package-version.d.ts +0 -0
- package/dist/version/package-version.js +0 -0
- package/dist/version/package-version.js.map +0 -0
- package/dist/version/remote-release.d.ts +0 -0
- package/dist/version/remote-release.js +0 -0
- package/dist/version/remote-release.js.map +0 -0
- package/docs/releases/v0.1.0.md +0 -0
- package/docs/releases/v0.1.1.md +0 -0
- package/docs/releases/v0.1.2.md +3 -3
- package/docs/releases/v0.1.3.md +95 -0
- package/docs/releases/v0.2.0.md +85 -0
- package/docs/user-guide.md +263 -133
- package/hooks/hooks.json +0 -0
- package/openclaw.plugin.json +81 -1
- package/package.json +25 -16
- package/plugins/claude-code-experienceengine/.claude-plugin/plugin.json +1 -1
- package/plugins/claude-code-experienceengine/.mcp.json +4 -3
- package/plugins/claude-code-experienceengine/hooks/hooks.json +0 -0
- package/plugins/claude-code-experienceengine/scripts/claude-hook.sh +30 -1
- package/plugins/claude-code-experienceengine/scripts/install-deps.sh +41 -6
- package/scripts/claude-plugin/claude-hook.sh +0 -0
- package/scripts/claude-plugin/install-deps.sh +0 -0
- package/dist/cli/commands/pack.d.ts +0 -1
- package/dist/cli/commands/pack.js +0 -321
- package/dist/cli/commands/pack.js.map +0 -1
- package/dist/compiler/agents-renderer.d.ts +0 -4
- package/dist/compiler/agents-renderer.js +0 -105
- package/dist/compiler/agents-renderer.js.map +0 -1
- package/dist/compiler/claude-renderer.d.ts +0 -2
- package/dist/compiler/claude-renderer.js +0 -40
- package/dist/compiler/claude-renderer.js.map +0 -1
- package/dist/compiler/codex-renderer.d.ts +0 -2
- package/dist/compiler/codex-renderer.js +0 -40
- package/dist/compiler/codex-renderer.js.map +0 -1
- package/dist/compiler/compiler.d.ts +0 -4
- package/dist/compiler/compiler.js +0 -87
- package/dist/compiler/compiler.js.map +0 -1
- package/dist/compiler/deployer.d.ts +0 -21
- package/dist/compiler/deployer.js +0 -64
- package/dist/compiler/deployer.js.map +0 -1
- package/dist/compiler/github-renderer.d.ts +0 -2
- package/dist/compiler/github-renderer.js +0 -63
- package/dist/compiler/github-renderer.js.map +0 -1
- package/dist/compiler/types.d.ts +0 -45
- package/dist/compiler/types.js.map +0 -1
- package/dist/interaction/pack-actions-service.d.ts +0 -59
- package/dist/interaction/pack-actions-service.js +0 -172
- package/dist/interaction/pack-actions-service.js.map +0 -1
- package/dist/packs/fs-registry.d.ts +0 -27
- package/dist/packs/fs-registry.js +0 -216
- package/dist/packs/fs-registry.js.map +0 -1
- package/dist/packs/index-sync.d.ts +0 -9
- package/dist/packs/index-sync.js +0 -54
- package/dist/packs/index-sync.js.map +0 -1
- package/dist/packs/types.d.ts +0 -55
- package/dist/packs/types.js +0 -2
- package/dist/store/sqlite/repositories/pack-repo.d.ts +0 -16
- package/dist/store/sqlite/repositories/pack-repo.js +0 -192
- package/dist/store/sqlite/repositories/pack-repo.js.map +0 -1
|
@@ -1,22 +1,63 @@
|
|
|
1
1
|
import { loadConfig } from "../config/load-config.js";
|
|
2
2
|
import { pluginConfigJsonSchema, pluginUiHints } from "../config/config-schema.js";
|
|
3
3
|
import { ExperienceRuntimeService } from "../runtime/service.js";
|
|
4
|
+
import { OPENCLAW_BACKGROUND_LEARNING_ENABLED, OPENCLAW_HYBRID_POSTTASK_ENABLED, OPENCLAW_SAFE_CONFIG_OVERRIDES } from "./openclaw-runtime-defaults.js";
|
|
4
5
|
import { normalizePromptPayload, normalizeToolPayload, applyInjectionToPayload, extractSessionKey, mergeHookPayload } from "./runtime-helpers.js";
|
|
6
|
+
const loadOpenClawRoutineInteractionModule = () => import("./openclaw-routine-interaction.js");
|
|
7
|
+
const buildFinalizeDedupKey = (source, context) => {
|
|
8
|
+
if (!context.sessionId) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
return JSON.stringify({
|
|
12
|
+
sessionId: context.sessionId,
|
|
13
|
+
cwd: context.cwd,
|
|
14
|
+
userMessage: context.userMessage,
|
|
15
|
+
taskSummary: context.taskSummary
|
|
16
|
+
});
|
|
17
|
+
};
|
|
5
18
|
class OpenClawExperiencePlugin {
|
|
6
19
|
runtime;
|
|
7
20
|
constructor(runtime) {
|
|
8
21
|
this.runtime = runtime;
|
|
9
22
|
}
|
|
10
23
|
async beforePromptBuild(context) {
|
|
11
|
-
return this.runtime.beforePromptBuild(
|
|
24
|
+
return this.runtime.beforePromptBuild({
|
|
25
|
+
...context,
|
|
26
|
+
host: "openclaw"
|
|
27
|
+
});
|
|
12
28
|
}
|
|
13
29
|
async persistToolResult(result) {
|
|
14
30
|
return this.runtime.persistToolResult(result);
|
|
15
31
|
}
|
|
16
32
|
async finalizeTask(context) {
|
|
17
|
-
return this.runtime.finalizeTask(
|
|
33
|
+
return this.runtime.finalizeTask({
|
|
34
|
+
...context,
|
|
35
|
+
host: "openclaw"
|
|
36
|
+
});
|
|
18
37
|
}
|
|
19
38
|
register(api) {
|
|
39
|
+
const completedFinalizations = new Map();
|
|
40
|
+
const inFlightFinalizations = new Map();
|
|
41
|
+
const FINALIZE_CACHE_LIMIT = 256;
|
|
42
|
+
const clearSessionFinalizeState = (sessionId) => {
|
|
43
|
+
if (!sessionId) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
for (const key of completedFinalizations.keys()) {
|
|
47
|
+
if (key.includes(`"sessionId":"${sessionId}"`)) {
|
|
48
|
+
completedFinalizations.delete(key);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
const trimCompletedFinalizations = () => {
|
|
53
|
+
while (completedFinalizations.size > FINALIZE_CACHE_LIMIT) {
|
|
54
|
+
const oldestKey = completedFinalizations.keys().next().value;
|
|
55
|
+
if (!oldestKey) {
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
completedFinalizations.delete(oldestKey);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
20
61
|
this.runtime.captureWriter.capture("plugin_register", "global", {
|
|
21
62
|
hasOn: typeof api.on === "function",
|
|
22
63
|
captureRawPayloads: this.runtime.config.captureRawPayloads,
|
|
@@ -27,6 +68,19 @@ class OpenClawExperiencePlugin {
|
|
|
27
68
|
const source = mergeHookPayload(payload, hookContext);
|
|
28
69
|
this.runtime.captureWriter.capture("before_prompt_build", extractSessionKey(source), { payload, context: hookContext });
|
|
29
70
|
const context = normalizePromptPayload(source);
|
|
71
|
+
clearSessionFinalizeState(context.sessionId);
|
|
72
|
+
const routineInteraction = await loadOpenClawRoutineInteractionModule().catch(() => null);
|
|
73
|
+
const routineIntent = routineInteraction?.detectOpenClawRoutineIntent(context.userMessage);
|
|
74
|
+
if (routineIntent && routineInteraction) {
|
|
75
|
+
this.runtime.captureWriter.capture("openclaw_routine_interaction", extractSessionKey(source), {
|
|
76
|
+
intent: routineIntent,
|
|
77
|
+
cwd: context.cwd
|
|
78
|
+
});
|
|
79
|
+
return applyInjectionToPayload(payload, await routineInteraction.buildOpenClawRoutineInteractionContext(this.runtime.config, routineIntent, context.cwd, {
|
|
80
|
+
runtimeActive: true,
|
|
81
|
+
userMessage: context.userMessage
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
30
84
|
const result = await this.beforePromptBuild(context);
|
|
31
85
|
if (result.notice) {
|
|
32
86
|
(api.logger ?? api.log)?.info?.("experienceengine.notice", {
|
|
@@ -60,14 +114,44 @@ class OpenClawExperiencePlugin {
|
|
|
60
114
|
const source = mergeHookPayload(payload, hookContext);
|
|
61
115
|
this.runtime.captureWriter.capture("finalize", extractSessionKey(source), { payload, context: hookContext });
|
|
62
116
|
const context = normalizePromptPayload(source);
|
|
117
|
+
const routineInteraction = await loadOpenClawRoutineInteractionModule().catch(() => null);
|
|
118
|
+
if (routineInteraction?.detectOpenClawRoutineIntent(context.userMessage)) {
|
|
119
|
+
return payload;
|
|
120
|
+
}
|
|
63
121
|
if (!context.userMessage && !context.taskSummary) {
|
|
64
122
|
return payload;
|
|
65
123
|
}
|
|
66
|
-
|
|
67
|
-
|
|
124
|
+
const dedupKey = buildFinalizeDedupKey(source, context);
|
|
125
|
+
if (dedupKey && completedFinalizations.has(dedupKey)) {
|
|
126
|
+
return payload;
|
|
127
|
+
}
|
|
128
|
+
if (dedupKey) {
|
|
129
|
+
const inFlight = inFlightFinalizations.get(dedupKey);
|
|
130
|
+
if (inFlight) {
|
|
131
|
+
await inFlight;
|
|
132
|
+
return payload;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const runFinalization = (async () => {
|
|
136
|
+
const sessionId = context.sessionId;
|
|
137
|
+
if (sessionId) {
|
|
138
|
+
this.runtime.recoverToolEvents(sessionId, source);
|
|
139
|
+
}
|
|
140
|
+
await this.finalizeTask(context);
|
|
141
|
+
})();
|
|
142
|
+
if (dedupKey) {
|
|
143
|
+
inFlightFinalizations.set(dedupKey, runFinalization);
|
|
144
|
+
}
|
|
145
|
+
try {
|
|
146
|
+
await runFinalization;
|
|
147
|
+
}
|
|
148
|
+
finally {
|
|
149
|
+
if (dedupKey) {
|
|
150
|
+
inFlightFinalizations.delete(dedupKey);
|
|
151
|
+
completedFinalizations.set(dedupKey, Date.now());
|
|
152
|
+
trimCompletedFinalizations();
|
|
153
|
+
}
|
|
68
154
|
}
|
|
69
|
-
await this.finalizeTask(context);
|
|
70
|
-
await this.runtime.waitForBackgroundLearning();
|
|
71
155
|
return payload;
|
|
72
156
|
};
|
|
73
157
|
api.on?.("agent_end", finalize);
|
|
@@ -75,7 +159,14 @@ class OpenClawExperiencePlugin {
|
|
|
75
159
|
api.on?.("message_sent", finalize);
|
|
76
160
|
}
|
|
77
161
|
}
|
|
78
|
-
export const createExperiencePlugin = (configOverrides = {}, logger, runtimeOptions = {}) => new OpenClawExperiencePlugin(new ExperienceRuntimeService(loadConfig(
|
|
162
|
+
export const createExperiencePlugin = (configOverrides = {}, logger, runtimeOptions = {}) => new OpenClawExperiencePlugin(new ExperienceRuntimeService(loadConfig({
|
|
163
|
+
...configOverrides,
|
|
164
|
+
...OPENCLAW_SAFE_CONFIG_OVERRIDES
|
|
165
|
+
}), logger, {
|
|
166
|
+
disableBackgroundLearning: !OPENCLAW_BACKGROUND_LEARNING_ENABLED,
|
|
167
|
+
disableHybridPosttask: !OPENCLAW_HYBRID_POSTTASK_ENABLED,
|
|
168
|
+
...runtimeOptions
|
|
169
|
+
}));
|
|
79
170
|
const resolvePluginConfig = (api) => {
|
|
80
171
|
const rawConfig = (api.pluginConfig ?? api.config ?? {});
|
|
81
172
|
const resolvePath = api.resolvePath;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openclaw-plugin.js","sourceRoot":"","sources":["../../src/plugin/openclaw-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAWtD,OAAO,EACL,sBAAsB,EACtB,aAAa,EAEd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"openclaw-plugin.js","sourceRoot":"","sources":["../../src/plugin/openclaw-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ExperienceEngineConfig } from "../config/config-schema.js";
|
|
2
|
+
export type OpenClawRoutineIntent = "inspect_last" | "explain_last_match" | "inspect_readiness" | "inspect_first_value" | "inspect_repo_summary" | "explain_recent_silence" | "feedback_helped" | "feedback_harmed";
|
|
3
|
+
export declare const detectOpenClawRoutineIntent: (userMessage?: string) => OpenClawRoutineIntent | undefined;
|
|
4
|
+
export declare const buildOpenClawRoutineInteractionContext: (config: ExperienceEngineConfig, intent: OpenClawRoutineIntent, cwd?: string, options?: {
|
|
5
|
+
runtimeActive?: boolean;
|
|
6
|
+
userMessage?: string;
|
|
7
|
+
}) => Promise<string>;
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
import { deriveSetupState, deriveValueState, inspectSharedSetupState } from "../cli/state-model.js";
|
|
2
|
+
import { inspectRecordedOpenClawInstallState } from "./openclaw-install-state.js";
|
|
3
|
+
import { deriveStructuredSilenceReason, ExperienceInteractionService } from "../interaction/service.js";
|
|
4
|
+
const normalize = (value) => value
|
|
5
|
+
.toLowerCase()
|
|
6
|
+
.replace(/\s+/g, " ")
|
|
7
|
+
.trim();
|
|
8
|
+
const includesAll = (haystack, needles) => needles.every((needle) => haystack.includes(needle));
|
|
9
|
+
export const detectOpenClawRoutineIntent = (userMessage) => {
|
|
10
|
+
if (!userMessage) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
const message = normalize(userMessage);
|
|
14
|
+
const hasEeReference = message.includes("experienceengine")
|
|
15
|
+
|| message.includes("experience engine")
|
|
16
|
+
|| message.includes("ee ");
|
|
17
|
+
if (!hasEeReference) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
if (includesAll(message, ["what", "inject"])
|
|
21
|
+
|| includesAll(message, ["show", "last", "intervention"])) {
|
|
22
|
+
return "inspect_last";
|
|
23
|
+
}
|
|
24
|
+
if (includesAll(message, ["why", "match"])
|
|
25
|
+
|| includesAll(message, ["why", "conservative"])
|
|
26
|
+
|| includesAll(message, ["why", "hint"])) {
|
|
27
|
+
return "explain_last_match";
|
|
28
|
+
}
|
|
29
|
+
if (includesAll(message, ["ready", "here"])
|
|
30
|
+
|| includesAll(message, ["ready", "repo"])
|
|
31
|
+
|| includesAll(message, ["ready", "this", "repo"])
|
|
32
|
+
|| includesAll(message, ["set", "up", "repo"])
|
|
33
|
+
|| includesAll(message, ["work", "workspace", "now"])) {
|
|
34
|
+
return "inspect_readiness";
|
|
35
|
+
}
|
|
36
|
+
if (includesAll(message, ["warming", "up"])
|
|
37
|
+
|| includesAll(message, ["started", "producing", "value"])
|
|
38
|
+
|| includesAll(message, ["reusable", "hints", "yet"])
|
|
39
|
+
|| includesAll(message, ["first", "value"])) {
|
|
40
|
+
return "inspect_first_value";
|
|
41
|
+
}
|
|
42
|
+
if (includesAll(message, ["doing", "repo", "right", "now"])
|
|
43
|
+
|| includesAll(message, ["quick", "summary", "workspace"])
|
|
44
|
+
|| includesAll(message, ["summarize", "state", "here"])
|
|
45
|
+
|| includesAll(message, ["current", "status", "repo"])) {
|
|
46
|
+
return "inspect_repo_summary";
|
|
47
|
+
}
|
|
48
|
+
if (includesAll(message, ["didn't", "inject"])
|
|
49
|
+
|| includesAll(message, ["did not", "inject"])
|
|
50
|
+
|| includesAll(message, ["no", "hint", "last", "turn"])
|
|
51
|
+
|| includesAll(message, ["stay", "quiet"])
|
|
52
|
+
|| includesAll(message, ["stayed", "quiet"])) {
|
|
53
|
+
return "explain_recent_silence";
|
|
54
|
+
}
|
|
55
|
+
if (includesAll(message, ["mark", "helpful"]) || includesAll(message, ["mark", "helped"])) {
|
|
56
|
+
return "feedback_helped";
|
|
57
|
+
}
|
|
58
|
+
if (includesAll(message, ["mark", "harmful"]) || includesAll(message, ["mark", "harmed"])) {
|
|
59
|
+
return "feedback_harmed";
|
|
60
|
+
}
|
|
61
|
+
return undefined;
|
|
62
|
+
};
|
|
63
|
+
const describeDeliveryStyle = (record) => {
|
|
64
|
+
const mode = record.scorecard?.mode;
|
|
65
|
+
if (mode === "inject") {
|
|
66
|
+
return "normal hint delivery";
|
|
67
|
+
}
|
|
68
|
+
if (mode === "inject_conservative") {
|
|
69
|
+
return "cautious hint delivery";
|
|
70
|
+
}
|
|
71
|
+
if (mode === "skip") {
|
|
72
|
+
return "no hint delivered";
|
|
73
|
+
}
|
|
74
|
+
return undefined;
|
|
75
|
+
};
|
|
76
|
+
const buildMissingInspectionContext = (intent) => {
|
|
77
|
+
const summary = intent === "explain_last_match"
|
|
78
|
+
? "There is no recent ExperienceEngine intervention with a stored match explanation."
|
|
79
|
+
: intent === "explain_recent_silence"
|
|
80
|
+
? "There is no recent ExperienceEngine turn in this workspace to explain yet."
|
|
81
|
+
: "There is no recent injected ExperienceEngine intervention to review.";
|
|
82
|
+
return [
|
|
83
|
+
"ExperienceEngine routine interaction:",
|
|
84
|
+
summary,
|
|
85
|
+
"Answer briefly and directly. Do not default to CLI unless the user asks for deeper operator inspection."
|
|
86
|
+
].join("\n");
|
|
87
|
+
};
|
|
88
|
+
const summarizeReadinessNextStep = (setupState) => {
|
|
89
|
+
switch (setupState) {
|
|
90
|
+
case "Ready":
|
|
91
|
+
return "Keep working in this repo. ExperienceEngine can already observe normal tasks here.";
|
|
92
|
+
case "Initialized":
|
|
93
|
+
return "Reconnect or enable the OpenClaw ExperienceEngine integration so this repo can use the shared setup.";
|
|
94
|
+
default:
|
|
95
|
+
return "Finish shared ExperienceEngine setup first so this repo can start collecting reusable task signals.";
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
const summarizeHostStatus = (setupState) => {
|
|
99
|
+
switch (setupState) {
|
|
100
|
+
case "Ready":
|
|
101
|
+
return "OpenClaw routine interaction is active in this workspace.";
|
|
102
|
+
case "Initialized":
|
|
103
|
+
return "Shared ExperienceEngine setup exists, but host wiring is not fully ready yet.";
|
|
104
|
+
default:
|
|
105
|
+
return "OpenClaw can answer routine questions here, but shared ExperienceEngine setup is not complete yet.";
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
const buildReadinessContext = (runtimeActive) => {
|
|
109
|
+
const setupState = deriveOpenClawSetupState(runtimeActive);
|
|
110
|
+
return [
|
|
111
|
+
"ExperienceEngine routine interaction:",
|
|
112
|
+
"The user is asking whether ExperienceEngine is ready in this repo.",
|
|
113
|
+
`Setup state: ${setupState}`,
|
|
114
|
+
`Host status: ${summarizeHostStatus(setupState)}`,
|
|
115
|
+
`Next step: ${summarizeReadinessNextStep(setupState)}`,
|
|
116
|
+
"Answer briefly from this grounded state. Mention CLI only if the user asks for deeper validation or repair."
|
|
117
|
+
].join("\n");
|
|
118
|
+
};
|
|
119
|
+
const deriveOpenClawSetupState = (runtimeActive) => {
|
|
120
|
+
const sharedSetup = inspectSharedSetupState();
|
|
121
|
+
const openclawStatus = inspectRecordedOpenClawInstallState();
|
|
122
|
+
return deriveSetupState({
|
|
123
|
+
sharedInitialized: sharedSetup.initialized,
|
|
124
|
+
installed: openclawStatus.installed || runtimeActive,
|
|
125
|
+
interactionReady: openclawStatus.hostWiring.wired || runtimeActive
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
const buildLatestInterventionSummary = (inspection) => {
|
|
129
|
+
if (!inspection) {
|
|
130
|
+
return "none recorded yet in this workspace.";
|
|
131
|
+
}
|
|
132
|
+
return `${inspection.intervention} on "${inspection.summary}".`;
|
|
133
|
+
};
|
|
134
|
+
const summarizeRepoActivity = (input) => {
|
|
135
|
+
if (input.verdict === "healthy") {
|
|
136
|
+
return "ExperienceEngine is currently finding reusable guidance in this repo.";
|
|
137
|
+
}
|
|
138
|
+
if (input.verdict === "warming_up") {
|
|
139
|
+
return "ExperienceEngine is still warming up in this repo.";
|
|
140
|
+
}
|
|
141
|
+
if (input.verdict === "failing") {
|
|
142
|
+
return "ExperienceEngine is active here, but recent guidance quality needs closer review.";
|
|
143
|
+
}
|
|
144
|
+
if (input.latestIntervention === "skip") {
|
|
145
|
+
return "ExperienceEngine is active in this repo but staying mostly quiet on recent turns.";
|
|
146
|
+
}
|
|
147
|
+
return "ExperienceEngine is active in this repo, but current results are still mixed.";
|
|
148
|
+
};
|
|
149
|
+
const buildRepoSummaryContext = (interaction, cwd, runtimeActive) => {
|
|
150
|
+
const repoSummary = interaction.inspectRepoSummary(cwd);
|
|
151
|
+
const latest = interaction.inspectLast(cwd);
|
|
152
|
+
const readiness = interaction.inspectFirstValueReadiness(cwd);
|
|
153
|
+
const setupState = deriveOpenClawSetupState(runtimeActive);
|
|
154
|
+
const valueState = deriveValueState(readiness);
|
|
155
|
+
const nextStep = valueState === "Warming up" ? readiness.nextStep : repoSummary.recommendedNextAction;
|
|
156
|
+
return [
|
|
157
|
+
"ExperienceEngine routine interaction:",
|
|
158
|
+
"The user is asking for a compact ExperienceEngine summary of this repo.",
|
|
159
|
+
`Setup state: ${setupState}`,
|
|
160
|
+
`Value state: ${valueState}`,
|
|
161
|
+
`Latest intervention: ${buildLatestInterventionSummary(latest)}`,
|
|
162
|
+
`Repo activity: ${summarizeRepoActivity({
|
|
163
|
+
verdict: repoSummary.benchmark.verdict,
|
|
164
|
+
latestIntervention: latest?.intervention
|
|
165
|
+
})}`,
|
|
166
|
+
`Next step: ${nextStep}`,
|
|
167
|
+
"Answer briefly from this grounded state. Mention CLI only if the user asks for deeper inspection or repair."
|
|
168
|
+
].join("\n");
|
|
169
|
+
};
|
|
170
|
+
const summarizeFirstValue = (valueState) => valueState === "First value reached"
|
|
171
|
+
? "This repo has already produced visible ExperienceEngine value from real task activity."
|
|
172
|
+
: "This repo is still warming up and needs more real task evidence before hints become reusable.";
|
|
173
|
+
const buildFirstValueProgressContext = (summary) => {
|
|
174
|
+
const valueState = deriveValueState(summary);
|
|
175
|
+
return [
|
|
176
|
+
"ExperienceEngine routine interaction:",
|
|
177
|
+
"The user is asking whether ExperienceEngine is still warming up in this repo.",
|
|
178
|
+
`Value state: ${valueState}`,
|
|
179
|
+
`Progress: ${summarizeFirstValue(valueState)}`,
|
|
180
|
+
`Current evidence: ${summary.rawRecords} task record(s), ${summary.taskRuns} task run(s), ${summary.candidates} candidate draft(s), ${summary.nodes} formal node(s).`,
|
|
181
|
+
`Next step: ${summary.nextStep}`,
|
|
182
|
+
"Answer briefly from this grounded state. Do not claim first value from setup text alone."
|
|
183
|
+
].join("\n");
|
|
184
|
+
};
|
|
185
|
+
const renderSilenceReason = (reason) => {
|
|
186
|
+
switch (reason) {
|
|
187
|
+
case "warming_up":
|
|
188
|
+
return "ExperienceEngine is still warming up in this repo, so it is gathering more real-task evidence before reusing guidance.";
|
|
189
|
+
case "no_strong_match":
|
|
190
|
+
return "ExperienceEngine stayed quiet because it did not find a strong enough reusable match for that turn.";
|
|
191
|
+
case "withheld_low_confidence":
|
|
192
|
+
return "ExperienceEngine stayed cautious because it saw some signal, but confidence stayed below the delivery bar on that turn.";
|
|
193
|
+
case "non_applicable_turn":
|
|
194
|
+
return "The latest turn was not the kind of task where ExperienceEngine would normally inject reusable guidance.";
|
|
195
|
+
default:
|
|
196
|
+
return "ExperienceEngine stayed quiet on that turn, but the stored state does not point to a more specific silence reason yet.";
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
const buildRecentSilenceContext = (inspection, readiness) => {
|
|
200
|
+
if (!inspection) {
|
|
201
|
+
return buildMissingInspectionContext("explain_recent_silence");
|
|
202
|
+
}
|
|
203
|
+
if (inspection.intervention !== "skip") {
|
|
204
|
+
return [
|
|
205
|
+
"ExperienceEngine routine interaction:",
|
|
206
|
+
"The user is asking why ExperienceEngine stayed quiet on the latest turn.",
|
|
207
|
+
"The latest turn already delivered a hint, so the latest ExperienceEngine turn was not actually quiet.",
|
|
208
|
+
`Latest intervention: ${inspection.intervention}`,
|
|
209
|
+
"Answer briefly and directly from this grounded state."
|
|
210
|
+
].join("\n");
|
|
211
|
+
}
|
|
212
|
+
return [
|
|
213
|
+
"ExperienceEngine routine interaction:",
|
|
214
|
+
"The user is asking why ExperienceEngine stayed quiet on the latest turn.",
|
|
215
|
+
"The latest turn delivered no hint.",
|
|
216
|
+
`Reason: ${renderSilenceReason(deriveStructuredSilenceReason({ inspection, readiness }))}`,
|
|
217
|
+
`Next step: ${readiness.nextStep}`,
|
|
218
|
+
"Answer briefly from this grounded state. Mention CLI only if the user asks for deeper diagnostics."
|
|
219
|
+
].join("\n");
|
|
220
|
+
};
|
|
221
|
+
const buildInspectionContext = (record, intent, explanationOverride) => {
|
|
222
|
+
const lines = [
|
|
223
|
+
"ExperienceEngine routine interaction:",
|
|
224
|
+
intent === "inspect_last"
|
|
225
|
+
? "The user is asking what ExperienceEngine just injected."
|
|
226
|
+
: "The user is asking why the last ExperienceEngine hint matched.",
|
|
227
|
+
`Latest intervention: ${record.intervention}`
|
|
228
|
+
];
|
|
229
|
+
const deliveryStyle = describeDeliveryStyle(record);
|
|
230
|
+
if (deliveryStyle) {
|
|
231
|
+
lines.push(`Delivery style: ${deliveryStyle}`);
|
|
232
|
+
}
|
|
233
|
+
if (record.injectedNodes.length > 0) {
|
|
234
|
+
lines.push(`Injected nodes: ${record.injectedNodes.map((node) => `${node.id} (${node.type}, ${node.state})`).join(", ")}`);
|
|
235
|
+
}
|
|
236
|
+
if (record.hints.length > 0) {
|
|
237
|
+
lines.push(`Hints: ${record.hints.join(" | ")}`);
|
|
238
|
+
}
|
|
239
|
+
if (intent === "explain_last_match") {
|
|
240
|
+
if (explanationOverride ?? record.decisionExplanation) {
|
|
241
|
+
lines.push(`Why it matched: ${explanationOverride ?? record.decisionExplanation}`);
|
|
242
|
+
}
|
|
243
|
+
if (record.trustSummary) {
|
|
244
|
+
lines.push(`Trust summary: ${record.trustSummary}`);
|
|
245
|
+
}
|
|
246
|
+
if (record.retrievalNotes.length > 0) {
|
|
247
|
+
lines.push(`Retrieval notes: ${record.retrievalNotes.join(" ")}`);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
else if (record.trustSummary) {
|
|
251
|
+
lines.push(`Trust summary: ${record.trustSummary}`);
|
|
252
|
+
}
|
|
253
|
+
lines.push("Answer directly from this grounded ExperienceEngine state. Only mention CLI if the user asks for deeper operator detail.");
|
|
254
|
+
return lines.join("\n");
|
|
255
|
+
};
|
|
256
|
+
const buildFeedbackContext = (feedback, result) => {
|
|
257
|
+
if (result.status === "not_found") {
|
|
258
|
+
return [
|
|
259
|
+
"ExperienceEngine routine interaction:",
|
|
260
|
+
"No recent injected ExperienceEngine intervention was available to update.",
|
|
261
|
+
"Answer briefly and say there was no recent injected intervention to mark."
|
|
262
|
+
].join("\n");
|
|
263
|
+
}
|
|
264
|
+
return [
|
|
265
|
+
"ExperienceEngine routine interaction:",
|
|
266
|
+
`Feedback recorded: ${feedback}.`,
|
|
267
|
+
`Updated nodes: ${result.nodeIds.join(", ")}.`,
|
|
268
|
+
`Tell the user the last ExperienceEngine intervention was marked as ${feedback}.`
|
|
269
|
+
].join("\n");
|
|
270
|
+
};
|
|
271
|
+
export const buildOpenClawRoutineInteractionContext = async (config, intent, cwd, options = {}) => {
|
|
272
|
+
const interaction = new ExperienceInteractionService(config);
|
|
273
|
+
const currentCwd = cwd ?? process.cwd();
|
|
274
|
+
if (intent === "feedback_helped") {
|
|
275
|
+
return buildFeedbackContext("helped", interaction.feedbackLast("helped", cwd));
|
|
276
|
+
}
|
|
277
|
+
if (intent === "feedback_harmed") {
|
|
278
|
+
return buildFeedbackContext("harmed", interaction.feedbackLast("harmed", cwd));
|
|
279
|
+
}
|
|
280
|
+
if (intent === "inspect_readiness") {
|
|
281
|
+
return buildReadinessContext(options.runtimeActive ?? false);
|
|
282
|
+
}
|
|
283
|
+
if (intent === "inspect_first_value") {
|
|
284
|
+
return buildFirstValueProgressContext(interaction.inspectFirstValueReadiness(currentCwd));
|
|
285
|
+
}
|
|
286
|
+
if (intent === "inspect_repo_summary") {
|
|
287
|
+
return buildRepoSummaryContext(interaction, currentCwd, options.runtimeActive ?? false);
|
|
288
|
+
}
|
|
289
|
+
const inspection = interaction.inspectLast(currentCwd);
|
|
290
|
+
if (intent === "explain_recent_silence") {
|
|
291
|
+
return buildRecentSilenceContext(inspection, interaction.inspectFirstValueReadiness(currentCwd));
|
|
292
|
+
}
|
|
293
|
+
if (!inspection || inspection.injectedNodes.length === 0) {
|
|
294
|
+
return buildMissingInspectionContext(intent);
|
|
295
|
+
}
|
|
296
|
+
const explanationOverride = intent === "explain_last_match"
|
|
297
|
+
? await interaction.explainLastDecision(currentCwd, options.userMessage)
|
|
298
|
+
: undefined;
|
|
299
|
+
return buildInspectionContext(inspection, intent, explanationOverride);
|
|
300
|
+
};
|
|
301
|
+
//# sourceMappingURL=openclaw-routine-interaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openclaw-routine-interaction.js","sourceRoot":"","sources":["../../src/plugin/openclaw-routine-interaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type OpenClawRuntimeDefaults = {
|
|
2
|
+
learningLoopState: "learning_loop_active" | "interaction_only";
|
|
3
|
+
backgroundLearningEnabled: boolean;
|
|
4
|
+
hybridPosttaskEnabled: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare const OPENCLAW_BACKGROUND_LEARNING_ENABLED = false;
|
|
7
|
+
export declare const OPENCLAW_HYBRID_POSTTASK_ENABLED = false;
|
|
8
|
+
export declare const OPENCLAW_SAFE_CONFIG_OVERRIDES: {
|
|
9
|
+
readonly embeddingProvider: "legacy";
|
|
10
|
+
readonly hybridEnabled: false;
|
|
11
|
+
readonly hybridSyncExplainEnabled: false;
|
|
12
|
+
readonly hybridAsyncPostmortemEnabled: false;
|
|
13
|
+
readonly hybridAsyncPostmortemLlmEnabled: false;
|
|
14
|
+
readonly hybridExplainLlmEnabled: false;
|
|
15
|
+
};
|
|
16
|
+
export declare const getOpenClawRuntimeDefaults: () => OpenClawRuntimeDefaults;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const OPENCLAW_BACKGROUND_LEARNING_ENABLED = false;
|
|
2
|
+
export const OPENCLAW_HYBRID_POSTTASK_ENABLED = false;
|
|
3
|
+
export const OPENCLAW_SAFE_CONFIG_OVERRIDES = {
|
|
4
|
+
embeddingProvider: "legacy",
|
|
5
|
+
hybridEnabled: false,
|
|
6
|
+
hybridSyncExplainEnabled: false,
|
|
7
|
+
hybridAsyncPostmortemEnabled: false,
|
|
8
|
+
hybridAsyncPostmortemLlmEnabled: false,
|
|
9
|
+
hybridExplainLlmEnabled: false
|
|
10
|
+
};
|
|
11
|
+
export const getOpenClawRuntimeDefaults = () => ({
|
|
12
|
+
learningLoopState: OPENCLAW_BACKGROUND_LEARNING_ENABLED ? "learning_loop_active" : "interaction_only",
|
|
13
|
+
backgroundLearningEnabled: OPENCLAW_BACKGROUND_LEARNING_ENABLED,
|
|
14
|
+
hybridPosttaskEnabled: OPENCLAW_HYBRID_POSTTASK_ENABLED
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=openclaw-runtime-defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openclaw-runtime-defaults.js","sourceRoot":"","sources":["../../src/plugin/openclaw-runtime-defaults.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,oCAAoC,GAAG,KAAK,CAAC;AAC1D,MAAM,CAAC,MAAM,gCAAgC,GAAG,KAAK,CAAC;AAEtD,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,iBAAiB,EAAE,QAAQ;IAC3B,aAAa,EAAE,KAAK;IACpB,wBAAwB,EAAE,KAAK;IAC/B,4BAA4B,EAAE,KAAK;IACnC,+BAA+B,EAAE,KAAK;IACtC,uBAAuB,EAAE,KAAK;CACtB,CAAC;AAEX,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAA4B,EAAE,CAAC,CAAC;IACxE,iBAAiB,EAAE,oCAAoC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,kBAAkB;IACrG,yBAAyB,EAAE,oCAAoC;IAC/D,qBAAqB,EAAE,gCAAgC;CACxD,CAAC,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,8 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type HybridRouteDecision, type HybridRouteSignals } from "../hybrid/router.js";
|
|
2
2
|
import type { EvaluationMode, ExperienceInput, ToolEvent } from "../types/domain.js";
|
|
3
3
|
import type { ExperiencePlugin, HostPromptContext, HostToolResult, OpenClawLogger } from "../types/plugin.js";
|
|
4
4
|
import type { ExperienceEngineConfig } from "../config/config-schema.js";
|
|
5
5
|
import { RuntimeCaptureWriter } from "../plugin/runtime-capture.js";
|
|
6
|
+
import type { HybridWorkerClientOptions } from "../hybrid/worker-client.js";
|
|
7
|
+
type LearningRuntimeOptions = {
|
|
8
|
+
env?: NodeJS.ProcessEnv;
|
|
9
|
+
homeDir?: string;
|
|
10
|
+
fetchImpl?: typeof fetch;
|
|
11
|
+
};
|
|
12
|
+
type ExperienceRuntimeServiceOptions = LearningRuntimeOptions & {
|
|
13
|
+
hybridWorkerClientOptions?: HybridWorkerClientOptions;
|
|
14
|
+
disableBackgroundLearning?: boolean;
|
|
15
|
+
disableHybridPosttask?: boolean;
|
|
16
|
+
};
|
|
17
|
+
export declare const decidePosttaskHybridRoute: (config: Pick<ExperienceEngineConfig, "hybridEnabled" | "hybridAsyncPostmortemEnabled" | "hybridRoutePolicyVersion" | "hybridRolloutMode" | "hybridCanaryRate" | "hybridKillSwitch">, input: Pick<ExperienceInput, "task_summary" | "context_summary">, signals: Omit<HybridRouteSignals, "explicitExplanationRequest" | "existingConservativePathRequired" | "rolloutAllowsAsyncPostmortem">, rolloutKey?: string) => HybridRouteDecision;
|
|
6
18
|
export declare class ExperienceRuntimeService implements ExperiencePlugin {
|
|
7
19
|
readonly config: ExperienceEngineConfig;
|
|
8
20
|
private readonly db;
|
|
@@ -19,26 +31,39 @@ export declare class ExperienceRuntimeService implements ExperiencePlugin {
|
|
|
19
31
|
private readonly reviewEventRepo;
|
|
20
32
|
private readonly statsRepo;
|
|
21
33
|
private readonly injectionRepo;
|
|
22
|
-
private readonly
|
|
23
|
-
private readonly
|
|
24
|
-
private readonly
|
|
34
|
+
private readonly hybridReviewArtifactRepo;
|
|
35
|
+
private readonly hybridTraceRepo;
|
|
36
|
+
private readonly runtimeOptions;
|
|
37
|
+
private readonly backgroundLearningEnabled;
|
|
38
|
+
private readonly hybridPosttaskEnabled;
|
|
39
|
+
private distillationWorkerPromise;
|
|
40
|
+
private learningGatePromise;
|
|
41
|
+
private hybridWorkerClientPromise;
|
|
25
42
|
private readonly pendingLearningTasks;
|
|
26
43
|
readonly captureWriter: RuntimeCaptureWriter;
|
|
27
|
-
constructor(config: ExperienceEngineConfig, logger?: OpenClawLogger, runtimeOptions?:
|
|
44
|
+
constructor(config: ExperienceEngineConfig, logger?: OpenClawLogger, runtimeOptions?: ExperienceRuntimeServiceOptions);
|
|
28
45
|
private getSession;
|
|
29
46
|
private appendToolEvent;
|
|
30
|
-
private
|
|
47
|
+
private resolveExactScopeInjectableNodes;
|
|
31
48
|
recoverToolEvents(sessionId: string, payload: unknown): void;
|
|
32
49
|
private buildFinalizedInput;
|
|
33
50
|
private persistFinalizedInput;
|
|
34
51
|
private trackLearningTask;
|
|
35
52
|
waitForBackgroundLearning(): Promise<void>;
|
|
53
|
+
private getLearningGate;
|
|
54
|
+
private getDistillationWorker;
|
|
55
|
+
private getHybridWorkerClient;
|
|
56
|
+
private buildPostmortemArtifact;
|
|
57
|
+
private applyPostmortemDeliveryRecommendation;
|
|
58
|
+
private applyAcceptedPostmortemNodeReviews;
|
|
59
|
+
private persistHybridPostmortemArtifactAsync;
|
|
36
60
|
private persistCandidatesAsync;
|
|
37
61
|
private updateInjectedNodes;
|
|
38
62
|
beforePromptBuild(context: HostPromptContext): Promise<{
|
|
39
63
|
mode: "skip";
|
|
40
64
|
text: undefined;
|
|
41
65
|
notice: undefined;
|
|
66
|
+
retrievalContext: import("../types/domain.js").RetrievalContext;
|
|
42
67
|
input: {
|
|
43
68
|
scope_id: string;
|
|
44
69
|
injected_node_ids: never[];
|
|
@@ -58,6 +83,7 @@ export declare class ExperienceRuntimeService implements ExperiencePlugin {
|
|
|
58
83
|
scorecard: import("../types/domain.js").InjectionScorecard | undefined;
|
|
59
84
|
deliveryMode: EvaluationMode | undefined;
|
|
60
85
|
delivered: boolean | undefined;
|
|
86
|
+
retrievalContext: import("../types/domain.js").RetrievalContext;
|
|
61
87
|
input: {
|
|
62
88
|
injected_node_ids: string[];
|
|
63
89
|
scope_id: string;
|
|
@@ -72,3 +98,4 @@ export declare class ExperienceRuntimeService implements ExperiencePlugin {
|
|
|
72
98
|
finalizeTask(context: HostPromptContext): Promise<ExperienceInput>;
|
|
73
99
|
drainDistillationQueue(limit?: number): Promise<number>;
|
|
74
100
|
}
|
|
101
|
+
export {};
|