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
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
import { getEnv } from "../../../utils/env-manager.js";
|
|
2
2
|
import { capturePluginError } from "../../../services/error-reporter.js";
|
|
3
|
-
import {
|
|
3
|
+
import { is403QuotaOrRateLimitLike, parseRetryAfterMs } from "../../../services/llm-rate-limit-headers.js";
|
|
4
|
+
import { is429OrWrapped, is500OrWrapped, isConnectionErrorLike } from "../../../services/chat.js";
|
|
4
5
|
import { AllEmbeddingProvidersFailed } from "../../../services/embeddings/types.js";
|
|
5
6
|
import "../../../services/embeddings.js";
|
|
6
7
|
import { recordMaintenanceTimestamp } from "../../../services/maintenance-timestamp.js";
|
|
7
8
|
import { deleteVectorsForFactIds } from "../../../services/vector-maintenance.js";
|
|
8
9
|
import { approxIntervalMs, withExit } from "../../shared.js";
|
|
9
10
|
import { appendVectorLifecycleAuditEvent } from "../../../services/vector-lifecycle-audit.js";
|
|
11
|
+
import { computeAdaptivePressureDelayMs } from "../../../services/adaptive-catch-up-pacing.js";
|
|
12
|
+
import { buildVectorlessSloRepairRecommendation } from "../../../services/entity-enrichment-adaptive.js";
|
|
10
13
|
import { readHybridMemVerbose } from "../../global-verbose.js";
|
|
11
14
|
import { runMaintenanceHeartbeat } from "./maintenance-heartbeat.js";
|
|
12
15
|
import { countPendingReviewBacklogs } from "../../../services/pending-review-digest.js";
|
|
16
|
+
import { isPreStoreGuardBlocked } from "../../../backends/facts-db/crud.js";
|
|
13
17
|
import { migrateEmbeddings } from "../../../services/embedding-migration.js";
|
|
14
18
|
import { collectVectorBackendObservability } from "../../../services/vector-backend-observability.js";
|
|
15
19
|
import { embedCallWithTimeoutAndRetry } from "../../../utils/embed-call.js";
|
|
16
|
-
import { isPreStoreGuardBlocked } from "../../../backends/facts-db/crud.js";
|
|
17
20
|
import { countImplicitFeedbackTrajectorySignals, defaultReindexCheckpointPath, parseBoundedFloatOption, parseBoundedIntOption, readReindexCheckpoint, recordStorageGrowthSample, writeReindexCheckpoint } from "./storage-stats-helpers.js";
|
|
18
21
|
import { existsSync, unlinkSync } from "node:fs";
|
|
19
22
|
//#region cli/commands/manage/register-storage-maintenance.ts
|
|
@@ -46,6 +49,33 @@ function isEmbeddingProviderServerError(err) {
|
|
|
46
49
|
if (err instanceof AllEmbeddingProvidersFailed) return err.causes.some((cause) => is500OrWrapped(cause));
|
|
47
50
|
return false;
|
|
48
51
|
}
|
|
52
|
+
function isEmbeddingProviderRateLimitError(err) {
|
|
53
|
+
if (!(err instanceof Error)) return false;
|
|
54
|
+
if (is429OrWrapped(err) || is403QuotaOrRateLimitLike(err)) return true;
|
|
55
|
+
if (err instanceof AllEmbeddingProvidersFailed) return err.causes.some((cause) => cause instanceof Error && (is429OrWrapped(cause) || is403QuotaOrRateLimitLike(cause)));
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
function isEmbeddingProviderTransientError(err) {
|
|
59
|
+
if (!(err instanceof Error)) return false;
|
|
60
|
+
if (isEmbeddingProviderRateLimitError(err) || is500OrWrapped(err) || isConnectionErrorLike(err)) return true;
|
|
61
|
+
if (err instanceof AllEmbeddingProvidersFailed) return err.causes.some((cause) => cause instanceof Error && (is429OrWrapped(cause) || is403QuotaOrRateLimitLike(cause) || is500OrWrapped(cause) || isConnectionErrorLike(cause)));
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
function parseEmbeddingRetryAfterMs(err) {
|
|
65
|
+
if (err instanceof Error) {
|
|
66
|
+
const fromTop = parseRetryAfterMs(err);
|
|
67
|
+
if (fromTop !== void 0) return fromTop;
|
|
68
|
+
}
|
|
69
|
+
if (err instanceof AllEmbeddingProvidersFailed) for (const cause of err.causes) {
|
|
70
|
+
if (!(cause instanceof Error)) continue;
|
|
71
|
+
const retryAfterMs = parseRetryAfterMs(cause);
|
|
72
|
+
if (retryAfterMs !== void 0) return retryAfterMs;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function sleep(ms) {
|
|
76
|
+
if (ms <= 0) return Promise.resolve();
|
|
77
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
78
|
+
}
|
|
49
79
|
function registerManageStorageMaintenance(mem, b) {
|
|
50
80
|
const { factsDb, vectorDb, aliasDb, versionInfo, embeddings, mergeResults: merge, getMemoryCategories, cfg, runCompaction, tieringEnabled, ctx, listCommands, auditStore, runExport } = b;
|
|
51
81
|
const tierCompactCmd = mem.command("tier-compact").description("Tier compaction: move facts between hot/warm/cold/structural (does NOT shrink LanceDB — see vectordb-optimize)").option("--dry-run", "Preview tier changes without mutating facts");
|
|
@@ -377,11 +407,21 @@ function registerManageStorageMaintenance(mem, b) {
|
|
|
377
407
|
}
|
|
378
408
|
}
|
|
379
409
|
}));
|
|
380
|
-
mem.command("reembed-vectorless").description("Embed active non-kv facts that lack canonical embeddings (dry-run by default)").option("--limit <n>", "Maximum vectorless facts to process", "100").option("--source <s>", "Only process facts from this source").option("--apply", "Actually embed and write LanceDB/fact_embeddings rows; default is dry-run").option("--batch-size <n>", "Embedding batch size", "40").option("--max-embed-failures <n>", "Circuit-break after this many consecutive embed failures and exit 1; prevents indefinite stall on provider outage (default: 5)", "5").option("-v, --verbose", "Emit periodic progress heartbeat for long runs").option("--json", "Emit JSON").action(withExit(async (opts, cmd) => {
|
|
410
|
+
mem.command("reembed-vectorless").description("Embed active non-kv facts that lack canonical embeddings (dry-run by default)").option("--limit <n>", "Maximum vectorless facts to process", "100").option("--source <s>", "Only process facts from this source").option("--apply", "Actually embed and write LanceDB/fact_embeddings rows; default is dry-run").option("--batch-size <n>", "Embedding batch size", "40").option("--batch-delay-ms <n>", "Delay between adaptive batches in ms (default 150)", "150").option("--adaptive-catch-up", "Enable adaptive pacing (ramps up on healthy batches; backs off on provider/rate-limit/store pressure)").option("--max-embed-failures <n>", "Circuit-break after this many consecutive embed failures and exit 1; prevents indefinite stall on provider outage (default: 5)", "5").option("-v, --verbose", "Emit periodic progress heartbeat for long runs").option("--json", "Emit JSON").action(withExit(async (opts, cmd) => {
|
|
381
411
|
const limit = Number.parseInt(opts?.limit ?? "100", 10);
|
|
382
412
|
const batchSize = Number.parseInt(opts?.batchSize ?? "40", 10);
|
|
413
|
+
const batchDelayMs = Number.parseInt(opts?.batchDelayMs ?? "150", 10);
|
|
414
|
+
const adaptiveCatchUp = opts?.adaptiveCatchUp === true;
|
|
383
415
|
const maxEmbedFailures = Number.parseInt(opts?.maxEmbedFailures ?? "5", 10);
|
|
384
416
|
const verbose = !!opts?.verbose || readHybridMemVerbose(cmd);
|
|
417
|
+
const adaptiveMinBatchSize = 1;
|
|
418
|
+
const adaptiveMaxBatchSize = 200;
|
|
419
|
+
const adaptiveMinDelayMs = 0;
|
|
420
|
+
const adaptiveMaxDelayMs = 5e3;
|
|
421
|
+
const adaptiveBackoffMinDelayMs = 50;
|
|
422
|
+
const adaptiveBatchSizeStep = 5;
|
|
423
|
+
const adaptiveDelayStepMs = 25;
|
|
424
|
+
const adaptiveSuccessStreakForRampUp = 2;
|
|
385
425
|
if (!Number.isFinite(limit) || limit < 1) {
|
|
386
426
|
console.error("error: --limit must be a positive integer");
|
|
387
427
|
process.exitCode = 1;
|
|
@@ -392,12 +432,18 @@ function registerManageStorageMaintenance(mem, b) {
|
|
|
392
432
|
process.exitCode = 1;
|
|
393
433
|
return;
|
|
394
434
|
}
|
|
435
|
+
if (!Number.isFinite(batchDelayMs) || batchDelayMs < 0) {
|
|
436
|
+
console.error("error: --batch-delay-ms must be a non-negative integer");
|
|
437
|
+
process.exitCode = 1;
|
|
438
|
+
return;
|
|
439
|
+
}
|
|
395
440
|
if (!Number.isFinite(maxEmbedFailures) || maxEmbedFailures < 1) {
|
|
396
441
|
console.error("error: --max-embed-failures must be a positive integer");
|
|
397
442
|
process.exitCode = 1;
|
|
398
443
|
return;
|
|
399
444
|
}
|
|
400
445
|
const before = factsDb.countVectorlessActiveFacts(opts?.source);
|
|
446
|
+
const globalVectorlessBefore = factsDb.countVectorlessActiveFacts();
|
|
401
447
|
const candidates = factsDb.listVectorlessActiveFacts({
|
|
402
448
|
limit,
|
|
403
449
|
source: opts?.source
|
|
@@ -407,7 +453,17 @@ function registerManageStorageMaintenance(mem, b) {
|
|
|
407
453
|
let skipped = 0;
|
|
408
454
|
let storeFailures = 0;
|
|
409
455
|
let embedFailures = 0;
|
|
410
|
-
const
|
|
456
|
+
const startedAtMs = Date.now();
|
|
457
|
+
const baselineBatchSize = batchSize;
|
|
458
|
+
const baselineDelayMs = batchDelayMs;
|
|
459
|
+
let effectiveBatchSize = batchSize;
|
|
460
|
+
let effectiveDelayMs = batchDelayMs;
|
|
461
|
+
if (adaptiveCatchUp) {
|
|
462
|
+
effectiveBatchSize = Math.max(adaptiveMinBatchSize, Math.min(adaptiveMaxBatchSize, batchSize));
|
|
463
|
+
effectiveDelayMs = Math.max(adaptiveMinDelayMs, Math.min(adaptiveMaxDelayMs, batchDelayMs));
|
|
464
|
+
}
|
|
465
|
+
const adaptiveAdjustments = [];
|
|
466
|
+
let successStreak = 0;
|
|
411
467
|
let processed = 0;
|
|
412
468
|
let batchNumber = 0;
|
|
413
469
|
let providerCircuitBreak = false;
|
|
@@ -416,15 +472,28 @@ function registerManageStorageMaintenance(mem, b) {
|
|
|
416
472
|
let aborted = false;
|
|
417
473
|
if (opts?.apply) await runMaintenanceHeartbeat("reembed-vectorless", verbose, async () => {
|
|
418
474
|
await vectorDb.runWithAutoOptimizePaused(async () => {
|
|
419
|
-
|
|
475
|
+
let offset = 0;
|
|
476
|
+
while (offset < candidates.length) {
|
|
420
477
|
if (providerCircuitBreak) break;
|
|
421
|
-
batchNumber
|
|
422
|
-
const batch = candidates.slice(offset, offset +
|
|
478
|
+
batchNumber++;
|
|
479
|
+
const batch = candidates.slice(offset, offset + effectiveBatchSize);
|
|
423
480
|
let vectors;
|
|
481
|
+
let batchPressureSignals = 0;
|
|
482
|
+
let batchRateLimited = 0;
|
|
483
|
+
let batchTransientFailures = 0;
|
|
484
|
+
let batchStoreFailures = 0;
|
|
485
|
+
let batchEmbedFailures = 0;
|
|
486
|
+
let batchRetryAfterMs;
|
|
424
487
|
try {
|
|
425
488
|
vectors = await embedCallWithTimeoutAndRetry(() => embeddings.embedBatch(batch.map((fact) => fact.text)), `reembed-vectorless:batch-${batchNumber}`);
|
|
426
489
|
consecutiveEmbedFailures = 0;
|
|
427
490
|
} catch (batchErr) {
|
|
491
|
+
const batchRateLimitedErr = isEmbeddingProviderRateLimitError(batchErr);
|
|
492
|
+
const batchTransientErr = isEmbeddingProviderTransientError(batchErr);
|
|
493
|
+
batchRetryAfterMs = parseEmbeddingRetryAfterMs(batchErr);
|
|
494
|
+
if (batchRateLimitedErr) batchRateLimited++;
|
|
495
|
+
if (batchTransientErr) batchTransientFailures++;
|
|
496
|
+
if (batchRateLimitedErr || batchTransientErr || batchRetryAfterMs !== void 0) batchPressureSignals++;
|
|
428
497
|
if (isEmbeddingProviderServerError(batchErr)) {
|
|
429
498
|
providerCircuitBreak = true;
|
|
430
499
|
providerCircuitBreakCause = "provider_5xx";
|
|
@@ -439,7 +508,15 @@ function registerManageStorageMaintenance(mem, b) {
|
|
|
439
508
|
} catch (singleErr) {
|
|
440
509
|
errors.push(`fact ${fact.id}: embed failed — ${String(singleErr)}`);
|
|
441
510
|
embedFailures++;
|
|
511
|
+
batchEmbedFailures++;
|
|
442
512
|
vectors.push(null);
|
|
513
|
+
const rateLimited = isEmbeddingProviderRateLimitError(singleErr);
|
|
514
|
+
const transient = isEmbeddingProviderTransientError(singleErr);
|
|
515
|
+
const retryAfterMs = parseEmbeddingRetryAfterMs(singleErr);
|
|
516
|
+
if (rateLimited) batchRateLimited++;
|
|
517
|
+
if (transient) batchTransientFailures++;
|
|
518
|
+
if (rateLimited || transient || retryAfterMs !== void 0) batchPressureSignals++;
|
|
519
|
+
if (retryAfterMs !== void 0) batchRetryAfterMs = Math.max(batchRetryAfterMs ?? 0, retryAfterMs);
|
|
443
520
|
if (isEmbeddingProviderServerError(singleErr)) {
|
|
444
521
|
providerCircuitBreak = true;
|
|
445
522
|
providerCircuitBreakCause = "provider_5xx";
|
|
@@ -481,22 +558,63 @@ function registerManageStorageMaintenance(mem, b) {
|
|
|
481
558
|
} catch (err) {
|
|
482
559
|
errors.push(`fact ${fact.id}: store failed — ${String(err)}`);
|
|
483
560
|
storeFailures++;
|
|
561
|
+
batchStoreFailures++;
|
|
484
562
|
skipped++;
|
|
485
563
|
} finally {
|
|
486
564
|
processed++;
|
|
487
565
|
}
|
|
488
566
|
}
|
|
567
|
+
if (adaptiveCatchUp) {
|
|
568
|
+
const hadPressure = batchPressureSignals > 0 || batchStoreFailures > 0 || batchEmbedFailures > 0;
|
|
569
|
+
const previousBatchSize = effectiveBatchSize;
|
|
570
|
+
const previousDelayMs = effectiveDelayMs;
|
|
571
|
+
if (hadPressure) {
|
|
572
|
+
successStreak = 0;
|
|
573
|
+
effectiveBatchSize = Math.max(adaptiveMinBatchSize, Math.floor(effectiveBatchSize / 2));
|
|
574
|
+
effectiveDelayMs = computeAdaptivePressureDelayMs({
|
|
575
|
+
currentDelayMs: effectiveDelayMs,
|
|
576
|
+
batchRetryAfterMs,
|
|
577
|
+
maxAdaptiveDelayMs: adaptiveMaxDelayMs,
|
|
578
|
+
backoffMinDelayMs: adaptiveBackoffMinDelayMs
|
|
579
|
+
});
|
|
580
|
+
} else {
|
|
581
|
+
successStreak++;
|
|
582
|
+
if (successStreak >= adaptiveSuccessStreakForRampUp) {
|
|
583
|
+
successStreak = 0;
|
|
584
|
+
effectiveBatchSize = Math.min(adaptiveMaxBatchSize, effectiveBatchSize + adaptiveBatchSizeStep);
|
|
585
|
+
effectiveDelayMs = Math.max(adaptiveMinDelayMs, effectiveDelayMs - adaptiveDelayStepMs);
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
if (previousBatchSize !== effectiveBatchSize || previousDelayMs !== effectiveDelayMs) adaptiveAdjustments.push({
|
|
589
|
+
reason: hadPressure ? "pressure" : "ramp-up",
|
|
590
|
+
previousBatchSize,
|
|
591
|
+
previousDelayMs,
|
|
592
|
+
batchSize: effectiveBatchSize,
|
|
593
|
+
delayMs: effectiveDelayMs,
|
|
594
|
+
batchPressureSignals,
|
|
595
|
+
batchRateLimited,
|
|
596
|
+
batchTransientFailures,
|
|
597
|
+
batchStoreFailures,
|
|
598
|
+
batchEmbedFailures,
|
|
599
|
+
retryAfterMs: batchRetryAfterMs,
|
|
600
|
+
batchNumber
|
|
601
|
+
});
|
|
602
|
+
}
|
|
603
|
+
offset += batch.length;
|
|
604
|
+
if (adaptiveCatchUp && offset < candidates.length && !providerCircuitBreak) await sleep(effectiveDelayMs);
|
|
489
605
|
}
|
|
490
606
|
});
|
|
491
607
|
}, {
|
|
492
|
-
progressSupplier: () => `stage=embed-and-store; processed=${processed}/${candidates.length}; embedded=${embedded}; skipped=${skipped}; embedFailures=${embedFailures}; storeFailures=${storeFailures}; batch=${batchNumber}
|
|
608
|
+
progressSupplier: () => `stage=embed-and-store; processed=${processed}/${candidates.length}; remaining=${Math.max(0, candidates.length - processed)}; embedded=${embedded}; skipped=${skipped}; embedFailures=${embedFailures}; storeFailures=${storeFailures}; batch=${batchNumber}; batchSize=${effectiveBatchSize}; delayMs=${effectiveDelayMs}`,
|
|
493
609
|
jsonMode: opts?.json === true
|
|
494
610
|
});
|
|
495
611
|
const after = opts?.apply ? factsDb.countVectorlessActiveFacts(opts?.source) : before;
|
|
612
|
+
const durationMs = Date.now() - startedAtMs;
|
|
496
613
|
const report = {
|
|
497
614
|
apply: opts?.apply === true,
|
|
498
615
|
source: opts?.source ?? null,
|
|
499
616
|
before,
|
|
617
|
+
candidates: candidates.length,
|
|
500
618
|
considered: candidates.length,
|
|
501
619
|
embedded,
|
|
502
620
|
skipped,
|
|
@@ -505,8 +623,30 @@ function registerManageStorageMaintenance(mem, b) {
|
|
|
505
623
|
errors,
|
|
506
624
|
after,
|
|
507
625
|
processed,
|
|
626
|
+
remaining: after,
|
|
627
|
+
durationMs,
|
|
508
628
|
aborted
|
|
509
629
|
};
|
|
630
|
+
if (adaptiveCatchUp) report.adaptive = {
|
|
631
|
+
enabled: true,
|
|
632
|
+
baselineBatchSize,
|
|
633
|
+
baselineDelayMs,
|
|
634
|
+
effectiveBatchSize,
|
|
635
|
+
effectiveDelayMs,
|
|
636
|
+
adjustments: adaptiveAdjustments
|
|
637
|
+
};
|
|
638
|
+
const globalVectorlessAfter = opts?.apply ? factsDb.countVectorlessActiveFacts() : globalVectorlessBefore;
|
|
639
|
+
report.vectorSloRepair = buildVectorlessSloRepairRecommendation({
|
|
640
|
+
activeFacts: factsDb.getCount(),
|
|
641
|
+
vectorlessBefore: globalVectorlessBefore,
|
|
642
|
+
vectorlessAfter: globalVectorlessAfter,
|
|
643
|
+
embeddedThisRun: embedded,
|
|
644
|
+
runLimit: limit,
|
|
645
|
+
effectiveBatchSize: adaptiveCatchUp ? effectiveBatchSize : batchSize,
|
|
646
|
+
scopedSource: opts?.source,
|
|
647
|
+
scopedVectorlessBefore: opts?.source ? before : void 0,
|
|
648
|
+
scopedVectorlessAfter: opts?.source ? after : void 0
|
|
649
|
+
});
|
|
510
650
|
if (providerCircuitBreak) {
|
|
511
651
|
report.failedReason = providerCircuitBreakCause === "provider_5xx" ? "failed_embedding_provider_5xx" : "failed_embedding_provider";
|
|
512
652
|
process.exitCode = 1;
|
|
@@ -515,7 +655,10 @@ function registerManageStorageMaintenance(mem, b) {
|
|
|
515
655
|
console.log(JSON.stringify(report, null, 2));
|
|
516
656
|
return;
|
|
517
657
|
}
|
|
518
|
-
console.log(`Reembed vectorless ${report.apply ? "applied" : "dry-run"}: before ${before}, candidates ${candidates.length}, embedded ${embedded}, skipped ${skipped}, storeFailures ${storeFailures}, after ${after}`);
|
|
658
|
+
console.log(`Reembed vectorless ${report.apply ? "applied" : "dry-run"}: before ${before}, candidates ${candidates.length}, embedded ${embedded}, skipped ${skipped}, storeFailures ${storeFailures}, after ${after}, remaining ${after}, durationMs ${durationMs}`);
|
|
659
|
+
if (adaptiveCatchUp) console.log(`Adaptive pacing: batchSize ${baselineBatchSize}->${effectiveBatchSize}, delayMs ${baselineDelayMs}->${effectiveDelayMs}, adjustments ${adaptiveAdjustments.length}`);
|
|
660
|
+
const slo = report.vectorSloRepair;
|
|
661
|
+
console.log(`Vectorless SLO repair: ratio ${(slo.vectorlessRatioAfter * 100).toFixed(2)}% (target ${(slo.targetVectorlessRatio * 100).toFixed(0)}%), clear ${slo.vectorlessToClearForSlo} more, ~${slo.estimatedRunsToReachSlo} run(s) at limit ${slo.recommendedLimitNextRun} batch ${slo.recommendedBatchSizeNextRun}`);
|
|
519
662
|
if (candidates.length > 0 && !opts?.apply) {
|
|
520
663
|
console.log("Examples:");
|
|
521
664
|
for (const fact of candidates.slice(0, 10)) console.log(` ${fact.id} ${fact.source} ${fact.text.slice(0, 80).replace(/\s+/g, " ")}`);
|