openclaw-hybrid-memory 2026.5.310 → 2026.6.10
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/api/plugin-runtime.ts +2 -0
- package/backends/facts-db/contradictions.ts +1 -1
- package/cli/cmd-extract-directives.ts +225 -11
- package/cli/cmd-extract-proposals.ts +5 -6
- package/cli/cmd-extract-reinforcement.ts +71 -0
- package/cli/cmd-feedback.ts +15 -9
- package/cli/commands/manage/register-reflection-pipeline.ts +247 -13
- package/cli/commands/manage/register-storage-maintenance.ts +224 -15
- package/cli/commands/manage/storage-stats-helpers.ts +13 -2
- package/cli/context.ts +9 -19
- package/cli/distill.ts +31 -1
- package/cli/register.ts +28 -38
- package/dist/api/plugin-runtime.js.map +1 -1
- package/dist/backends/agent-health-store.js.map +1 -1
- package/dist/backends/apitap-store.js.map +1 -1
- package/dist/backends/audit-store.js.map +1 -1
- package/dist/backends/base-sqlite-store.js.map +1 -1
- package/dist/backends/cost-tracker.js.map +1 -1
- package/dist/backends/credentials-db.js +2 -3
- package/dist/backends/credentials-db.js.map +1 -1
- package/dist/backends/crystallization-store.js.map +1 -1
- package/dist/backends/edict-store.js.map +1 -1
- package/dist/backends/event-bus.js.map +1 -1
- package/dist/backends/event-log.js.map +1 -1
- package/dist/backends/facts-db/cache-manager.js.map +1 -1
- package/dist/backends/facts-db/clusters.js.map +1 -1
- package/dist/backends/facts-db/contradictions.js +1 -1
- package/dist/backends/facts-db/contradictions.js.map +1 -1
- package/dist/backends/facts-db/crud.js.map +1 -1
- package/dist/backends/facts-db/db-connection.js.map +1 -1
- package/dist/backends/facts-db/entity-autolink.js.map +1 -1
- package/dist/backends/facts-db/entity-layer.js.map +1 -1
- package/dist/backends/facts-db/episodes.js.map +1 -1
- package/dist/backends/facts-db/fact-queries.js.map +1 -1
- package/dist/backends/facts-db/fact-read-queries.js.map +1 -1
- package/dist/backends/facts-db/facts-db-layer1.js.map +1 -1
- package/dist/backends/facts-db/facts-db-layer2.js.map +1 -1
- package/dist/backends/facts-db/facts-db-layer3.js.map +1 -1
- package/dist/backends/facts-db/fts-text.js.map +1 -1
- package/dist/backends/facts-db/generated-skills/policy.js.map +1 -1
- package/dist/backends/facts-db/generated-skills.js.map +1 -1
- package/dist/backends/facts-db/housekeeping.js.map +1 -1
- package/dist/backends/facts-db/links.js.map +1 -1
- package/dist/backends/facts-db/maintenance.js.map +1 -1
- package/dist/backends/facts-db/procedures/crud.js.map +1 -1
- package/dist/backends/facts-db/procedures/internal.js.map +1 -1
- package/dist/backends/facts-db/procedures/promotion.js.map +1 -1
- package/dist/backends/facts-db/procedures/search.js.map +1 -1
- package/dist/backends/facts-db/procedures/stats.js.map +1 -1
- package/dist/backends/facts-db/reinforcement.js.map +1 -1
- package/dist/backends/facts-db/row-mapper.js.map +1 -1
- package/dist/backends/facts-db/scan-cursors.js.map +1 -1
- package/dist/backends/facts-db/schema-bootstrap.js.map +1 -1
- package/dist/backends/facts-db/scope-sql.js.map +1 -1
- package/dist/backends/facts-db/search.js.map +1 -1
- package/dist/backends/facts-db/stats.js.map +1 -1
- package/dist/backends/facts-db/types.js.map +1 -1
- package/dist/backends/facts-db/variants.js.map +1 -1
- package/dist/backends/identity-reflection-store.js.map +1 -1
- package/dist/backends/issue-store.js.map +1 -1
- package/dist/backends/learnings-db.js.map +1 -1
- package/dist/backends/migrations/facts-migrations.js.map +1 -1
- package/dist/backends/migrations/procedures.js.map +1 -1
- package/dist/backends/narratives-db.js.map +1 -1
- package/dist/backends/persona-state-store.js.map +1 -1
- package/dist/backends/proposals-db.js.map +1 -1
- package/dist/backends/scope-filter-sql.js.map +1 -1
- package/dist/backends/sqlite-schema-meta.js.map +1 -1
- package/dist/backends/tool-proposal-store.js.map +1 -1
- package/dist/backends/vector-db/constants.js.map +1 -1
- package/dist/backends/vector-db/path-utils.js.map +1 -1
- package/dist/backends/vector-db/runtime-locks.js.map +1 -1
- package/dist/backends/vector-db/vector-db-class.js.map +1 -1
- package/dist/backends/wal.js.map +1 -1
- package/dist/backends/workflow-store.js.map +1 -1
- package/dist/benchmark/shadow-eval.js.map +1 -1
- package/dist/cli/active-tasks.js.map +1 -1
- package/dist/cli/backup.js.map +1 -1
- package/dist/cli/benchmark.js.map +1 -1
- package/dist/cli/cmd-backfill.js.map +1 -1
- package/dist/cli/cmd-config.js.map +1 -1
- package/dist/cli/cmd-credentials.js.map +1 -1
- package/dist/cli/cmd-demo.js.map +1 -1
- package/dist/cli/cmd-distill.js.map +1 -1
- package/dist/cli/cmd-doctor.js.map +1 -1
- package/dist/cli/cmd-examples.js.map +1 -1
- package/dist/cli/cmd-extract-daily.js.map +1 -1
- package/dist/cli/cmd-extract-directives.js +141 -10
- package/dist/cli/cmd-extract-directives.js.map +1 -1
- package/dist/cli/cmd-extract-procedures.js.map +1 -1
- package/dist/cli/cmd-extract-proposals.js +3 -2
- package/dist/cli/cmd-extract-proposals.js.map +1 -1
- package/dist/cli/cmd-extract-reinforcement.js +39 -0
- package/dist/cli/cmd-extract-reinforcement.js.map +1 -1
- package/dist/cli/cmd-extract-sessions.js.map +1 -1
- package/dist/cli/cmd-feedback.js +9 -4
- package/dist/cli/cmd-feedback.js.map +1 -1
- package/dist/cli/cmd-health.js.map +1 -1
- package/dist/cli/cmd-providers.js.map +1 -1
- package/dist/cli/cmd-selfcorrection.js.map +1 -1
- package/dist/cli/cmd-setup.js.map +1 -1
- package/dist/cli/cmd-status.js.map +1 -1
- package/dist/cli/cmd-store.js.map +1 -1
- package/dist/cli/cmd-user-friendly.js.map +1 -1
- package/dist/cli/cmd-verify.js.map +1 -1
- package/dist/cli/commands/manage/bindings.js.map +1 -1
- package/dist/cli/commands/manage/dream-cycle-followup.js.map +1 -1
- package/dist/cli/commands/manage/maintenance-heartbeat.js.map +1 -1
- package/dist/cli/commands/manage/register-agents-audit-runall.js.map +1 -1
- package/dist/cli/commands/manage/register-analyze-maintenance-logs.js.map +1 -1
- package/dist/cli/commands/manage/register-budget-proposals.js.map +1 -1
- package/dist/cli/commands/manage/register-config-cli.js.map +1 -1
- package/dist/cli/commands/manage/register-corrections-and-pipeline.js.map +1 -1
- package/dist/cli/commands/manage/register-corrections.js.map +1 -1
- package/dist/cli/commands/manage/register-council.js.map +1 -1
- package/dist/cli/commands/manage/register-credentials-scope.js.map +1 -1
- package/dist/cli/commands/manage/register-digest.js.map +1 -1
- package/dist/cli/commands/manage/register-lifecycle.js.map +1 -1
- package/dist/cli/commands/manage/register-procedure-lifecycle.js.map +1 -1
- package/dist/cli/commands/manage/register-reconcile-cron-ledgers.js.map +1 -1
- package/dist/cli/commands/manage/register-reflection-pipeline.js +144 -7
- package/dist/cli/commands/manage/register-reflection-pipeline.js.map +1 -1
- package/dist/cli/commands/manage/register-self-correction-feedback.js.map +1 -1
- package/dist/cli/commands/manage/register-storage-and-stats.js.map +1 -1
- package/dist/cli/commands/manage/register-storage-entities-decay.js.map +1 -1
- package/dist/cli/commands/manage/register-storage-graph-audit.js.map +1 -1
- package/dist/cli/commands/manage/register-storage-maintenance.js +152 -9
- package/dist/cli/commands/manage/register-storage-maintenance.js.map +1 -1
- package/dist/cli/commands/manage/register-validate-cron-exit.js.map +1 -1
- package/dist/cli/commands/manage/storage-stats-helpers.js +10 -3
- package/dist/cli/commands/manage/storage-stats-helpers.js.map +1 -1
- package/dist/cli/commands/register-manage-commands.js.map +1 -1
- package/dist/cli/config-feature-summaries.js.map +1 -1
- package/dist/cli/config-output-sink.js.map +1 -1
- package/dist/cli/distill-session-jsonl.js.map +1 -1
- package/dist/cli/distill.js +10 -1
- package/dist/cli/distill.js.map +1 -1
- package/dist/cli/global-verbose.js.map +1 -1
- package/dist/cli/goals.js.map +1 -1
- package/dist/cli/hybrid-mem-commander-utils.js.map +1 -1
- package/dist/cli/install/config-merge.js.map +1 -1
- package/dist/cli/install/cron-jobs.js.map +1 -1
- package/dist/cli/install/embedding-detect.js.map +1 -1
- package/dist/cli/install/run-install.js.map +1 -1
- package/dist/cli/install/workspace.js.map +1 -1
- package/dist/cli/proposals.js.map +1 -1
- package/dist/cli/register.js.map +1 -1
- package/dist/cli/shared.js.map +1 -1
- package/dist/cli/skills.js.map +1 -1
- package/dist/cli/task-queue-status.js.map +1 -1
- package/dist/cli/verified.js.map +1 -1
- package/dist/cli/verify/fact-count.js.map +1 -1
- package/dist/cli/verify/openclaw-config.js.map +1 -1
- package/dist/cli/verify/plugin-config-credentials.js.map +1 -1
- package/dist/cli/verify/sections/config-cron.js.map +1 -1
- package/dist/cli/verify/sections/embeddings.js.map +1 -1
- package/dist/cli/verify/sections/infrastructure.js.map +1 -1
- package/dist/cli/verify/sections/llm-models.js.map +1 -1
- package/dist/cli/verify/sections/reconcile.js.map +1 -1
- package/dist/cli/verify/verify-run-state.js.map +1 -1
- package/dist/cli/verify-llm-azure-auth.js.map +1 -1
- package/dist/cli/verify.js.map +1 -1
- package/dist/config/hybrid-schema.js.map +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/maintenance-fallback-policy.js.map +1 -1
- package/dist/config/parsers/capture.js.map +1 -1
- package/dist/config/parsers/core.js.map +1 -1
- package/dist/config/parsers/features.js.map +1 -1
- package/dist/config/parsers/index.js.map +1 -1
- package/dist/config/parsers/maintenance.js.map +1 -1
- package/dist/config/parsers/retrieval.js.map +1 -1
- package/dist/config/parsers/sensors.js.map +1 -1
- package/dist/config/skill-sections.js.map +1 -1
- package/dist/config/skill-size-limits.js.map +1 -1
- package/dist/config/types/agents.js.map +1 -1
- package/dist/config/types/bootstrap.js.map +1 -1
- package/dist/config/types/core.js.map +1 -1
- package/dist/config/types/index.js.map +1 -1
- package/dist/config/utils.js.map +1 -1
- package/dist/index-help.js.map +1 -1
- package/dist/index-testing-exports.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/lifecycle/hook-resolution-api.js.map +1 -1
- package/dist/lifecycle/hooks.js +0 -1
- package/dist/lifecycle/hooks.js.map +1 -1
- package/dist/lifecycle/resolve-agent-id.js.map +1 -1
- package/dist/lifecycle/session-state.js.map +1 -1
- package/dist/lifecycle/stage-active-task.js.map +1 -1
- package/dist/lifecycle/stage-auth-failure.js.map +1 -1
- package/dist/lifecycle/stage-capture/run-capture.js.map +1 -1
- package/dist/lifecycle/stage-capture.js.map +1 -1
- package/dist/lifecycle/stage-cleanup.js.map +1 -1
- package/dist/lifecycle/stage-credential-hint.js.map +1 -1
- package/dist/lifecycle/stage-frustration.js.map +1 -1
- package/dist/lifecycle/stage-goal-stewardship.js.map +1 -1
- package/dist/lifecycle/stage-goal-subagent.js.map +1 -1
- package/dist/lifecycle/stage-injection.js +1 -1
- package/dist/lifecycle/stage-injection.js.map +1 -1
- package/dist/lifecycle/stage-recall/run-recall.js.map +1 -1
- package/dist/lifecycle/stage-recall.js.map +1 -1
- package/dist/lifecycle/stage-setup.js.map +1 -1
- package/dist/routes/dashboard/collectors.js.map +1 -1
- package/dist/routes/dashboard/html.js.map +1 -1
- package/dist/routes/dashboard/server.js.map +1 -1
- package/dist/routes/dashboard-graph.js.map +1 -1
- package/dist/routes/graphql-resolvers.js.map +1 -1
- package/dist/routes/graphql-server.js.map +1 -1
- package/dist/services/active-task-checkpoint.js.map +1 -1
- package/dist/services/active-task-injection.js.map +1 -1
- package/dist/services/active-task.js.map +1 -1
- package/dist/services/adaptive-catch-up-pacing.js +25 -0
- package/dist/services/adaptive-catch-up-pacing.js.map +1 -0
- package/dist/services/adaptive-maintenance-llm.js.map +1 -1
- package/dist/services/adaptive-model-limits.js.map +1 -1
- package/dist/services/ambient-retrieval.js.map +1 -1
- package/dist/services/apitap-service.js.map +1 -1
- package/dist/services/audit-health-exit-info.js.map +1 -1
- package/dist/services/audit-health-json.js.map +1 -1
- package/dist/services/auth-failure-detect.js.map +1 -1
- package/dist/services/auto-capture.js.map +1 -1
- package/dist/services/auto-classifier.js.map +1 -1
- package/dist/services/auto-skills-audit.js.map +1 -1
- package/dist/services/bootstrap-optional.js.map +1 -1
- package/dist/services/bootstrap-priority.js.map +1 -1
- package/dist/services/bootstrap.js.map +1 -1
- package/dist/services/capture-provenance.js.map +1 -1
- package/dist/services/capture-utils.js.map +1 -1
- package/dist/services/chat.js +22 -3
- package/dist/services/chat.js.map +1 -1
- package/dist/services/classification-scope.js.map +1 -1
- package/dist/services/classification.js.map +1 -1
- package/dist/services/cli-sql-dump.js.map +1 -1
- package/dist/services/consolidation.js.map +1 -1
- package/dist/services/context-audit.js +1 -1
- package/dist/services/context-audit.js.map +1 -1
- package/dist/services/context-budget.js.map +1 -1
- package/dist/services/context-engine.js.map +1 -1
- package/dist/services/contextual-variants.js.map +1 -1
- package/dist/services/continuous-verifier.js.map +1 -1
- package/dist/services/contradiction-adjudicator.js.map +1 -1
- package/dist/services/cost-context.js.map +1 -1
- package/dist/services/cost-feature-labels.js.map +1 -1
- package/dist/services/credential-migration.js.map +1 -1
- package/dist/services/credential-scanner.js.map +1 -1
- package/dist/services/credential-validation.js.map +1 -1
- package/dist/services/cron-exit-validator.js.map +1 -1
- package/dist/services/cron-guard.js.map +1 -1
- package/dist/services/cron-job-bash-harness.js +52 -5
- package/dist/services/cron-job-bash-harness.js.map +1 -1
- package/dist/services/cron-maintenance-reconciler.js +1 -3
- package/dist/services/cron-maintenance-reconciler.js.map +1 -1
- package/dist/services/cross-agent-learning.js.map +1 -1
- package/dist/services/crystallization-proposer.js.map +1 -1
- package/dist/services/dedupe-policy.js.map +1 -1
- package/dist/services/deprecated-cron-commands.js.map +1 -1
- package/dist/services/directive-extract.js.map +1 -1
- package/dist/services/document-chunker.js.map +1 -1
- package/dist/services/document-grader.js.map +1 -1
- package/dist/services/dream-cycle.js.map +1 -1
- package/dist/services/embedding-migration.js.map +1 -1
- package/dist/services/embedding-registry.js.map +1 -1
- package/dist/services/embeddings/chain-provider.js.map +1 -1
- package/dist/services/embeddings/factory.js.map +1 -1
- package/dist/services/embeddings/fallback-provider.js.map +1 -1
- package/dist/services/embeddings/ollama-provider.js.map +1 -1
- package/dist/services/embeddings/onnx-provider.js.map +1 -1
- package/dist/services/embeddings/openai-provider.js.map +1 -1
- package/dist/services/embeddings/shared.js +3 -3
- package/dist/services/embeddings/shared.js.map +1 -1
- package/dist/services/embeddings/types.js.map +1 -1
- package/dist/services/entity-enrichment-adaptive.js +128 -0
- package/dist/services/entity-enrichment-adaptive.js.map +1 -0
- package/dist/services/entity-enrichment-cli.js +389 -42
- package/dist/services/entity-enrichment-cli.js.map +1 -1
- package/dist/services/entity-enrichment.js +31 -5
- package/dist/services/entity-enrichment.js.map +1 -1
- package/dist/services/error-reporter/noisy-errors.js.map +1 -1
- package/dist/services/error-reporter/sanitize.js.map +1 -1
- package/dist/services/error-reporter.js.map +1 -1
- package/dist/services/event-hub-repair.js.map +1 -1
- package/dist/services/export-memory.js.map +1 -1
- package/dist/services/fact-extraction.js.map +1 -1
- package/dist/services/feedback-effectiveness.js.map +1 -1
- package/dist/services/find-duplicates.js.map +1 -1
- package/dist/services/frustration-detector.js.map +1 -1
- package/dist/services/fts-search.js.map +1 -1
- package/dist/services/gap-detector.js.map +1 -1
- package/dist/services/generated-skill-lifecycle.js.map +1 -1
- package/dist/services/generated-skill-validation.js.map +1 -1
- package/dist/services/goal-active-task-mirror.js.map +1 -1
- package/dist/services/goal-circuit-breaker.js.map +1 -1
- package/dist/services/goal-health.js.map +1 -1
- package/dist/services/goal-registry.js.map +1 -1
- package/dist/services/goal-stewardship-heartbeat.js.map +1 -1
- package/dist/services/goal-stewardship-llm-triage.js.map +1 -1
- package/dist/services/goal-stewardship-verify-cron.js.map +1 -1
- package/dist/services/goal-stewardship.js.map +1 -1
- package/dist/services/goal-subagent.js.map +1 -1
- package/dist/services/graph-retrieval.js.map +1 -1
- package/dist/services/humanizer-score.js.map +1 -1
- package/dist/services/hybrid-mem-cron-default-job-steps.js.map +1 -1
- package/dist/services/hyde-helper.js.map +1 -1
- package/dist/services/identity-reflection.js.map +1 -1
- package/dist/services/implicit-feedback-extract.js.map +1 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/ingest-utils.js.map +1 -1
- package/dist/services/intent-template.js.map +1 -1
- package/dist/services/json-array-parser.js.map +1 -1
- package/dist/services/knowledge-gaps.js.map +1 -1
- package/dist/services/language-keywords-build.js.map +1 -1
- package/dist/services/lifecycle/github-adapter.js.map +1 -1
- package/dist/services/llm-rate-limit-headers.js +1 -2
- package/dist/services/llm-rate-limit-headers.js.map +1 -1
- package/dist/services/maintenance-auto-fix.js.map +1 -1
- package/dist/services/maintenance-log-analyzer.js +7 -1
- package/dist/services/maintenance-log-analyzer.js.map +1 -1
- package/dist/services/maintenance-timestamp.js.map +1 -1
- package/dist/services/memory-diagnostics.js.map +1 -1
- package/dist/services/memory-index.js.map +1 -1
- package/dist/services/merge-results.js.map +1 -1
- package/dist/services/model-capabilities.js.map +1 -1
- package/dist/services/model-pricing.js.map +1 -1
- package/dist/services/narrative-recall.js.map +1 -1
- package/dist/services/openclaw-session-artifact.js.map +1 -1
- package/dist/services/passive-observer.js.map +1 -1
- package/dist/services/pattern-detector-hash.js.map +1 -1
- package/dist/services/pattern-detector.js.map +1 -1
- package/dist/services/pending-autopilot/foundation.js.map +1 -1
- package/dist/services/pending-autopilot/redaction.js.map +1 -1
- package/dist/services/pending-autopilot/store.js.map +1 -1
- package/dist/services/pending-autopilot/types.js.map +1 -1
- package/dist/services/pending-digest-autopilot-cron.js.map +1 -1
- package/dist/services/pending-digest-autopilot.js.map +1 -1
- package/dist/services/pending-review-digest.js.map +1 -1
- package/dist/services/persona-proposal-triage.js.map +1 -1
- package/dist/services/persona-state-promotion.js.map +1 -1
- package/dist/services/post-compaction-recall.js.map +1 -1
- package/dist/services/pre-consolidation-flush.js.map +1 -1
- package/dist/services/pre-finalization-guard.js.map +1 -1
- package/dist/services/procedure-cluster.js.map +1 -1
- package/dist/services/procedure-extractor.js.map +1 -1
- package/dist/services/procedure-promotion/duplicate-skill-cache.js.map +1 -1
- package/dist/services/procedure-promotion-policy.js.map +1 -1
- package/dist/services/procedure-selection-metrics.js.map +1 -1
- package/dist/services/procedure-skill-eval.js.map +1 -1
- package/dist/services/procedure-skill-generator.js.map +1 -1
- package/dist/services/procedure-skill-recipe.js.map +1 -1
- package/dist/services/procedure-skill-shrink.js.map +1 -1
- package/dist/services/procedure-skill-workflow.js.map +1 -1
- package/dist/services/provenance.js.map +1 -1
- package/dist/services/public-export-bundle.js.map +1 -1
- package/dist/services/python-bridge.js.map +1 -1
- package/dist/services/query-expander.js.map +1 -1
- package/dist/services/query-validator.js.map +1 -1
- package/dist/services/recall-pipeline.js.map +1 -1
- package/dist/services/recall-timing.js.map +1 -1
- package/dist/services/recent-http-attempts.js.map +1 -1
- package/dist/services/reflection/shared.js.map +1 -1
- package/dist/services/reflection.js.map +1 -1
- package/dist/services/reinforcement-extract.js.map +1 -1
- package/dist/services/reranker.js.map +1 -1
- package/dist/services/responses-adapter.js.map +1 -1
- package/dist/services/retrieval-aliases.js.map +1 -1
- package/dist/services/retrieval-mode-policy.js.map +1 -1
- package/dist/services/retrieval-orchestrator/packing.js.map +1 -1
- package/dist/services/retrieval-orchestrator.d.ts +2 -3
- package/dist/services/retrieval-orchestrator.js.map +1 -1
- package/dist/services/rrf-fusion.js.map +1 -1
- package/dist/services/self-correction-extract.js.map +1 -1
- package/dist/services/session-observability.js.map +1 -1
- package/dist/services/session-pre-filter.js.map +1 -1
- package/dist/services/shortest-path.js.map +1 -1
- package/dist/services/skill-allowed-tools.js.map +1 -1
- package/dist/services/skill-creator-validator.js.map +1 -1
- package/dist/services/skill-crystallizer-helpers.js.map +1 -1
- package/dist/services/skill-crystallizer.js.map +1 -1
- package/dist/services/skill-description-builder.js.map +1 -1
- package/dist/services/skill-eval-synthesizer.js.map +1 -1
- package/dist/services/skill-examples-builder.js.map +1 -1
- package/dist/services/skill-frontmatter.js.map +1 -1
- package/dist/services/skill-name-validator.js.map +1 -1
- package/dist/services/skill-prompt-injection.js.map +1 -1
- package/dist/services/skill-reference-sidecar.js.map +1 -1
- package/dist/services/skill-script-bundler.js.map +1 -1
- package/dist/services/skill-validator.js.map +1 -1
- package/dist/services/startup-memory-attribution.js.map +1 -1
- package/dist/services/task-hygiene.js.map +1 -1
- package/dist/services/task-ledger/canonical.js.map +1 -1
- package/dist/services/task-ledger-facts.js.map +1 -1
- package/dist/services/task-queue-leases.js.map +1 -1
- package/dist/services/task-queue-watchdog.js.map +1 -1
- package/dist/services/tool-effectiveness.js.map +1 -1
- package/dist/services/tool-proposer.js.map +1 -1
- package/dist/services/tools-md-section.js.map +1 -1
- package/dist/services/topic-clusters.js.map +1 -1
- package/dist/services/trajectory-tracker.js.map +1 -1
- package/dist/services/vector-backend-observability.js.map +1 -1
- package/dist/services/vector-lifecycle-audit.js.map +1 -1
- package/dist/services/vector-maintenance.js.map +1 -1
- package/dist/services/vector-search.js.map +1 -1
- package/dist/services/verification-store.js.map +1 -1
- package/dist/services/verified-fact-triage.js.map +1 -1
- package/dist/services/wal-helpers.js.map +1 -1
- package/dist/services/workflow-tracker.js.map +1 -1
- package/dist/setup/bootstrap-databases.js.map +1 -1
- package/dist/setup/cli-context/cli-services.js.map +1 -1
- package/dist/setup/cli-context/help-text.js.map +1 -1
- package/dist/setup/cli-context/metadata.js.map +1 -1
- package/dist/setup/cli-context/register-cli-with-help.js.map +1 -1
- package/dist/setup/cli-context/register-full.js.map +1 -1
- package/dist/setup/cli-context/register-help.js.map +1 -1
- package/dist/setup/cost-instrumentation.js.map +1 -1
- package/dist/setup/hybrid-memory-generation-state.js.map +1 -1
- package/dist/setup/hybrid-memory-reload-coordinator.js +13 -13
- package/dist/setup/hybrid-memory-reload-coordinator.js.map +1 -1
- package/dist/setup/plugin-service.js.map +1 -1
- package/dist/setup/provider-router.js.map +1 -1
- package/dist/setup/register-context-engine.js.map +1 -1
- package/dist/setup/register-hooks.js.map +1 -1
- package/dist/setup/register-plugin.js +25 -21
- package/dist/setup/register-plugin.js.map +1 -1
- package/dist/setup/register-tools.js.map +1 -1
- package/dist/setup/reregister-policy.js +2 -2
- package/dist/setup/reregister-policy.js.map +1 -1
- package/dist/setup/tool-installers.js.map +1 -1
- package/dist/setup/workspace-bootstrap.js.map +1 -1
- package/dist/src/worker/narratives.js.map +1 -1
- package/dist/tools/apitap-tools.js.map +1 -1
- package/dist/tools/credential-tools.js.map +1 -1
- package/dist/tools/crystallization-tools.js.map +1 -1
- package/dist/tools/dashboard-routes.js.map +1 -1
- package/dist/tools/document-tools.js.map +1 -1
- package/dist/tools/goal-tools.js.map +1 -1
- package/dist/tools/graph-tools.js.map +1 -1
- package/dist/tools/issue-tools.js.map +1 -1
- package/dist/tools/memory/build-runtime.js.map +1 -1
- package/dist/tools/memory/helpers.js.map +1 -1
- package/dist/tools/memory/register-checkpoint-tools.js.map +1 -1
- package/dist/tools/memory/register-directory-tools.js.map +1 -1
- package/dist/tools/memory/register-edict-tools.js.map +1 -1
- package/dist/tools/memory/register-episode-tools.js.map +1 -1
- package/dist/tools/memory/register-recall-tools.js.map +1 -1
- package/dist/tools/memory/register-store-tools.js.map +1 -1
- package/dist/tools/memory-tools.js.map +1 -1
- package/dist/tools/persona-tools.js.map +1 -1
- package/dist/tools/provenance-tools.js.map +1 -1
- package/dist/tools/public-api-routes.js.map +1 -1
- package/dist/tools/safe-register-http-route.js.map +1 -1
- package/dist/tools/self-extension-tools.js.map +1 -1
- package/dist/tools/task-hygiene-tools.js.map +1 -1
- package/dist/tools/utility-tools.js.map +1 -1
- package/dist/tools/verification-tools.js.map +1 -1
- package/dist/tools/workflow-tools.js.map +1 -1
- package/dist/types/issue-types.js.map +1 -1
- package/dist/types/learnings-types.js.map +1 -1
- package/dist/types/memory.js.map +1 -1
- package/dist/utils/apim-gateway-fetch.js.map +1 -1
- package/dist/utils/atomic-write.js.map +1 -1
- package/dist/utils/auth-failover.js.map +1 -1
- package/dist/utils/auth.js.map +1 -1
- package/dist/utils/compaction-model-watchdog.js.map +1 -1
- package/dist/utils/consolidation-controls.js.map +1 -1
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/date-detector.js.map +1 -1
- package/dist/utils/dates.js.map +1 -1
- package/dist/utils/decay.js.map +1 -1
- package/dist/utils/duration.js.map +1 -1
- package/dist/utils/embed-call.js.map +1 -1
- package/dist/utils/entity-lookup-resolve.js.map +1 -1
- package/dist/utils/entity-mention-quality.js.map +1 -1
- package/dist/utils/entity-stopwords.js.map +1 -1
- package/dist/utils/env-manager.js.map +1 -1
- package/dist/utils/error-tracking.js.map +1 -1
- package/dist/utils/event-loop-yield.js.map +1 -1
- package/dist/utils/extract-last-user-message.js.map +1 -1
- package/dist/utils/extraction-from-template.js.map +1 -1
- package/dist/utils/fact-embeddings.js.map +1 -1
- package/dist/utils/file-snapshot.js.map +1 -1
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/gh-repo-arg.js.map +1 -1
- package/dist/utils/hybrid-mem-json-cli.js.map +1 -1
- package/dist/utils/language-keywords.js.map +1 -1
- package/dist/utils/lifecycle-generation.js.map +1 -1
- package/dist/utils/llm-json-array.js.map +1 -1
- package/dist/utils/llm-selection.js.map +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/model-provider-family.js.map +1 -1
- package/dist/utils/model-tier.js.map +1 -1
- package/dist/utils/openclaw-agent-defaults.js.map +1 -1
- package/dist/utils/path.js.map +1 -1
- package/dist/utils/plugin-root.js.map +1 -1
- package/dist/utils/plugin-update-check.js.map +1 -1
- package/dist/utils/procedure-risk.js.map +1 -1
- package/dist/utils/progress-indicators.js.map +1 -1
- package/dist/utils/prompt-loader.js.map +1 -1
- package/dist/utils/provenance.js.map +1 -1
- package/dist/utils/provider-detection.js.map +1 -1
- package/dist/utils/registration-superseded.js.map +1 -1
- package/dist/utils/salience.js.map +1 -1
- package/dist/utils/sanitize-messages.js.map +1 -1
- package/dist/utils/scope-filter.js.map +1 -1
- package/dist/utils/skill-discovery.js.map +1 -1
- package/dist/utils/sqlite-file-perms.js.map +1 -1
- package/dist/utils/sqlite-outcome-compat.js.map +1 -1
- package/dist/utils/sqlite-transaction.js.map +1 -1
- package/dist/utils/stable-stringify.js.map +1 -1
- package/dist/utils/subagent-ended-utils.js.map +1 -1
- package/dist/utils/tags.js.map +1 -1
- package/dist/utils/text.js.map +1 -1
- package/dist/utils/timeout.js.map +1 -1
- package/dist/utils/typebox.js.map +1 -1
- package/dist/utils/version-check.js.map +1 -1
- package/dist/utils/wal-replay.js.map +1 -1
- package/dist/versionInfo.js.map +1 -1
- package/index.ts +2 -2
- package/lifecycle/hooks.ts +0 -1
- package/npm-shrinkwrap.json +487 -186
- package/openclaw.plugin.json +1 -1
- package/package.json +2 -2
- package/services/adaptive-catch-up-pacing.ts +28 -0
- package/services/chat.ts +34 -1
- package/services/cron-job-bash-harness.ts +52 -5
- package/services/embeddings/shared.ts +5 -2
- package/services/entity-enrichment-adaptive.ts +245 -0
- package/services/entity-enrichment-cli.ts +553 -47
- package/services/entity-enrichment.ts +43 -2
- package/services/llm-rate-limit-headers.ts +1 -4
- package/services/maintenance-log-analyzer.ts +13 -9
- package/services/reinforcement-extract.ts +19 -0
- package/setup/hybrid-memory-reload-coordinator.ts +26 -0
- package/setup/register-plugin.ts +62 -32
- package/setup/reregister-policy.ts +10 -5
|
@@ -2,28 +2,34 @@
|
|
|
2
2
|
* reflection & dream-cycle commands — split from register-corrections-and-pipeline.ts.
|
|
3
3
|
*/
|
|
4
4
|
import { readFileSync, writeFileSync } from "node:fs";
|
|
5
|
+
import type {
|
|
6
|
+
ContradictionReviewDecision,
|
|
7
|
+
ContradictionReviewItem,
|
|
8
|
+
} from "../../../backends/facts-db/contradictions.js";
|
|
9
|
+
import { PROJECT_STATE_LWW_KEYS } from "../../../backends/facts-db/contradictions.js";
|
|
5
10
|
import { getCronModelConfig, getDefaultCronModel } from "../../../config.js";
|
|
6
11
|
import { capturePluginError } from "../../../services/error-reporter.js";
|
|
7
|
-
import { cleanupImplicitFeedbackDuplicates, type ExtractImplicitFeedbackProgressSnapshot } from "../../cmd-feedback.js";
|
|
8
12
|
import { getEffectivenessReport, runClosedLoopAnalysis } from "../../../services/feedback-effectiveness.js";
|
|
13
|
+
import {
|
|
14
|
+
cleanupImplicitFeedbackDuplicates,
|
|
15
|
+
type ExtractImplicitFeedbackProgressSnapshot,
|
|
16
|
+
implicitFeedbackCollapseStatus,
|
|
17
|
+
} from "../../cmd-feedback.js";
|
|
9
18
|
import { type CommanderOptsParent, readHybridMemVerbose } from "../../global-verbose.js";
|
|
10
19
|
import { type Chainable, withExit } from "../../shared.js";
|
|
11
20
|
import type { ManageBindings } from "./bindings.js";
|
|
12
|
-
import { PROJECT_STATE_LWW_KEYS } from "../../../backends/facts-db/contradictions.js";
|
|
13
|
-
import type {
|
|
14
|
-
ContradictionReviewDecision,
|
|
15
|
-
ContradictionReviewItem,
|
|
16
|
-
} from "../../../backends/facts-db/contradictions.js";
|
|
17
21
|
|
|
18
22
|
import {
|
|
19
23
|
assessContinuousVerificationResult,
|
|
20
24
|
formatContinuousVerificationAssessmentLine,
|
|
21
25
|
formatExtractImplicitFeedbackProgress,
|
|
22
|
-
runVerboseFollowUp,
|
|
23
26
|
type RunVerboseFollowUpOptions,
|
|
27
|
+
runVerboseFollowUp,
|
|
24
28
|
} from "./dream-cycle-followup.js";
|
|
25
29
|
import { runMaintenanceHeartbeat } from "./maintenance-heartbeat.js";
|
|
26
30
|
|
|
31
|
+
const CONTRADICTION_BUCKET_PREVIEW_TARGET_RATE = 0.8;
|
|
32
|
+
|
|
27
33
|
function writeContradictionReviewFile(outputPath: string, items: ContradictionReviewItem[]): void {
|
|
28
34
|
const content = `${items.map((item) => JSON.stringify(item)).join("\n")}${items.length > 0 ? "\n" : ""}`;
|
|
29
35
|
writeFileSync(outputPath, content, "utf-8");
|
|
@@ -441,9 +447,19 @@ export function registerManageReflectionPipeline(mem: Chainable, b: ManageBindin
|
|
|
441
447
|
`stage=scan; batches=${batches}; scanned=${scanned}; collapsed=${collapsed}; includeLegacy=${opts?.includeLegacy === true ? "yes" : "no"}`,
|
|
442
448
|
},
|
|
443
449
|
);
|
|
450
|
+
const collapseStatus = implicitFeedbackCollapseStatus(scanned, collapsed);
|
|
444
451
|
console.log(
|
|
445
|
-
`Implicit-feedback collapse
|
|
452
|
+
`Implicit-feedback collapse summary: scanned ${scanned}, collapsed ${collapsed}, status=${collapseStatus} ${dryRun ? "(dry-run)" : ""}`,
|
|
446
453
|
);
|
|
454
|
+
if (!dryRun && collapseStatus === "no_candidates") {
|
|
455
|
+
console.log(
|
|
456
|
+
"No implicit-feedback rows matched the collapse scan window. Verify source='implicit-feedback' rows exist and rerun with a wider scan limit.",
|
|
457
|
+
);
|
|
458
|
+
} else if (!dryRun && collapseStatus === "no_changes") {
|
|
459
|
+
console.log(
|
|
460
|
+
"No near-duplicate rows met the current threshold. Consider `--include-legacy` and/or a lower `--threshold`, then rerun audit health to verify bloat reduction.",
|
|
461
|
+
);
|
|
462
|
+
}
|
|
447
463
|
return;
|
|
448
464
|
}
|
|
449
465
|
let res;
|
|
@@ -1142,6 +1158,56 @@ export function registerManageReflectionPipeline(mem: Chainable, b: ManageBindin
|
|
|
1142
1158
|
}
|
|
1143
1159
|
}
|
|
1144
1160
|
if (res.ambiguous.length > 0) {
|
|
1161
|
+
let unresolvedBuckets: {
|
|
1162
|
+
safeDeterministic: number;
|
|
1163
|
+
possibleEntityReuse: number;
|
|
1164
|
+
olderVerified: number;
|
|
1165
|
+
humanRequired: number;
|
|
1166
|
+
otherManual: number;
|
|
1167
|
+
} | null = null;
|
|
1168
|
+
try {
|
|
1169
|
+
const preview = await ctx.runResolveContradictionsAuto({
|
|
1170
|
+
dryRun: true,
|
|
1171
|
+
targetRate: CONTRADICTION_BUCKET_PREVIEW_TARGET_RATE,
|
|
1172
|
+
});
|
|
1173
|
+
let possibleEntityReuse = 0;
|
|
1174
|
+
let olderVerified = 0;
|
|
1175
|
+
let humanRequired = 0;
|
|
1176
|
+
let otherManual = 0;
|
|
1177
|
+
for (const item of preview.reviewItems) {
|
|
1178
|
+
if (item.possibleOverloadedEntity) {
|
|
1179
|
+
possibleEntityReuse++;
|
|
1180
|
+
continue;
|
|
1181
|
+
}
|
|
1182
|
+
const reason = item.suggestedReason.toLowerCase();
|
|
1183
|
+
if (reason.includes("older fact is verified")) {
|
|
1184
|
+
olderVerified++;
|
|
1185
|
+
continue;
|
|
1186
|
+
}
|
|
1187
|
+
if (reason.includes("no safe deterministic resolution matched")) {
|
|
1188
|
+
humanRequired++;
|
|
1189
|
+
continue;
|
|
1190
|
+
}
|
|
1191
|
+
otherManual++;
|
|
1192
|
+
}
|
|
1193
|
+
unresolvedBuckets = {
|
|
1194
|
+
safeDeterministic: preview.deterministic,
|
|
1195
|
+
possibleEntityReuse,
|
|
1196
|
+
olderVerified,
|
|
1197
|
+
humanRequired,
|
|
1198
|
+
otherManual,
|
|
1199
|
+
};
|
|
1200
|
+
} catch (err) {
|
|
1201
|
+
capturePluginError(err instanceof Error ? err : new Error(String(err)), {
|
|
1202
|
+
subsystem: "cli",
|
|
1203
|
+
operation: "resolve-contradictions-bucket-preview",
|
|
1204
|
+
});
|
|
1205
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
1206
|
+
console.error(
|
|
1207
|
+
`Warning: could not generate unresolved_by_reason bucket preview (${message}). Check database state and rerun if needed.`,
|
|
1208
|
+
);
|
|
1209
|
+
}
|
|
1210
|
+
|
|
1145
1211
|
const trunc = (s: string | null | undefined, n: number): string => {
|
|
1146
1212
|
if (s == null || s === "") return "(empty)";
|
|
1147
1213
|
const t = s.replace(/\s+/g, " ").trim();
|
|
@@ -1175,6 +1241,16 @@ export function registerManageReflectionPipeline(mem: Chainable, b: ManageBindin
|
|
|
1175
1241
|
if (!verbose && !details && res.ambiguous.length > 10) {
|
|
1176
1242
|
console.log(` ...and ${res.ambiguous.length - 10} more`);
|
|
1177
1243
|
}
|
|
1244
|
+
if (unresolvedBuckets) {
|
|
1245
|
+
console.log("unresolved_by_reason:");
|
|
1246
|
+
console.log(` safe_deterministic_auto=${unresolvedBuckets.safeDeterministic}`);
|
|
1247
|
+
console.log(` possible_entity_reuse=${unresolvedBuckets.possibleEntityReuse}`);
|
|
1248
|
+
console.log(` older_verified=${unresolvedBuckets.olderVerified}`);
|
|
1249
|
+
console.log(` human_required=${unresolvedBuckets.humanRequired}`);
|
|
1250
|
+
if (unresolvedBuckets.otherManual > 0) {
|
|
1251
|
+
console.log(` other_manual=${unresolvedBuckets.otherManual}`);
|
|
1252
|
+
}
|
|
1253
|
+
}
|
|
1178
1254
|
console.log("");
|
|
1179
1255
|
console.log(
|
|
1180
1256
|
"What this means: each line is two stored facts with the same entity and key but different values. " +
|
|
@@ -1191,6 +1267,37 @@ export function registerManageReflectionPipeline(mem: Chainable, b: ManageBindin
|
|
|
1191
1267
|
if (!details) {
|
|
1192
1268
|
console.log(" 3. Easier scan: openclaw hybrid-mem resolve-contradictions --details");
|
|
1193
1269
|
}
|
|
1270
|
+
let nextStepNumber = 4;
|
|
1271
|
+
if (unresolvedBuckets?.safeDeterministic && unresolvedBuckets.safeDeterministic > 0) {
|
|
1272
|
+
console.log(
|
|
1273
|
+
` ${nextStepNumber}. Apply deterministic safe bucket (${unresolvedBuckets.safeDeterministic}): openclaw hybrid-mem resolve-contradictions --auto --apply`,
|
|
1274
|
+
);
|
|
1275
|
+
nextStepNumber++;
|
|
1276
|
+
}
|
|
1277
|
+
if (unresolvedBuckets?.possibleEntityReuse && unresolvedBuckets.possibleEntityReuse > 0) {
|
|
1278
|
+
console.log(
|
|
1279
|
+
` ${nextStepNumber}. Review possible entity-reuse bucket (${unresolvedBuckets.possibleEntityReuse}): inspect entity naming/scope before superseding facts.`,
|
|
1280
|
+
);
|
|
1281
|
+
nextStepNumber++;
|
|
1282
|
+
}
|
|
1283
|
+
if (unresolvedBuckets?.olderVerified && unresolvedBuckets.olderVerified > 0) {
|
|
1284
|
+
console.log(
|
|
1285
|
+
` ${nextStepNumber}. Review verified-older bucket (${unresolvedBuckets.olderVerified}): verify whether stale verification should be retained or replaced.`,
|
|
1286
|
+
);
|
|
1287
|
+
nextStepNumber++;
|
|
1288
|
+
}
|
|
1289
|
+
if (unresolvedBuckets?.humanRequired && unresolvedBuckets.humanRequired > 0) {
|
|
1290
|
+
console.log(
|
|
1291
|
+
` ${nextStepNumber}. Review human-required bucket (${unresolvedBuckets.humanRequired}): export and adjudicate with openclaw hybrid-mem resolve-contradictions --auto --dry-run --export-review <path>.`,
|
|
1292
|
+
);
|
|
1293
|
+
nextStepNumber++;
|
|
1294
|
+
}
|
|
1295
|
+
if (unresolvedBuckets?.otherManual && unresolvedBuckets.otherManual > 0) {
|
|
1296
|
+
console.log(
|
|
1297
|
+
` ${nextStepNumber}. Review other-manual bucket (${unresolvedBuckets.otherManual}): inspect details output and handle pair-specific blockers before rerun.`,
|
|
1298
|
+
);
|
|
1299
|
+
nextStepNumber++;
|
|
1300
|
+
}
|
|
1194
1301
|
const hasProjectStatePairs = res.ambiguous.some((a) => {
|
|
1195
1302
|
const newF = factsDb.getById(a.factIdNew);
|
|
1196
1303
|
const oldF = factsDb.getById(a.factIdOld);
|
|
@@ -1201,8 +1308,9 @@ export function registerManageReflectionPipeline(mem: Chainable, b: ManageBindin
|
|
|
1201
1308
|
});
|
|
1202
1309
|
if (hasProjectStatePairs) {
|
|
1203
1310
|
console.log(
|
|
1204
|
-
|
|
1311
|
+
` ${nextStepNumber}. Auto-resolve project-state: openclaw hybrid-mem resolve-contradictions --project-state-lww --dry-run`,
|
|
1205
1312
|
);
|
|
1313
|
+
nextStepNumber++;
|
|
1206
1314
|
}
|
|
1207
1315
|
}
|
|
1208
1316
|
},
|
|
@@ -1291,12 +1399,40 @@ export function registerManageReflectionPipeline(mem: Chainable, b: ManageBindin
|
|
|
1291
1399
|
.option("--limit <n>", "Max facts to process (default 200)", "200")
|
|
1292
1400
|
.option("--all", "Process the full pending backlog in one catch-up run (ignores --limit cap)")
|
|
1293
1401
|
.option("--model <m>", "LLM model (default: cron nano tier)")
|
|
1402
|
+
.option("--adaptive-catch-up", "Enable adaptive enrich-entities pacing (throughput ramp-up + pressure backoff)")
|
|
1403
|
+
.option("--batch-size <n>", "Adaptive catch-up baseline batch size (default 20)", "20")
|
|
1404
|
+
.option("--batch-delay-ms <n>", "Adaptive catch-up baseline delay between batches in ms (default 150)", "150")
|
|
1405
|
+
.option(
|
|
1406
|
+
"--time-budget-sec <n>",
|
|
1407
|
+
"Stop cleanly after this many seconds (adaptive catch-up; checked between facts/batches)",
|
|
1408
|
+
)
|
|
1409
|
+
.option("--target-duration-sec <n>", "Alias for --time-budget-sec")
|
|
1410
|
+
.option("--max-concurrency <n>", "Max parallel LLM extractions per batch when adaptive (default 3)", "3")
|
|
1411
|
+
.option(
|
|
1412
|
+
"--provider-pressure-budget <n>",
|
|
1413
|
+
"Stop after this many cumulative rate-limit/timeout pressure events (adaptive catch-up)",
|
|
1414
|
+
)
|
|
1415
|
+
.option("--json", "Emit structured JSON report (includes issue #1791 telemetry when adaptive)")
|
|
1294
1416
|
.option("--dry-run", "Only report how many facts need enrichment")
|
|
1295
1417
|
.option("-v, --verbose", "List candidate fact ids (dry-run) or enriched fact ids and mentions (after run)")
|
|
1296
1418
|
.action(
|
|
1297
1419
|
withExit(
|
|
1298
1420
|
async (
|
|
1299
|
-
opts?: {
|
|
1421
|
+
opts?: {
|
|
1422
|
+
limit?: string;
|
|
1423
|
+
model?: string;
|
|
1424
|
+
all?: boolean;
|
|
1425
|
+
dryRun?: boolean;
|
|
1426
|
+
verbose?: boolean;
|
|
1427
|
+
adaptiveCatchUp?: boolean;
|
|
1428
|
+
batchSize?: string;
|
|
1429
|
+
batchDelayMs?: string;
|
|
1430
|
+
timeBudgetSec?: string;
|
|
1431
|
+
targetDurationSec?: string;
|
|
1432
|
+
maxConcurrency?: string;
|
|
1433
|
+
providerPressureBudget?: string;
|
|
1434
|
+
json?: boolean;
|
|
1435
|
+
},
|
|
1300
1436
|
cmd?: CommanderOptsParent,
|
|
1301
1437
|
) => {
|
|
1302
1438
|
const all = !!opts?.all;
|
|
@@ -1308,7 +1444,32 @@ export function registerManageReflectionPipeline(mem: Chainable, b: ManageBindin
|
|
|
1308
1444
|
const dryRun = !!opts?.dryRun;
|
|
1309
1445
|
const model = opts?.model;
|
|
1310
1446
|
const verbose = !!opts?.verbose || readHybridMemVerbose(cmd);
|
|
1311
|
-
|
|
1447
|
+
const adaptiveCatchUp = !!opts?.adaptiveCatchUp;
|
|
1448
|
+
const batchSize = Number.parseInt(opts?.batchSize ?? "20", 10);
|
|
1449
|
+
const batchDelayMs = Number.parseInt(opts?.batchDelayMs ?? "150", 10);
|
|
1450
|
+
const timeBudgetRaw = opts?.timeBudgetSec ?? opts?.targetDurationSec;
|
|
1451
|
+
const timeBudgetSec =
|
|
1452
|
+
timeBudgetRaw != null && timeBudgetRaw !== "" ? Number.parseInt(timeBudgetRaw, 10) : undefined;
|
|
1453
|
+
const maxConcurrency = Number.parseInt(opts?.maxConcurrency ?? "3", 10);
|
|
1454
|
+
if (timeBudgetSec != null && (!Number.isFinite(timeBudgetSec) || timeBudgetSec < 1)) {
|
|
1455
|
+
throw new Error("--time-budget-sec / --target-duration-sec must be a positive integer (>= 1).");
|
|
1456
|
+
}
|
|
1457
|
+
if (!Number.isFinite(maxConcurrency) || maxConcurrency < 1) {
|
|
1458
|
+
throw new Error("--max-concurrency must be a positive integer (>= 1).");
|
|
1459
|
+
}
|
|
1460
|
+
const providerPressureBudgetRaw = opts?.providerPressureBudget;
|
|
1461
|
+
const providerPressureBudget =
|
|
1462
|
+
providerPressureBudgetRaw != null && providerPressureBudgetRaw !== ""
|
|
1463
|
+
? Number.parseInt(providerPressureBudgetRaw, 10)
|
|
1464
|
+
: undefined;
|
|
1465
|
+
if (
|
|
1466
|
+
providerPressureBudget != null &&
|
|
1467
|
+
(!Number.isFinite(providerPressureBudget) || providerPressureBudget < 1)
|
|
1468
|
+
) {
|
|
1469
|
+
throw new Error("--provider-pressure-budget must be a positive integer (>= 1).");
|
|
1470
|
+
}
|
|
1471
|
+
const jsonMode = !!opts?.json;
|
|
1472
|
+
let enrichProgress: import("../../../services/entity-enrichment-cli.js").EntityEnrichmentProgress = {
|
|
1312
1473
|
processed: 0,
|
|
1313
1474
|
total: 0,
|
|
1314
1475
|
factsEnriched: 0,
|
|
@@ -1321,7 +1482,14 @@ export function registerManageReflectionPipeline(mem: Chainable, b: ManageBindin
|
|
|
1321
1482
|
rejected: 0,
|
|
1322
1483
|
duplicates: 0,
|
|
1323
1484
|
rejectReasons: {},
|
|
1485
|
+
effectiveBatchSize: adaptiveCatchUp ? batchSize : undefined,
|
|
1486
|
+
effectiveDelayMs: adaptiveCatchUp ? batchDelayMs : undefined,
|
|
1324
1487
|
};
|
|
1488
|
+
if (adaptiveCatchUp && !jsonMode) {
|
|
1489
|
+
console.log(
|
|
1490
|
+
`Entity enrichment adaptive catch-up enabled: baseline batch=${batchSize}, delayMs=${batchDelayMs}.`,
|
|
1491
|
+
);
|
|
1492
|
+
}
|
|
1325
1493
|
let res;
|
|
1326
1494
|
try {
|
|
1327
1495
|
res = await runMaintenanceHeartbeat(
|
|
@@ -1334,14 +1502,28 @@ export function registerManageReflectionPipeline(mem: Chainable, b: ManageBindin
|
|
|
1334
1502
|
dryRun,
|
|
1335
1503
|
model,
|
|
1336
1504
|
verbose,
|
|
1505
|
+
adaptiveCatchUp,
|
|
1506
|
+
batchSize,
|
|
1507
|
+
batchDelayMs,
|
|
1508
|
+
timeBudgetSec,
|
|
1509
|
+
maxConcurrency,
|
|
1510
|
+
providerPressureBudget,
|
|
1337
1511
|
onProgress: (next) => {
|
|
1338
1512
|
enrichProgress = next;
|
|
1339
1513
|
heartbeat.heartbeat();
|
|
1340
1514
|
},
|
|
1515
|
+
onAdaptivePacing: (next) => {
|
|
1516
|
+
if (verbose) {
|
|
1517
|
+
console.debug(
|
|
1518
|
+
`entity-enrichment-cli: adaptive pacing ${next.reason}; batch ${next.previousBatchSize}→${next.batchSize}, delay ${next.previousDelayMs}ms→${next.delayMs}ms, pressure=${next.batchPressureSignals}, transient=${next.batchTransientFailures}, rateLimited=${next.batchRateLimited}`,
|
|
1519
|
+
);
|
|
1520
|
+
}
|
|
1521
|
+
},
|
|
1341
1522
|
}),
|
|
1342
1523
|
{
|
|
1343
1524
|
progressSupplier: () =>
|
|
1344
|
-
`stage=entity-enrichment; mode=${all ? "all" : "bounded"}; processed=${enrichProgress.processed}/${enrichProgress.total}; enriched=${enrichProgress.factsEnriched}; accepted=${enrichProgress.accepted}; rejected=${enrichProgress.rejected}; remaining=${enrichProgress.remainingTotal}; eta_runs=${enrichProgress.estimatedRunsRemaining}; dryRun=${dryRun ? "yes" : "no"}`,
|
|
1525
|
+
`stage=entity-enrichment; mode=${all ? "all" : "bounded"}; processed=${enrichProgress.processed}/${enrichProgress.total}; enriched=${enrichProgress.factsEnriched}; accepted=${enrichProgress.accepted}; rejected=${enrichProgress.rejected}; llmFailures=${enrichProgress.llmFailures ?? 0}; remaining=${enrichProgress.remainingTotal}; eta_runs=${enrichProgress.estimatedRunsRemaining}; batch=${enrichProgress.effectiveBatchSize ?? "static"}; delay_ms=${enrichProgress.effectiveDelayMs ?? "static"}; concurrency=${enrichProgress.effectiveConcurrency ?? "static"}; stop=${enrichProgress.stopReason ?? "running"}; dryRun=${dryRun ? "yes" : "no"}`,
|
|
1526
|
+
jsonMode: jsonMode === true,
|
|
1345
1527
|
},
|
|
1346
1528
|
);
|
|
1347
1529
|
} catch (err) {
|
|
@@ -1357,6 +1539,34 @@ export function registerManageReflectionPipeline(mem: Chainable, b: ManageBindin
|
|
|
1357
1539
|
const estimatedRunsRemaining =
|
|
1358
1540
|
res.estimatedRunsRemaining ?? (mode === "all" ? 0 : Math.ceil(remainingTotal / Math.max(1, limit)));
|
|
1359
1541
|
const limitLabel = mode === "all" ? "all" : String(res.effectiveLimit ?? limit);
|
|
1542
|
+
const hasPartialFailure = res.llmFailures && res.llmFailures > 0;
|
|
1543
|
+
const exitCode = hasPartialFailure ? 2 : 0;
|
|
1544
|
+
const exitReason = hasPartialFailure ? "partial_llm_failures" : "success";
|
|
1545
|
+
const jsonReport = {
|
|
1546
|
+
dryRun,
|
|
1547
|
+
mode,
|
|
1548
|
+
limit: limitLabel,
|
|
1549
|
+
pendingBefore: pendingTotal,
|
|
1550
|
+
pendingBatch: res.pending,
|
|
1551
|
+
processed: res.processed,
|
|
1552
|
+
enriched: res.factsEnriched,
|
|
1553
|
+
remaining: remainingTotal,
|
|
1554
|
+
estimatedRunsRemaining,
|
|
1555
|
+
stopReason: res.stopReason ?? "completed",
|
|
1556
|
+
llmFailures: res.llmFailures ?? 0,
|
|
1557
|
+
adaptiveSummary: res.adaptiveSummary,
|
|
1558
|
+
telemetry: res.telemetry,
|
|
1559
|
+
rejectReasons: res.rejectReasons,
|
|
1560
|
+
exitCode,
|
|
1561
|
+
exitReason,
|
|
1562
|
+
};
|
|
1563
|
+
if (jsonMode) {
|
|
1564
|
+
console.log(JSON.stringify(jsonReport, null, 2));
|
|
1565
|
+
if (hasPartialFailure) {
|
|
1566
|
+
process.exitCode = 2;
|
|
1567
|
+
}
|
|
1568
|
+
return;
|
|
1569
|
+
}
|
|
1360
1570
|
if (res.pendingByTier) {
|
|
1361
1571
|
console.log(
|
|
1362
1572
|
`Entity enrichment backlog by tier: hot=${res.pendingByTier.hot}, warm=${res.pendingByTier.warm}, structural=${res.pendingByTier.structural}, cold=${res.pendingByTier.cold}, unknown=${res.pendingByTier.unknown}`,
|
|
@@ -1380,9 +1590,15 @@ export function registerManageReflectionPipeline(mem: Chainable, b: ManageBindin
|
|
|
1380
1590
|
for (const id of res.pendingFactIds) console.log(` ${id}`);
|
|
1381
1591
|
}
|
|
1382
1592
|
} else {
|
|
1593
|
+
const llmFailuresSuffix = res.llmFailures ? ` llmFailures=${res.llmFailures}` : "";
|
|
1383
1594
|
console.log(
|
|
1384
|
-
`Entity enrichment: processed=${res.processed} enriched=${res.factsEnriched} mentions=${res.mentions} accepted=${res.accepted} rejected=${res.rejected} duplicates=${res.duplicates}, batch=${res.pending}, pending-before-run=${pendingTotal}, remaining=${remainingTotal}, mode=${mode}, limit=${limitLabel}.`,
|
|
1595
|
+
`Entity enrichment: processed=${res.processed} enriched=${res.factsEnriched} mentions=${res.mentions} accepted=${res.accepted} rejected=${res.rejected} duplicates=${res.duplicates}${llmFailuresSuffix}, batch=${res.pending}, pending-before-run=${pendingTotal}, remaining=${remainingTotal}, mode=${mode}, limit=${limitLabel}.`,
|
|
1385
1596
|
);
|
|
1597
|
+
if (res.llmFailures && res.llmFailures > 0) {
|
|
1598
|
+
console.warn(
|
|
1599
|
+
`Warning: ${res.llmFailures} fact${res.llmFailures === 1 ? "" : "s"} skipped due to LLM extraction failures (exit code 2).`,
|
|
1600
|
+
);
|
|
1601
|
+
}
|
|
1386
1602
|
if (mode !== "all") {
|
|
1387
1603
|
console.log(`Estimated runs remaining at current limit: ${estimatedRunsRemaining}`);
|
|
1388
1604
|
}
|
|
@@ -1406,6 +1622,24 @@ export function registerManageReflectionPipeline(mem: Chainable, b: ManageBindin
|
|
|
1406
1622
|
console.log(` ${reason}: ${count}`);
|
|
1407
1623
|
}
|
|
1408
1624
|
}
|
|
1625
|
+
if (res.stopReason === "time_budget") {
|
|
1626
|
+
console.log(
|
|
1627
|
+
`Entity enrichment stopped: time budget reached (processed=${res.processed}, remaining=${remainingTotal}).`,
|
|
1628
|
+
);
|
|
1629
|
+
}
|
|
1630
|
+
if (res.telemetry) {
|
|
1631
|
+
console.log(`Entity enrichment adaptive telemetry: ${JSON.stringify(res.telemetry)}`);
|
|
1632
|
+
} else if (res.adaptiveSummary) {
|
|
1633
|
+
console.log(`Entity enrichment adaptive summary: ${JSON.stringify(res.adaptiveSummary)}`);
|
|
1634
|
+
}
|
|
1635
|
+
if (res.stopReason === "provider_budget") {
|
|
1636
|
+
console.log(
|
|
1637
|
+
`Entity enrichment stopped: provider pressure budget reached (rate limits/timeouts; processed=${res.processed}, remaining=${remainingTotal}).`,
|
|
1638
|
+
);
|
|
1639
|
+
}
|
|
1640
|
+
if (res.llmFailures && res.llmFailures > 0) {
|
|
1641
|
+
process.exitCode = 2;
|
|
1642
|
+
}
|
|
1409
1643
|
}
|
|
1410
1644
|
},
|
|
1411
1645
|
),
|