nlm-memory 0.20.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -10
- package/dist/cli/digest.js +60 -1
- package/dist/cli/digest.js.map +1 -1
- package/dist/cli/init.d.ts +12 -0
- package/dist/cli/init.js +49 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/nlm.d.ts +13 -1
- package/dist/cli/nlm.js +872 -61
- package/dist/cli/nlm.js.map +1 -1
- package/dist/cli/scope-backfill.d.ts +34 -0
- package/dist/cli/scope-backfill.js +237 -0
- package/dist/cli/scope-backfill.js.map +1 -0
- package/dist/cli/scope-coverage.d.ts +44 -0
- package/dist/cli/scope-coverage.js +205 -0
- package/dist/cli/scope-coverage.js.map +1 -0
- package/dist/core/actions/overlay.d.ts +20 -6
- package/dist/core/actions/overlay.js +32 -18
- package/dist/core/actions/overlay.js.map +1 -1
- package/dist/core/adapters/claude-code.d.ts +14 -0
- package/dist/core/adapters/claude-code.js +36 -0
- package/dist/core/adapters/claude-code.js.map +1 -1
- package/dist/core/classifier/prompt.js +3 -3
- package/dist/core/dataset/build-dataset.js +1 -0
- package/dist/core/dataset/build-dataset.js.map +1 -1
- package/dist/core/digest/compose.d.ts +13 -3
- package/dist/core/digest/compose.js +23 -18
- package/dist/core/digest/compose.js.map +1 -1
- package/dist/core/digest/hook-injection.d.ts +43 -0
- package/dist/core/digest/hook-injection.js +79 -0
- package/dist/core/digest/hook-injection.js.map +1 -0
- package/dist/core/embedding/embed-backfill.d.ts +13 -2
- package/dist/core/embedding/embed-backfill.js +181 -43
- package/dist/core/embedding/embed-backfill.js.map +1 -1
- package/dist/core/embedding/embedding-config.d.ts +17 -0
- package/dist/core/embedding/embedding-config.js +12 -0
- package/dist/core/embedding/embedding-config.js.map +1 -0
- package/dist/core/embedding/pg-embed-backfill.d.ts +31 -0
- package/dist/core/embedding/pg-embed-backfill.js +264 -0
- package/dist/core/embedding/pg-embed-backfill.js.map +1 -0
- package/dist/core/entities/dedup-suggest.d.ts +25 -0
- package/dist/core/entities/dedup-suggest.js +107 -0
- package/dist/core/entities/dedup-suggest.js.map +1 -0
- package/dist/core/eval/classifier-fixture-eval.d.ts +29 -0
- package/dist/core/eval/classifier-fixture-eval.js +217 -0
- package/dist/core/eval/classifier-fixture-eval.js.map +1 -0
- package/dist/core/eval/extraction-scoring.d.ts +63 -0
- package/dist/core/eval/extraction-scoring.js +79 -0
- package/dist/core/eval/extraction-scoring.js.map +1 -0
- package/dist/core/eval/run-eval.d.ts +40 -0
- package/dist/core/eval/run-eval.js +34 -0
- package/dist/core/eval/run-eval.js.map +1 -0
- package/dist/core/exemplars/capture-from-session.d.ts +2 -0
- package/dist/core/exemplars/capture-from-session.js +7 -3
- package/dist/core/exemplars/capture-from-session.js.map +1 -1
- package/dist/core/exemplars/diff-parse.d.ts +23 -0
- package/dist/core/exemplars/diff-parse.js +73 -0
- package/dist/core/exemplars/diff-parse.js.map +1 -0
- package/dist/core/exemplars/embed-backfill.d.ts +36 -0
- package/dist/core/exemplars/embed-backfill.js +85 -0
- package/dist/core/exemplars/embed-backfill.js.map +1 -0
- package/dist/core/exemplars/embed-text.d.ts +15 -0
- package/dist/core/exemplars/embed-text.js +18 -0
- package/dist/core/exemplars/embed-text.js.map +1 -0
- package/dist/core/exemplars/extract-exemplar.d.ts +2 -0
- package/dist/core/exemplars/extract-exemplar.js +9 -66
- package/dist/core/exemplars/extract-exemplar.js.map +1 -1
- package/dist/core/exemplars/ingest-exemplar.d.ts +1 -0
- package/dist/core/exemplars/ingest-exemplar.js +1 -0
- package/dist/core/exemplars/ingest-exemplar.js.map +1 -1
- package/dist/core/exemplars/recall-code.js +4 -0
- package/dist/core/exemplars/recall-code.js.map +1 -1
- package/dist/core/exemplars/warm-embedder.d.ts +14 -0
- package/dist/core/exemplars/warm-embedder.js +18 -0
- package/dist/core/exemplars/warm-embedder.js.map +1 -0
- package/dist/core/health/corpus-state.d.ts +8 -0
- package/dist/core/health/corpus-state.js +11 -0
- package/dist/core/health/corpus-state.js.map +1 -0
- package/dist/core/health/embed-inflight.d.ts +9 -0
- package/dist/core/health/embed-inflight.js +30 -0
- package/dist/core/health/embed-inflight.js.map +1 -0
- package/dist/core/health/embedding-lane-state.d.ts +6 -0
- package/dist/core/health/embedding-lane-state.js +18 -0
- package/dist/core/health/embedding-lane-state.js.map +1 -0
- package/dist/core/health/warmup-state.d.ts +12 -0
- package/dist/core/health/warmup-state.js +12 -0
- package/dist/core/health/warmup-state.js.map +1 -0
- package/dist/core/hook/claude-settings.d.ts +1 -1
- package/dist/core/hook/claude-settings.js +0 -1
- package/dist/core/hook/claude-settings.js.map +1 -1
- package/dist/core/hook/gate.d.ts +13 -6
- package/dist/core/hook/gate.js +47 -6
- package/dist/core/hook/gate.js.map +1 -1
- package/dist/core/hook/hook-log.d.ts +5 -0
- package/dist/core/hook/hook-log.js.map +1 -1
- package/dist/core/hook/memo.d.ts +12 -0
- package/dist/core/hook/memo.js +41 -1
- package/dist/core/hook/memo.js.map +1 -1
- package/dist/core/hook/pointer-block.d.ts +1 -0
- package/dist/core/hook/pointer-block.js +23 -2
- package/dist/core/hook/pointer-block.js.map +1 -1
- package/dist/core/hook/query-extract.d.ts +2 -1
- package/dist/core/hook/query-extract.js +10 -1
- package/dist/core/hook/query-extract.js.map +1 -1
- package/dist/core/hook/resolve-conversation-by-query.d.ts +28 -0
- package/dist/core/hook/resolve-conversation-by-query.js +98 -0
- package/dist/core/hook/resolve-conversation-by-query.js.map +1 -0
- package/dist/core/hook/select.d.ts +8 -0
- package/dist/core/hook/select.js +9 -2
- package/dist/core/hook/select.js.map +1 -1
- package/dist/core/hook/transcript.js +16 -2
- package/dist/core/hook/transcript.js.map +1 -1
- package/dist/core/ingest/backfill-derivables.d.ts +92 -0
- package/dist/core/ingest/backfill-derivables.js +175 -0
- package/dist/core/ingest/backfill-derivables.js.map +1 -0
- package/dist/core/ingest/ingest-session.d.ts +5 -0
- package/dist/core/ingest/ingest-session.js +23 -0
- package/dist/core/ingest/ingest-session.js.map +1 -1
- package/dist/core/ingest/reclassify-oversized.d.ts +5 -0
- package/dist/core/ingest/reclassify-oversized.js +9 -0
- package/dist/core/ingest/reclassify-oversized.js.map +1 -1
- package/dist/core/ingest/reprocess.d.ts +96 -0
- package/dist/core/ingest/reprocess.js +280 -0
- package/dist/core/ingest/reprocess.js.map +1 -0
- package/dist/core/ingest/transcript-derivables.d.ts +27 -0
- package/dist/core/ingest/transcript-derivables.js +138 -0
- package/dist/core/ingest/transcript-derivables.js.map +1 -0
- package/dist/core/integrity/check-invariants.d.ts +6 -1
- package/dist/core/integrity/check-invariants.js +209 -3
- package/dist/core/integrity/check-invariants.js.map +1 -1
- package/dist/core/metrics/corpus-stats.d.ts +49 -0
- package/dist/core/metrics/corpus-stats.js +111 -0
- package/dist/core/metrics/corpus-stats.js.map +1 -0
- package/dist/core/metrics/re-derivation.d.ts +48 -0
- package/dist/core/metrics/re-derivation.js +87 -0
- package/dist/core/metrics/re-derivation.js.map +1 -0
- package/dist/core/outcome/coverage.d.ts +33 -0
- package/dist/core/outcome/coverage.js +46 -0
- package/dist/core/outcome/coverage.js.map +1 -0
- package/dist/core/outcome/rollup.d.ts +33 -0
- package/dist/core/outcome/rollup.js +113 -0
- package/dist/core/outcome/rollup.js.map +1 -0
- package/dist/core/recall/citation-log.d.ts +8 -0
- package/dist/core/recall/citation-log.js +17 -0
- package/dist/core/recall/citation-log.js.map +1 -1
- package/dist/core/recall/hook-recall-log.d.ts +2 -2
- package/dist/core/recall/hook-recall-log.js +2 -2
- package/dist/core/recall/query-intent.d.ts +7 -0
- package/dist/core/recall/query-intent.js +25 -0
- package/dist/core/recall/query-intent.js.map +1 -0
- package/dist/core/recall/query-log.d.ts +4 -0
- package/dist/core/recall/query-log.js +4 -0
- package/dist/core/recall/query-log.js.map +1 -1
- package/dist/core/recall/recall-service.d.ts +37 -1
- package/dist/core/recall/recall-service.js +106 -63
- package/dist/core/recall/recall-service.js.map +1 -1
- package/dist/core/recall/related-exemplars.d.ts +1 -0
- package/dist/core/recall/related-exemplars.js +4 -1
- package/dist/core/recall/related-exemplars.js.map +1 -1
- package/dist/core/recall/related-facts.js +2 -2
- package/dist/core/recall/related-facts.js.map +1 -1
- package/dist/core/recall/reranker.d.ts +2 -1
- package/dist/core/recall/reranker.js +3 -3
- package/dist/core/recall/reranker.js.map +1 -1
- package/dist/core/recall-facts/fact-query-log.d.ts +7 -0
- package/dist/core/recall-facts/fact-query-log.js +2 -0
- package/dist/core/recall-facts/fact-query-log.js.map +1 -1
- package/dist/core/recall-facts/fact-recall-service.d.ts +9 -1
- package/dist/core/recall-facts/fact-recall-service.js +22 -8
- package/dist/core/recall-facts/fact-recall-service.js.map +1 -1
- package/dist/core/scheduler/scan-once.d.ts +6 -6
- package/dist/core/scheduler/scan-once.js +15 -49
- package/dist/core/scheduler/scan-once.js.map +1 -1
- package/dist/core/scheduler/scheduler.d.ts +10 -0
- package/dist/core/scheduler/scheduler.js +109 -13
- package/dist/core/scheduler/scheduler.js.map +1 -1
- package/dist/core/scope/alias-map.d.ts +10 -0
- package/dist/core/scope/alias-map.js +41 -0
- package/dist/core/scope/alias-map.js.map +1 -0
- package/dist/core/scope/derive-scope.d.ts +8 -0
- package/dist/core/scope/derive-scope.js +54 -0
- package/dist/core/scope/derive-scope.js.map +1 -0
- package/dist/core/scope/scope-clause.d.ts +16 -0
- package/dist/core/scope/scope-clause.js +21 -0
- package/dist/core/scope/scope-clause.js.map +1 -0
- package/dist/core/scope/stamp-flag.d.ts +1 -0
- package/dist/core/scope/stamp-flag.js +4 -0
- package/dist/core/scope/stamp-flag.js.map +1 -0
- package/dist/core/signals/code-signal.d.ts +50 -0
- package/dist/core/signals/code-signal.js +54 -0
- package/dist/core/signals/code-signal.js.map +1 -0
- package/dist/core/signals/ingest-signal.d.ts +1 -1
- package/dist/core/signals/ingest-signal.js +3 -1
- package/dist/core/signals/ingest-signal.js.map +1 -1
- package/dist/core/signals/stamp-scope.d.ts +18 -0
- package/dist/core/signals/stamp-scope.js +28 -0
- package/dist/core/signals/stamp-scope.js.map +1 -0
- package/dist/core/storage/db-restore.js +3 -1
- package/dist/core/storage/db-restore.js.map +1 -1
- package/dist/core/storage/fact-batch.d.ts +9 -0
- package/dist/core/storage/fact-batch.js +14 -0
- package/dist/core/storage/fact-batch.js.map +1 -0
- package/dist/core/storage/pg-code-exemplar-store.d.ts +1 -0
- package/dist/core/storage/pg-code-exemplar-store.js +13 -2
- package/dist/core/storage/pg-code-exemplar-store.js.map +1 -1
- package/dist/core/storage/pg-embedding-config.d.ts +29 -0
- package/dist/core/storage/pg-embedding-config.js +53 -0
- package/dist/core/storage/pg-embedding-config.js.map +1 -0
- package/dist/core/storage/pg-entity-store.d.ts +12 -0
- package/dist/core/storage/pg-entity-store.js +79 -0
- package/dist/core/storage/pg-entity-store.js.map +1 -0
- package/dist/core/storage/pg-fact-ingest.d.ts +15 -0
- package/dist/core/storage/pg-fact-ingest.js +34 -0
- package/dist/core/storage/pg-fact-ingest.js.map +1 -0
- package/dist/core/storage/pg-fact-store.d.ts +3 -0
- package/dist/core/storage/pg-fact-store.js +26 -30
- package/dist/core/storage/pg-fact-store.js.map +1 -1
- package/dist/core/storage/pg-migrate.d.ts +18 -0
- package/dist/core/storage/pg-migrate.js +73 -0
- package/dist/core/storage/pg-migrate.js.map +1 -0
- package/dist/core/storage/pg-session-store.d.ts +11 -2
- package/dist/core/storage/pg-session-store.js +224 -96
- package/dist/core/storage/pg-session-store.js.map +1 -1
- package/dist/core/storage/pg-signal-store.js +4 -3
- package/dist/core/storage/pg-signal-store.js.map +1 -1
- package/dist/core/storage/pg-storage.d.ts +9 -7
- package/dist/core/storage/pg-storage.js +20 -50
- package/dist/core/storage/pg-storage.js.map +1 -1
- package/dist/core/storage/pg-workstream-store.d.ts +25 -0
- package/dist/core/storage/pg-workstream-store.js +97 -0
- package/dist/core/storage/pg-workstream-store.js.map +1 -0
- package/dist/core/storage/sqlite-code-exemplar-store.d.ts +1 -0
- package/dist/core/storage/sqlite-code-exemplar-store.js +15 -2
- package/dist/core/storage/sqlite-code-exemplar-store.js.map +1 -1
- package/dist/core/storage/sqlite-embedding-config.d.ts +10 -0
- package/dist/core/storage/sqlite-embedding-config.js +27 -0
- package/dist/core/storage/sqlite-embedding-config.js.map +1 -0
- package/dist/core/storage/sqlite-entity-store.d.ts +13 -0
- package/dist/core/storage/sqlite-entity-store.js +96 -0
- package/dist/core/storage/sqlite-entity-store.js.map +1 -0
- package/dist/core/storage/sqlite-fact-store.d.ts +15 -7
- package/dist/core/storage/sqlite-fact-store.js +81 -27
- package/dist/core/storage/sqlite-fact-store.js.map +1 -1
- package/dist/core/storage/sqlite-outcome-store.d.ts +89 -0
- package/dist/core/storage/sqlite-outcome-store.js +158 -0
- package/dist/core/storage/sqlite-outcome-store.js.map +1 -0
- package/dist/core/storage/sqlite-session-store.d.ts +42 -7
- package/dist/core/storage/sqlite-session-store.js +208 -95
- package/dist/core/storage/sqlite-session-store.js.map +1 -1
- package/dist/core/storage/sqlite-signal-store.js +4 -2
- package/dist/core/storage/sqlite-signal-store.js.map +1 -1
- package/dist/core/storage/sqlite-storage.d.ts +8 -8
- package/dist/core/storage/sqlite-storage.js +21 -32
- package/dist/core/storage/sqlite-storage.js.map +1 -1
- package/dist/core/storage/sqlite-workstream-store.d.ts +25 -0
- package/dist/core/storage/sqlite-workstream-store.js +99 -0
- package/dist/core/storage/sqlite-workstream-store.js.map +1 -0
- package/dist/core/storage/supersedence-log.js +2 -0
- package/dist/core/storage/supersedence-log.js.map +1 -1
- package/dist/core/telemetry/probe-filter.d.ts +35 -0
- package/dist/core/telemetry/probe-filter.js +56 -0
- package/dist/core/telemetry/probe-filter.js.map +1 -0
- package/dist/core/update-check/check.d.ts +6 -0
- package/dist/core/update-check/check.js +35 -0
- package/dist/core/update-check/check.js.map +1 -1
- package/dist/core/work-digest/active-spans.d.ts +8 -0
- package/dist/core/work-digest/active-spans.js +29 -0
- package/dist/core/work-digest/active-spans.js.map +1 -0
- package/dist/core/work-digest/attribute.d.ts +15 -0
- package/dist/core/work-digest/attribute.js +76 -0
- package/dist/core/work-digest/attribute.js.map +1 -0
- package/dist/core/work-digest/build-work-digest.d.ts +12 -0
- package/dist/core/work-digest/build-work-digest.js +69 -0
- package/dist/core/work-digest/build-work-digest.js.map +1 -0
- package/dist/core/work-digest/compose-work-digest.d.ts +3 -0
- package/dist/core/work-digest/compose-work-digest.js +52 -0
- package/dist/core/work-digest/compose-work-digest.js.map +1 -0
- package/dist/core/work-digest/merge-active.d.ts +10 -0
- package/dist/core/work-digest/merge-active.js +22 -0
- package/dist/core/work-digest/merge-active.js.map +1 -0
- package/dist/core/work-digest/read-transcript-timestamps.d.ts +7 -0
- package/dist/core/work-digest/read-transcript-timestamps.js +40 -0
- package/dist/core/work-digest/read-transcript-timestamps.js.map +1 -0
- package/dist/core/work-digest/topics.d.ts +18 -0
- package/dist/core/work-digest/topics.js +26 -0
- package/dist/core/work-digest/topics.js.map +1 -0
- package/dist/core/work-digest/types.d.ts +45 -0
- package/dist/core/work-digest/types.js +2 -0
- package/dist/core/work-digest/types.js.map +1 -0
- package/dist/core/workstream/bind.d.ts +26 -0
- package/dist/core/workstream/bind.js +42 -0
- package/dist/core/workstream/bind.js.map +1 -0
- package/dist/core/workstream/compose-recall.d.ts +2 -0
- package/dist/core/workstream/compose-recall.js +39 -0
- package/dist/core/workstream/compose-recall.js.map +1 -0
- package/dist/core/workstream/merge-suggest.d.ts +19 -0
- package/dist/core/workstream/merge-suggest.js +61 -0
- package/dist/core/workstream/merge-suggest.js.map +1 -0
- package/dist/core/workstream/model.d.ts +21 -0
- package/dist/core/workstream/model.js +9 -0
- package/dist/core/workstream/model.js.map +1 -0
- package/dist/core/workstream/name-match.d.ts +8 -0
- package/dist/core/workstream/name-match.js +18 -0
- package/dist/core/workstream/name-match.js.map +1 -0
- package/dist/core/workstream/resolve.d.ts +10 -0
- package/dist/core/workstream/resolve.js +21 -0
- package/dist/core/workstream/resolve.js.map +1 -0
- package/dist/core/workstream/rollup.d.ts +12 -0
- package/dist/core/workstream/rollup.js +17 -0
- package/dist/core/workstream/rollup.js.map +1 -0
- package/dist/core/workstream/work-topics.d.ts +10 -0
- package/dist/core/workstream/work-topics.js +55 -0
- package/dist/core/workstream/work-topics.js.map +1 -0
- package/dist/hook/hook-helpers.d.ts +4 -0
- package/dist/hook/hook-helpers.js +36 -0
- package/dist/hook/hook-helpers.js.map +1 -0
- package/dist/hook/pre-compact-hook.d.ts +23 -0
- package/dist/hook/pre-compact-hook.js +67 -0
- package/dist/hook/pre-compact-hook.js.map +1 -0
- package/dist/hook/prompt-recall-hook.d.ts +38 -0
- package/dist/hook/prompt-recall-hook.js +124 -20
- package/dist/hook/prompt-recall-hook.js.map +1 -1
- package/dist/hook/recall-gate.d.ts +29 -0
- package/dist/hook/recall-gate.js +50 -0
- package/dist/hook/recall-gate.js.map +1 -0
- package/dist/hook/recall-over-http.d.ts +3 -2
- package/dist/hook/recall-over-http.js +26 -13
- package/dist/hook/recall-over-http.js.map +1 -1
- package/dist/hook/recent-context.d.ts +25 -0
- package/dist/hook/recent-context.js +104 -0
- package/dist/hook/recent-context.js.map +1 -0
- package/dist/hook/score-floor.d.ts +27 -0
- package/dist/hook/score-floor.js +42 -0
- package/dist/hook/score-floor.js.map +1 -0
- package/dist/hook/session-end-hook.js +8 -29
- package/dist/hook/session-end-hook.js.map +1 -1
- package/dist/hook/session-start-hook.js +26 -60
- package/dist/hook/session-start-hook.js.map +1 -1
- package/dist/hook/stop-hook.js +24 -60
- package/dist/hook/stop-hook.js.map +1 -1
- package/dist/http/app.d.ts +6 -0
- package/dist/http/app.js +52 -44
- package/dist/http/app.js.map +1 -1
- package/dist/install/setup.js +2 -0
- package/dist/install/setup.js.map +1 -1
- package/dist/llm/build-classifier.d.ts +22 -0
- package/dist/llm/build-classifier.js +42 -0
- package/dist/llm/build-classifier.js.map +1 -0
- package/dist/llm/build-embedder.d.ts +11 -0
- package/dist/llm/build-embedder.js +42 -0
- package/dist/llm/build-embedder.js.map +1 -0
- package/dist/llm/bundled-embedder-client.d.ts +37 -0
- package/dist/llm/bundled-embedder-client.js +90 -0
- package/dist/llm/bundled-embedder-client.js.map +1 -0
- package/dist/llm/classifier-box.d.ts +13 -5
- package/dist/llm/classifier-box.js +28 -6
- package/dist/llm/classifier-box.js.map +1 -1
- package/dist/llm/classifier-egress.d.ts +18 -0
- package/dist/llm/classifier-egress.js +59 -0
- package/dist/llm/classifier-egress.js.map +1 -0
- package/dist/llm/client-shared.d.ts +4 -0
- package/dist/llm/client-shared.js +39 -0
- package/dist/llm/client-shared.js.map +1 -0
- package/dist/llm/deepseek-client.d.ts +20 -0
- package/dist/llm/deepseek-client.js +59 -45
- package/dist/llm/deepseek-client.js.map +1 -1
- package/dist/llm/embedder-info.d.ts +15 -0
- package/dist/llm/embedder-info.js +27 -0
- package/dist/llm/embedder-info.js.map +1 -0
- package/dist/llm/model-quirks.d.ts +4 -0
- package/dist/llm/model-quirks.js +7 -0
- package/dist/llm/model-quirks.js.map +1 -0
- package/dist/llm/naming.d.ts +5 -0
- package/dist/llm/naming.js +20 -0
- package/dist/llm/naming.js.map +1 -0
- package/dist/llm/ollama-client.d.ts +7 -8
- package/dist/llm/ollama-client.js +59 -51
- package/dist/llm/ollama-client.js.map +1 -1
- package/dist/llm/ollama-code-embedder.d.ts +8 -3
- package/dist/llm/ollama-code-embedder.js +14 -24
- package/dist/llm/ollama-code-embedder.js.map +1 -1
- package/dist/llm/openai-code-embedder-client.d.ts +25 -0
- package/dist/llm/openai-code-embedder-client.js +52 -0
- package/dist/llm/openai-code-embedder-client.js.map +1 -0
- package/dist/llm/openai-embedder-client.d.ts +41 -0
- package/dist/llm/openai-embedder-client.js +83 -0
- package/dist/llm/openai-embedder-client.js.map +1 -0
- package/dist/mcp/server.d.ts +69 -2
- package/dist/mcp/server.js +404 -19
- package/dist/mcp/server.js.map +1 -1
- package/dist/ports/code-embedder.d.ts +6 -1
- package/dist/ports/code-exemplar-store.d.ts +5 -0
- package/dist/ports/entity-store.d.ts +35 -0
- package/dist/ports/entity-store.js +7 -0
- package/dist/ports/entity-store.js.map +1 -0
- package/dist/ports/fact-store.d.ts +0 -0
- package/dist/ports/fact-store.js.map +1 -1
- package/dist/ports/llm-client.d.ts +9 -1
- package/dist/ports/outcome.d.ts +85 -0
- package/dist/ports/outcome.js +11 -0
- package/dist/ports/outcome.js.map +1 -0
- package/dist/ports/session-store.d.ts +12 -6
- package/dist/ports/storage.d.ts +7 -30
- package/dist/ports/storage.js +3 -7
- package/dist/ports/storage.js.map +1 -1
- package/dist/ports/transcript-adapter.d.ts +2 -0
- package/dist/ports/workstream-store.d.ts +22 -0
- package/dist/ports/workstream-store.js +2 -0
- package/dist/ports/workstream-store.js.map +1 -0
- package/dist/shared/net.d.ts +3 -0
- package/dist/shared/net.js +4 -0
- package/dist/shared/net.js.map +1 -0
- package/dist/shared/types.d.ts +56 -2
- package/dist/shared/types.js +4 -1
- package/dist/shared/types.js.map +1 -1
- package/dist/ui/assets/{index-CMpQkbQy.js → index-CSaBtgXD.js} +1 -1
- package/dist/ui/index.html +1 -1
- package/fixtures/classifier-gold/README.md +94 -0
- package/fixtures/classifier-gold/reference.json +318 -0
- package/fixtures/classifier-gold/transcripts/01-bug-fix-null-pointer-api.txt +75 -0
- package/fixtures/classifier-gold/transcripts/02-bug-fix-race-condition-queue.txt +77 -0
- package/fixtures/classifier-gold/transcripts/03-bug-fix-jwt-clock-skew.txt +86 -0
- package/fixtures/classifier-gold/transcripts/04-feature-webhook-retry.txt +95 -0
- package/fixtures/classifier-gold/transcripts/05-feature-csv-export.txt +86 -0
- package/fixtures/classifier-gold/transcripts/06-feature-rate-limiting.txt +61 -0
- package/fixtures/classifier-gold/transcripts/07-refactor-db-abstraction.txt +72 -0
- package/fixtures/classifier-gold/transcripts/08-refactor-config-loading.txt +89 -0
- package/fixtures/classifier-gold/transcripts/09-ops-docker-staging.txt +94 -0
- package/fixtures/classifier-gold/transcripts/10-ops-nginx-ssl.txt +121 -0
- package/fixtures/classifier-gold/transcripts/11-ops-postgres-migration.txt +74 -0
- package/fixtures/classifier-gold/transcripts/12-ops-cron-debugging.txt +73 -0
- package/fixtures/classifier-gold/transcripts/13-research-vector-db-comparison.txt +59 -0
- package/fixtures/classifier-gold/transcripts/14-research-oauth-provider.txt +74 -0
- package/fixtures/classifier-gold/transcripts/15-writing-api-docs.txt +154 -0
- package/fixtures/classifier-gold/transcripts/16-meeting-sprint-planning.txt +69 -0
- package/fixtures/classifier-gold/transcripts/17-trivial-list-files.txt +14 -0
- package/fixtures/classifier-gold/transcripts/18-trivial-version-check.txt +21 -0
- package/fixtures/classifier-gold/transcripts/19-trivial-syntax-help.txt +29 -0
- package/fixtures/classifier-gold/transcripts/20-trivial-read-package-json.txt +41 -0
- package/migrations/000_initial_schema.sql +1 -1
- package/migrations/024_backfill_exemplar_repo_basename.sql +32 -0
- package/migrations/025_workstreams.sql +30 -0
- package/migrations/026_embedding_config.sql +12 -0
- package/migrations/027_drop_legacy_session_embeddings.sql +7 -0
- package/migrations/028_classifier_provenance.sql +5 -0
- package/migrations/029_project_scope.sql +21 -0
- package/migrations/032_session_derivables.sql +11 -0
- package/migrations/pg/001_initial.sql +34 -0
- package/migrations/pg/019_split_replaces.sql +16 -7
- package/migrations/pg/025_workstreams.sql +34 -0
- package/migrations/pg/026_embedding_config.sql +12 -0
- package/migrations/pg/028_classifier_provenance.sql +5 -0
- package/migrations/pg/029_entity_variants.sql +9 -0
- package/migrations/pg/030_project_scope.sql +23 -0
- package/migrations/pg/031_widen_session_edges_kind.sql +11 -0
- package/migrations/pg/032_session_derivables.sql +17 -0
- package/nlm/index.js +405 -39
- package/package.json +12 -2
- package/plugin/.codex-plugin/plugin.json +2 -2
- package/plugin/scripts/prompt-recall-hook.mjs +413 -43
- package/plugin/scripts/session-start-hook.mjs +295 -61
- package/plugin/scripts/stop-hook.mjs +89 -66
- package/plugin-hermes-agent/__init__.py +2 -1
- package/templates/agent-contract/README.md +24 -0
- package/templates/agent-contract/claude-code.md +40 -0
- package/templates/agent-contract/generic.md +38 -0
- package/dist/core/embedding/embed-normalize.d.ts +0 -28
- package/dist/core/embedding/embed-normalize.js +0 -98
- package/dist/core/embedding/embed-normalize.js.map +0 -1
- package/dist/core/storage/pg-tx-context.d.ts +0 -52
- package/dist/core/storage/pg-tx-context.js +0 -149
- package/dist/core/storage/pg-tx-context.js.map +0 -1
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
-- migrations/025_workstreams.sql
|
|
2
|
+
-- Workstream abstraction (#367) Plan A: a persistent container a session binds
|
|
3
|
+
-- to at end-of-session. See docs/superpowers/specs/2026-06-24-workstream-abstraction-design.md.
|
|
4
|
+
|
|
5
|
+
CREATE TABLE IF NOT EXISTS workstreams (
|
|
6
|
+
id TEXT PRIMARY KEY, -- ws_<uuid>
|
|
7
|
+
label TEXT NOT NULL,
|
|
8
|
+
status TEXT NOT NULL DEFAULT 'active' CHECK(status IN ('active','merged','retired')),
|
|
9
|
+
merged_into TEXT REFERENCES workstreams(id),
|
|
10
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
11
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
12
|
+
last_session_at TEXT
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
CREATE TABLE IF NOT EXISTS workstream_entities (
|
|
16
|
+
workstream_id TEXT NOT NULL REFERENCES workstreams(id) ON DELETE CASCADE,
|
|
17
|
+
entity_canonical TEXT NOT NULL REFERENCES entities(canonical),
|
|
18
|
+
session_count INTEGER NOT NULL DEFAULT 0,
|
|
19
|
+
PRIMARY KEY (workstream_id, entity_canonical)
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
CREATE INDEX IF NOT EXISTS idx_workstream_entities_entity ON workstream_entities(entity_canonical);
|
|
23
|
+
|
|
24
|
+
ALTER TABLE sessions ADD COLUMN workstream_id TEXT REFERENCES workstreams(id);
|
|
25
|
+
ALTER TABLE sessions ADD COLUMN binding_source TEXT;
|
|
26
|
+
ALTER TABLE sessions ADD COLUMN binding_confidence REAL;
|
|
27
|
+
|
|
28
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_workstream ON sessions(workstream_id);
|
|
29
|
+
|
|
30
|
+
INSERT OR IGNORE INTO schema_migrations (version, name) VALUES (25, 'workstreams');
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
-- Records which embedder produced the stored vectors, per lane.
|
|
2
|
+
-- lane 'prose' covers session chunks and fact embeddings (same embedder);
|
|
3
|
+
-- lane 'code' covers code exemplar embeddings.
|
|
4
|
+
-- Absence of a row means pre-tracking corpus: reconcile treats the running
|
|
5
|
+
-- embedder as canonical and records it.
|
|
6
|
+
CREATE TABLE IF NOT EXISTS embedding_config (
|
|
7
|
+
lane TEXT PRIMARY KEY CHECK (lane IN ('prose', 'code')),
|
|
8
|
+
provider TEXT NOT NULL,
|
|
9
|
+
model TEXT NOT NULL,
|
|
10
|
+
dim INTEGER NOT NULL,
|
|
11
|
+
updated_at TEXT NOT NULL
|
|
12
|
+
);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
-- Migration 027: drop the legacy session_embeddings virtual table.
|
|
2
|
+
-- Migration 003 created it; migration 009 superseded it with the chunk + max-pool index.
|
|
3
|
+
|
|
4
|
+
DROP TABLE IF EXISTS session_embeddings;
|
|
5
|
+
|
|
6
|
+
INSERT OR IGNORE INTO schema_migrations (version, name)
|
|
7
|
+
VALUES (27, '027_drop_legacy_session_embeddings');
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
-- Which classifier produced this session's classification. NULL = classified
|
|
2
|
+
-- before provenance tracking; nlm reprocess treats NULL as eligible.
|
|
3
|
+
ALTER TABLE sessions ADD COLUMN classifier_provider TEXT;
|
|
4
|
+
ALTER TABLE sessions ADD COLUMN classifier_model TEXT;
|
|
5
|
+
ALTER TABLE sessions ADD COLUMN classifier_confidence REAL;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
-- migrations/029_project_scope.sql
|
|
2
|
+
-- Additive scope column on the five corpus tables (#348 Stage A).
|
|
3
|
+
-- No backfill; all existing rows are NULL. Enforcement is deferred behind
|
|
4
|
+
-- NLM_SCOPE_ENFORCE. See docs/superpowers/specs/2026-07-03-project-scoping-design.md.
|
|
5
|
+
|
|
6
|
+
ALTER TABLE sessions ADD COLUMN scope TEXT;
|
|
7
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_scope ON sessions(scope);
|
|
8
|
+
|
|
9
|
+
ALTER TABLE facts ADD COLUMN scope TEXT;
|
|
10
|
+
CREATE INDEX IF NOT EXISTS idx_facts_scope ON facts(scope);
|
|
11
|
+
|
|
12
|
+
ALTER TABLE code_exemplars ADD COLUMN scope TEXT;
|
|
13
|
+
CREATE INDEX IF NOT EXISTS idx_code_exemplars_scope ON code_exemplars(scope);
|
|
14
|
+
|
|
15
|
+
ALTER TABLE signals ADD COLUMN scope TEXT;
|
|
16
|
+
CREATE INDEX IF NOT EXISTS idx_signals_scope ON signals(scope);
|
|
17
|
+
|
|
18
|
+
ALTER TABLE workstreams ADD COLUMN scope TEXT;
|
|
19
|
+
CREATE INDEX IF NOT EXISTS idx_workstreams_scope ON workstreams(scope);
|
|
20
|
+
|
|
21
|
+
INSERT OR IGNORE INTO schema_migrations (version, name) VALUES (29, 'project_scope');
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
-- migrations/032_session_derivables.sql
|
|
2
|
+
-- #352 Phase 2: derivable metadata. All nullable: NULL means not-derivable
|
|
3
|
+
-- for that runtime, never faked.
|
|
4
|
+
ALTER TABLE sessions ADD COLUMN agent_persona TEXT;
|
|
5
|
+
ALTER TABLE sessions ADD COLUMN parent_session_id TEXT;
|
|
6
|
+
ALTER TABLE sessions ADD COLUMN primary_model TEXT;
|
|
7
|
+
ALTER TABLE sessions ADD COLUMN total_tokens INTEGER;
|
|
8
|
+
ALTER TABLE sessions ADD COLUMN skill TEXT;
|
|
9
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_parent ON sessions(parent_session_id);
|
|
10
|
+
|
|
11
|
+
INSERT OR IGNORE INTO schema_migrations (version, name) VALUES (32, 'session_derivables');
|
|
@@ -26,6 +26,9 @@ CREATE TABLE IF NOT EXISTS sessions (
|
|
|
26
26
|
transcript_length BIGINT,
|
|
27
27
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
28
28
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
29
|
+
workstream_id TEXT,
|
|
30
|
+
binding_source TEXT,
|
|
31
|
+
binding_confidence DOUBLE PRECISION,
|
|
29
32
|
fts_vector TSVECTOR GENERATED ALWAYS AS (
|
|
30
33
|
setweight(to_tsvector('english', coalesce(label, '')), 'A') ||
|
|
31
34
|
setweight(to_tsvector('english', coalesce(summary, '')), 'B') ||
|
|
@@ -255,3 +258,34 @@ CREATE TABLE IF NOT EXISTS code_exemplar_embeddings (
|
|
|
255
258
|
CREATE INDEX IF NOT EXISTS code_exemplar_embeddings_idx
|
|
256
259
|
ON code_exemplar_embeddings USING ivfflat (embedding vector_l2_ops)
|
|
257
260
|
WITH (lists = 100);
|
|
261
|
+
|
|
262
|
+
-- ── Workstreams (mirror of SQLite migration 025) ─────────────────────────────
|
|
263
|
+
CREATE TABLE IF NOT EXISTS workstreams (
|
|
264
|
+
id TEXT PRIMARY KEY,
|
|
265
|
+
label TEXT NOT NULL,
|
|
266
|
+
status TEXT NOT NULL DEFAULT 'active' CHECK (status IN ('active','merged','retired')),
|
|
267
|
+
merged_into TEXT REFERENCES workstreams(id),
|
|
268
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
269
|
+
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
270
|
+
last_session_at TIMESTAMPTZ
|
|
271
|
+
);
|
|
272
|
+
|
|
273
|
+
CREATE TABLE IF NOT EXISTS workstream_entities (
|
|
274
|
+
workstream_id TEXT NOT NULL REFERENCES workstreams(id) ON DELETE CASCADE,
|
|
275
|
+
entity_canonical TEXT NOT NULL REFERENCES entities(canonical),
|
|
276
|
+
session_count INTEGER NOT NULL DEFAULT 0,
|
|
277
|
+
PRIMARY KEY (workstream_id, entity_canonical)
|
|
278
|
+
);
|
|
279
|
+
|
|
280
|
+
CREATE INDEX IF NOT EXISTS idx_workstream_entities_entity ON workstream_entities(entity_canonical);
|
|
281
|
+
|
|
282
|
+
-- FK from sessions.workstream_id to workstreams (deferred so workstreams exists first)
|
|
283
|
+
DO $$
|
|
284
|
+
BEGIN
|
|
285
|
+
ALTER TABLE sessions
|
|
286
|
+
ADD CONSTRAINT fk_sessions_workstream
|
|
287
|
+
FOREIGN KEY (workstream_id) REFERENCES workstreams(id);
|
|
288
|
+
EXCEPTION WHEN duplicate_object THEN NULL;
|
|
289
|
+
END $$;
|
|
290
|
+
|
|
291
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_workstream ON sessions(workstream_id);
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
-- PG parity for SQLite migration 019: split the mechanical `replaces` relation
|
|
2
2
|
-- out of `supersedes`.
|
|
3
3
|
--
|
|
4
|
-
--
|
|
5
|
-
--
|
|
6
|
-
--
|
|
4
|
+
-- Idempotent: safe to re-apply on a database that already has this shape.
|
|
5
|
+
-- DROP CONSTRAINT IF EXISTS removes any existing named constraint before the
|
|
6
|
+
-- DO-block re-adds it, so duplicate_object is never raised in practice;
|
|
7
|
+
-- the EXCEPTION clause is defensive for parity with the 001 pattern.
|
|
7
8
|
--
|
|
8
9
|
-- Widens the CHECK constraints on sessions.status and session_edges.kind to
|
|
9
10
|
-- admit 'replaced' / 'replaces', then reclassifies existing mechanical edges:
|
|
@@ -13,12 +14,20 @@
|
|
|
13
14
|
BEGIN;
|
|
14
15
|
|
|
15
16
|
ALTER TABLE sessions DROP CONSTRAINT IF EXISTS sessions_status_check;
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
DO $$
|
|
18
|
+
BEGIN
|
|
19
|
+
ALTER TABLE sessions ADD CONSTRAINT sessions_status_check
|
|
20
|
+
CHECK (status IN ('active', 'closed', 'superseded', 'replaced'));
|
|
21
|
+
EXCEPTION WHEN duplicate_object THEN NULL;
|
|
22
|
+
END $$;
|
|
18
23
|
|
|
19
24
|
ALTER TABLE session_edges DROP CONSTRAINT IF EXISTS session_edges_kind_check;
|
|
20
|
-
|
|
21
|
-
|
|
25
|
+
DO $$
|
|
26
|
+
BEGIN
|
|
27
|
+
ALTER TABLE session_edges ADD CONSTRAINT session_edges_kind_check
|
|
28
|
+
CHECK (kind IN ('supersedes', 'replaces', 'continues'));
|
|
29
|
+
EXCEPTION WHEN duplicate_object THEN NULL;
|
|
30
|
+
END $$;
|
|
22
31
|
|
|
23
32
|
UPDATE session_edges e SET kind = 'replaces'
|
|
24
33
|
WHERE e.kind = 'supersedes'
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
-- migrations/pg/025_workstreams.sql
|
|
2
|
+
-- PG parity for SQLite migration 025 (workstreams). Auto-applied by the
|
|
3
|
+
-- version-gated runner (runMigrationsPg). Idempotent: every DDL statement uses
|
|
4
|
+
-- IF NOT EXISTS or ADD COLUMN IF NOT EXISTS, so re-applying on an existing
|
|
5
|
+
-- schema is a no-op. Mirrors migrations/025_workstreams.sql.
|
|
6
|
+
|
|
7
|
+
BEGIN;
|
|
8
|
+
|
|
9
|
+
CREATE TABLE IF NOT EXISTS workstreams (
|
|
10
|
+
id TEXT PRIMARY KEY,
|
|
11
|
+
label TEXT NOT NULL,
|
|
12
|
+
status TEXT NOT NULL DEFAULT 'active' CHECK (status IN ('active','merged','retired')),
|
|
13
|
+
merged_into TEXT REFERENCES workstreams(id),
|
|
14
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
15
|
+
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
16
|
+
last_session_at TIMESTAMPTZ
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
CREATE TABLE IF NOT EXISTS workstream_entities (
|
|
20
|
+
workstream_id TEXT NOT NULL REFERENCES workstreams(id) ON DELETE CASCADE,
|
|
21
|
+
entity_canonical TEXT NOT NULL REFERENCES entities(canonical),
|
|
22
|
+
session_count INTEGER NOT NULL DEFAULT 0,
|
|
23
|
+
PRIMARY KEY (workstream_id, entity_canonical)
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
CREATE INDEX IF NOT EXISTS idx_workstream_entities_entity ON workstream_entities(entity_canonical);
|
|
27
|
+
|
|
28
|
+
ALTER TABLE sessions ADD COLUMN IF NOT EXISTS workstream_id TEXT REFERENCES workstreams(id);
|
|
29
|
+
ALTER TABLE sessions ADD COLUMN IF NOT EXISTS binding_source TEXT;
|
|
30
|
+
ALTER TABLE sessions ADD COLUMN IF NOT EXISTS binding_confidence DOUBLE PRECISION;
|
|
31
|
+
|
|
32
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_workstream ON sessions(workstream_id);
|
|
33
|
+
|
|
34
|
+
COMMIT;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
-- Records which embedder produced the stored vectors, per lane.
|
|
2
|
+
-- lane 'prose' covers session chunks and fact embeddings (same embedder);
|
|
3
|
+
-- lane 'code' covers code exemplar embeddings.
|
|
4
|
+
-- Absence of a row means pre-tracking corpus: reconcile treats the running
|
|
5
|
+
-- embedder as canonical and records it.
|
|
6
|
+
CREATE TABLE IF NOT EXISTS embedding_config (
|
|
7
|
+
lane TEXT PRIMARY KEY CHECK (lane IN ('prose', 'code')),
|
|
8
|
+
provider TEXT NOT NULL,
|
|
9
|
+
model TEXT NOT NULL,
|
|
10
|
+
dim INTEGER NOT NULL,
|
|
11
|
+
updated_at TEXT NOT NULL
|
|
12
|
+
);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
-- Which classifier produced this session's classification. NULL = classified
|
|
2
|
+
-- before provenance tracking; nlm reprocess treats NULL as eligible.
|
|
3
|
+
ALTER TABLE sessions ADD COLUMN IF NOT EXISTS classifier_provider TEXT;
|
|
4
|
+
ALTER TABLE sessions ADD COLUMN IF NOT EXISTS classifier_model TEXT;
|
|
5
|
+
ALTER TABLE sessions ADD COLUMN IF NOT EXISTS classifier_confidence REAL;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
-- Entity variant alias table. Tracks merged surface forms so re-ingest of an
|
|
2
|
+
-- old spelling binds to the canonical entity instead of resurrecting the source.
|
|
3
|
+
CREATE TABLE IF NOT EXISTS entity_variants (
|
|
4
|
+
variant TEXT PRIMARY KEY,
|
|
5
|
+
canonical TEXT NOT NULL REFERENCES entities(canonical) ON DELETE CASCADE,
|
|
6
|
+
source_session_id TEXT REFERENCES sessions(id) ON DELETE SET NULL
|
|
7
|
+
);
|
|
8
|
+
|
|
9
|
+
CREATE INDEX IF NOT EXISTS idx_entity_variants_canonical ON entity_variants(canonical);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
-- migrations/pg/030_project_scope.sql
|
|
2
|
+
-- PG parity for SQLite migration 029 (project scope). Auto-applied by the
|
|
3
|
+
-- version-gated runner (runMigrationsPg). Idempotent: every DDL uses
|
|
4
|
+
-- ADD COLUMN IF NOT EXISTS and CREATE INDEX IF NOT EXISTS. Mirrors migrations/029_project_scope.sql.
|
|
5
|
+
|
|
6
|
+
BEGIN;
|
|
7
|
+
|
|
8
|
+
ALTER TABLE sessions ADD COLUMN IF NOT EXISTS scope TEXT;
|
|
9
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_scope ON sessions(scope);
|
|
10
|
+
|
|
11
|
+
ALTER TABLE facts ADD COLUMN IF NOT EXISTS scope TEXT;
|
|
12
|
+
CREATE INDEX IF NOT EXISTS idx_facts_scope ON facts(scope);
|
|
13
|
+
|
|
14
|
+
ALTER TABLE code_exemplars ADD COLUMN IF NOT EXISTS scope TEXT;
|
|
15
|
+
CREATE INDEX IF NOT EXISTS idx_code_exemplars_scope ON code_exemplars(scope);
|
|
16
|
+
|
|
17
|
+
ALTER TABLE signals ADD COLUMN IF NOT EXISTS scope TEXT;
|
|
18
|
+
CREATE INDEX IF NOT EXISTS idx_signals_scope ON signals(scope);
|
|
19
|
+
|
|
20
|
+
ALTER TABLE workstreams ADD COLUMN IF NOT EXISTS scope TEXT;
|
|
21
|
+
CREATE INDEX IF NOT EXISTS idx_workstreams_scope ON workstreams(scope);
|
|
22
|
+
|
|
23
|
+
COMMIT;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
-- Parity: SQLite migrations/019 allows five session_edges.kind values
|
|
2
|
+
-- (supersedes, replaces, continues, branched_from, merged_from); pg/019
|
|
3
|
+
-- only widened to three. This closes the remaining gap.
|
|
4
|
+
|
|
5
|
+
BEGIN;
|
|
6
|
+
|
|
7
|
+
ALTER TABLE session_edges DROP CONSTRAINT IF EXISTS session_edges_kind_check;
|
|
8
|
+
ALTER TABLE session_edges ADD CONSTRAINT session_edges_kind_check
|
|
9
|
+
CHECK (kind IN ('supersedes', 'replaces', 'continues', 'branched_from', 'merged_from'));
|
|
10
|
+
|
|
11
|
+
COMMIT;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
-- migrations/pg/032_session_derivables.sql
|
|
2
|
+
-- PG parity for SQLite migration 032 (session derivables). Auto-applied by
|
|
3
|
+
-- the version-gated runner (runMigrationsPg). Idempotent: every DDL uses
|
|
4
|
+
-- ADD COLUMN IF NOT EXISTS and CREATE INDEX IF NOT EXISTS. Mirrors
|
|
5
|
+
-- migrations/032_session_derivables.sql. All nullable: NULL means
|
|
6
|
+
-- not-derivable for that runtime, never faked.
|
|
7
|
+
|
|
8
|
+
BEGIN;
|
|
9
|
+
|
|
10
|
+
ALTER TABLE sessions ADD COLUMN IF NOT EXISTS agent_persona TEXT;
|
|
11
|
+
ALTER TABLE sessions ADD COLUMN IF NOT EXISTS parent_session_id TEXT;
|
|
12
|
+
ALTER TABLE sessions ADD COLUMN IF NOT EXISTS primary_model TEXT;
|
|
13
|
+
ALTER TABLE sessions ADD COLUMN IF NOT EXISTS total_tokens INTEGER;
|
|
14
|
+
ALTER TABLE sessions ADD COLUMN IF NOT EXISTS skill TEXT;
|
|
15
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_parent ON sessions(parent_session_id);
|
|
16
|
+
|
|
17
|
+
COMMIT;
|