@jungjaehoon/mama-core 2.4.1 → 4.1.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 +76 -239
- package/db/migrations/030-case-first-memory-substrate.sql +13 -98
- package/db/migrations/034-add-connector-event-scope-columns.sql +9 -13
- package/db/migrations/039-add-connector-event-operator-ingest-seq.sql +9 -95
- package/db/migrations/062-refresh-connector-event-sequences.sql +9 -113
- package/db/migrations/063-refresh-legacy-connector-event-updates.sql +9 -32
- package/db/migrations/067-add-connector-event-source-entity-id.sql +9 -13
- package/db/migrations/069-create-registry-nodes.sql +52 -0
- package/db/migrations/070-record-identity.sql +35 -0
- package/db/migrations/071-service-operation-origins.sql +187 -0
- package/db/migrations/072-observation-versions.sql +29 -0
- package/db/migrations/073-registry-corrections.sql +45 -0
- package/db/migrations/074-work-graph-ref-kinds.sql +39 -0
- package/db/migrations/075-agent-judgments.sql +58 -0
- package/db/migrations/076-scoped-checkpoint-bindings.sql +15 -0
- package/db/migrations/077-legacy-record-kind.sql +6 -0
- package/db/migrations/078-source-ingest-commands.sql +18 -0
- package/db/migrations/079-twin-edge-relations.sql +43 -0
- package/db/migrations/080-restore-duration-days.sql +7 -0
- package/db/migrations/081-mailbox.sql +61 -0
- package/db/migrations/082-commitments-row-id.sql +12 -0
- package/db/migrations/083-observation-is-the-evidence.sql +49 -0
- package/db/migrations/084-scope-kind-is-not-the-cores-to-list.sql +34 -0
- package/db/migrations/085-a-migration-has-a-source.sql +37 -0
- package/db/migrations/086-the-mailbox-is-generic.sql +110 -0
- package/db/migrations/087-mailbox-payload.sql +5 -0
- package/db/migrations/088-native-input-journal.sql +14 -0
- package/db/migrations/089-native-turn-receipt-lookup.sql +3 -0
- package/db/migrations/090-model-run-native-inputs.sql +29 -0
- package/db/migrations/091-native-turn-results.sql +11 -0
- package/db/migrations/092-restore-decision-fts.sql +34 -0
- package/db/migrations/093-native-turn-primary-kind.sql +14 -0
- package/db/migrations/094-commitment-run-provenance.sql +9 -0
- package/db/migrations/095-model-run-native-input-identity.sql +39 -0
- package/db/migrations/096-drop-connector-event-index-fts.sql +9 -0
- package/db/migrations/097-native-input-json-validity.sql +37 -0
- package/db/migrations/098-workflow-memory-kind.sql +105 -0
- package/db/migrations/099-commitment-revision-graph.sql +2 -0
- package/dist/action-contracts.d.ts +212 -0
- package/dist/action-contracts.js +10 -0
- package/dist/api/catalog.d.ts +118 -0
- package/dist/api/catalog.js +1756 -0
- package/dist/api/dispatch.d.ts +76 -0
- package/dist/api/dispatch.js +372 -0
- package/dist/canonicalize.d.ts +2 -2
- package/dist/canonicalize.js +3 -3
- package/dist/client/client.d.ts +33 -0
- package/dist/client/client.js +123 -0
- package/dist/client/ipc.d.ts +81 -0
- package/dist/client/ipc.js +314 -0
- package/dist/db-adapter/base-adapter.d.ts +6 -66
- package/dist/db-adapter/base-adapter.js +6 -6
- package/dist/db-adapter/index.d.ts +5 -5
- package/dist/db-adapter/index.js +2 -5
- package/dist/db-adapter/node-sqlite-adapter.d.ts +85 -15
- package/dist/db-adapter/node-sqlite-adapter.js +1985 -570
- package/dist/db-manager.d.ts +53 -97
- package/dist/db-manager.js +121 -603
- package/dist/embedding/embedder.d.ts +132 -0
- package/dist/embedding/embedder.js +299 -0
- package/dist/identity/principal-repository.d.ts +2 -2
- package/dist/index.d.ts +43 -58
- package/dist/index.js +97 -145
- package/dist/{context-compile/channel-grant.d.ts → knowledge/access.d.ts} +12 -17
- package/dist/knowledge/access.js +663 -0
- package/dist/knowledge/case-errors.d.ts +31 -0
- package/dist/knowledge/case-errors.js +40 -0
- package/dist/{cases/search-rollup.d.ts → knowledge/case-search-rollup.d.ts} +5 -4
- package/dist/{cases/search-rollup.js → knowledge/case-search-rollup.js} +6 -8
- package/dist/{cases/store.d.ts → knowledge/case-store.d.ts} +3 -6
- package/dist/{cases/store.js → knowledge/case-store.js} +7 -42
- package/dist/{cases/timeline-range.d.ts → knowledge/case-timeline-range.d.ts} +3 -3
- package/dist/{cases/timeline-range.js → knowledge/case-timeline-range.js} +47 -25
- package/dist/{cases/types.d.ts → knowledge/case-types.d.ts} +8 -2
- package/dist/{cases/types.js → knowledge/case-types.js} +1 -1
- package/dist/knowledge/commitment-revision-migration.d.ts +4 -0
- package/dist/knowledge/commitment-revision-migration.js +50 -0
- package/dist/knowledge/commitments.d.ts +192 -0
- package/dist/knowledge/commitments.js +386 -0
- package/dist/knowledge/decision-edges.d.ts +70 -0
- package/dist/knowledge/decision-edges.js +123 -0
- package/dist/{agent-graph/types.d.ts → knowledge/graph-query.d.ts} +80 -70
- package/dist/knowledge/graph-query.js +1585 -0
- package/dist/knowledge/identity.d.ts +16 -0
- package/dist/knowledge/identity.js +22 -0
- package/dist/knowledge/index.d.ts +47 -0
- package/dist/knowledge/index.js +90 -0
- package/dist/knowledge/judgment-edge.d.ts +6 -0
- package/dist/knowledge/judgment-edge.js +22 -0
- package/dist/knowledge/judgments.d.ts +118 -0
- package/dist/knowledge/judgments.js +802 -0
- package/dist/knowledge/observations.d.ts +160 -0
- package/dist/knowledge/observations.js +449 -0
- package/dist/knowledge/question-type.d.ts +34 -0
- package/dist/knowledge/question-type.js +70 -0
- package/dist/{search → knowledge}/ranker-features.js +1 -1
- package/dist/{search → knowledge}/search-quality.d.ts +0 -1
- package/dist/knowledge/search.d.ts +38 -0
- package/dist/knowledge/search.js +91 -0
- package/dist/knowledge/source-ingest.d.ts +65 -0
- package/dist/knowledge/source-ingest.js +174 -0
- package/dist/{edges/types.d.ts → knowledge/twin-edge-types.d.ts} +31 -4
- package/dist/{edges/types.js → knowledge/twin-edge-types.js} +13 -2
- package/dist/knowledge/work-dates.d.ts +49 -0
- package/dist/knowledge/work-dates.js +120 -0
- package/dist/mama-api.d.ts +114 -778
- package/dist/mama-api.js +313 -2461
- package/dist/memory/api.d.ts +264 -24
- package/dist/memory/api.js +1633 -843
- package/dist/memory/bootstrap-builder.d.ts +2 -1
- package/dist/memory/bootstrap-builder.js +5 -5
- package/dist/memory/channel-summary-state-store.d.ts +3 -2
- package/dist/memory/channel-summary-state-store.js +53 -51
- package/dist/memory/channel-summary-store.d.ts +5 -3
- package/dist/memory/channel-summary-store.js +3 -8
- package/dist/memory/dashboard-read.d.ts +46 -0
- package/dist/memory/dashboard-read.js +94 -0
- package/dist/memory/event-store.d.ts +3 -3
- package/dist/memory/event-store.js +3 -10
- package/dist/memory/finding-store.d.ts +3 -2
- package/dist/memory/finding-store.js +2 -7
- package/dist/memory/graph-read.d.ts +52 -0
- package/dist/memory/graph-read.js +130 -0
- package/dist/memory/judgment-types.d.ts +394 -0
- package/dist/memory/judgment-types.js +16 -0
- package/dist/memory/provenance-audit.d.ts +5 -2
- package/dist/memory/provenance-audit.js +8 -14
- package/dist/memory/provenance-live.d.ts +141 -0
- package/dist/memory/provenance-live.js +409 -0
- package/dist/memory/provenance-query.d.ts +5 -4
- package/dist/memory/provenance-query.js +21 -29
- package/dist/memory/provenance-resolver.d.ts +191 -0
- package/dist/memory/provenance-resolver.js +155 -0
- package/dist/memory/provenance.d.ts +1 -11
- package/dist/memory/provenance.js +2 -33
- package/dist/memory/recall-sanitize.d.ts +55 -0
- package/dist/memory/recall-sanitize.js +144 -0
- package/dist/memory/secret-filter.d.ts +32 -0
- package/dist/memory/secret-filter.js +126 -0
- package/dist/memory/truth-store.d.ts +2 -1
- package/dist/memory/truth-store.js +1 -4
- package/dist/memory/types.d.ts +74 -24
- package/dist/memory/types.js +75 -5
- package/dist/memory/write-adapters.d.ts +98 -0
- package/dist/memory/write-adapters.js +242 -0
- package/dist/operations/owner-action-effects.d.ts +53 -0
- package/dist/operations/owner-action-effects.js +96 -0
- package/dist/provenance/source-ref.d.ts +1 -1
- package/dist/provenance/source-ref.js +0 -2
- package/dist/registry/corrections.d.ts +31 -0
- package/dist/registry/corrections.js +332 -0
- package/dist/registry/record-identity.d.ts +49 -0
- package/dist/registry/record-identity.js +133 -0
- package/dist/registry/store.d.ts +101 -0
- package/dist/registry/store.js +395 -0
- package/dist/registry/types.d.ts +28 -0
- package/dist/registry/types.js +5 -0
- package/dist/relevance-scorer.js +2 -2
- package/dist/runtime/agent-event-bus.d.ts +50 -0
- package/dist/runtime/agent-event-bus.js +101 -0
- package/dist/runtime/drivers/claude-cli-wrapper.d.ts +152 -0
- package/dist/runtime/drivers/claude-cli-wrapper.js +375 -0
- package/dist/runtime/drivers/claude-effort.d.ts +4 -0
- package/dist/runtime/drivers/claude-effort.js +16 -0
- package/dist/runtime/drivers/cli-arg-redaction.d.ts +2 -0
- package/dist/runtime/drivers/cli-arg-redaction.js +18 -0
- package/dist/runtime/drivers/cli-secret-redaction.d.ts +17 -0
- package/dist/runtime/drivers/cli-secret-redaction.js +126 -0
- package/dist/runtime/drivers/codex-app-server-process.d.ts +277 -0
- package/dist/runtime/drivers/codex-app-server-process.js +2342 -0
- package/dist/runtime/drivers/codex-auxiliary-tools.d.ts +17 -0
- package/dist/runtime/drivers/codex-auxiliary-tools.js +267 -0
- package/dist/runtime/drivers/codex-home.d.ts +20 -0
- package/dist/runtime/drivers/codex-home.js +674 -0
- package/dist/runtime/drivers/codex-thread-registry.d.ts +63 -0
- package/dist/runtime/drivers/codex-thread-registry.js +433 -0
- package/dist/runtime/drivers/persistent-cli-adapter.d.ts +160 -0
- package/dist/runtime/drivers/persistent-cli-adapter.js +396 -0
- package/dist/runtime/drivers/persistent-cli-process.d.ts +425 -0
- package/dist/runtime/drivers/persistent-cli-process.js +1529 -0
- package/dist/runtime/drivers/types.d.ts +456 -0
- package/dist/runtime/drivers/types.js +110 -0
- package/dist/runtime/mailbox.d.ts +223 -0
- package/dist/runtime/mailbox.js +582 -0
- package/dist/runtime/model-run-store.d.ts +28 -0
- package/dist/{model-runs/store.js → runtime/model-run-store.js} +81 -41
- package/dist/{model-runs/types.d.ts → runtime/model-run-types.d.ts} +33 -4
- package/dist/{model-runs/types.js → runtime/model-run-types.js} +1 -1
- package/dist/runtime/native-effect-observer.d.ts +22 -0
- package/dist/runtime/native-effect-observer.js +103 -0
- package/dist/runtime/native-input-journal.d.ts +46 -0
- package/dist/runtime/native-input-journal.js +308 -0
- package/dist/runtime/native-prompt.d.ts +118 -0
- package/dist/runtime/native-prompt.js +496 -0
- package/dist/runtime/native-session.d.ts +10 -0
- package/dist/{agent-graph/index.js → runtime/native-session.js} +9 -6
- package/dist/runtime/native-tool-trace-observer.d.ts +5 -0
- package/dist/runtime/native-tool-trace-observer.js +65 -0
- package/dist/runtime/native-turn.d.ts +272 -0
- package/dist/runtime/native-turn.js +1041 -0
- package/dist/runtime/operations.d.ts +236 -0
- package/dist/runtime/operations.js +565 -0
- package/dist/runtime/post-tool-handler.d.ts +74 -0
- package/dist/runtime/post-tool-handler.js +137 -0
- package/dist/runtime/prompt-layers.d.ts +126 -0
- package/dist/runtime/prompt-layers.js +239 -0
- package/dist/runtime/runtime-process.d.ts +102 -0
- package/dist/runtime/runtime-process.js +206 -0
- package/dist/runtime/runtime.d.ts +278 -0
- package/dist/runtime/runtime.js +563 -0
- package/dist/runtime/session-pool.d.ts +176 -0
- package/dist/runtime/session-pool.js +369 -0
- package/dist/runtime/stimulus-payload.d.ts +5 -0
- package/dist/runtime/stimulus-payload.js +50 -0
- package/dist/runtime/subagent-bridge.d.ts +24 -0
- package/dist/{agent-graph/types.js → runtime/subagent-bridge.js} +1 -1
- package/dist/runtime/text-completion.d.ts +22 -0
- package/dist/{agent-situation/types.js → runtime/text-completion.js} +1 -1
- package/dist/runtime/token-estimator.d.ts +25 -0
- package/dist/runtime/token-estimator.js +75 -0
- package/dist/runtime/tool-trace-store.d.ts +22 -0
- package/dist/{model-runs → runtime}/tool-trace-store.js +46 -27
- package/dist/runtime/trace-summary.d.ts +5 -0
- package/dist/runtime/trace-summary.js +74 -0
- package/dist/runtime/turn-text.d.ts +23 -0
- package/dist/runtime/turn-text.js +41 -0
- package/dist/storage/database.d.ts +67 -0
- package/dist/storage/database.js +158 -0
- package/package.json +20 -34
- package/dist/agent-graph/alias-write.d.ts +0 -3
- package/dist/agent-graph/alias-write.js +0 -234
- package/dist/agent-graph/entity-resolve.d.ts +0 -3
- package/dist/agent-graph/entity-resolve.js +0 -271
- package/dist/agent-graph/errors.d.ts +0 -4
- package/dist/agent-graph/errors.js +0 -11
- package/dist/agent-graph/graph-query.d.ts +0 -5
- package/dist/agent-graph/graph-query.js +0 -360
- package/dist/agent-graph/index.d.ts +0 -6
- package/dist/agent-situation/builder.d.ts +0 -8
- package/dist/agent-situation/builder.js +0 -239
- package/dist/agent-situation/cache-key.d.ts +0 -4
- package/dist/agent-situation/cache-key.js +0 -64
- package/dist/agent-situation/index.d.ts +0 -7
- package/dist/agent-situation/index.js +0 -28
- package/dist/agent-situation/packet-store.d.ts +0 -27
- package/dist/agent-situation/packet-store.js +0 -228
- package/dist/agent-situation/ranking-policy.d.ts +0 -18
- package/dist/agent-situation/ranking-policy.js +0 -75
- package/dist/agent-situation/source-readers.d.ts +0 -52
- package/dist/agent-situation/source-readers.js +0 -300
- package/dist/agent-situation/types.d.ts +0 -195
- package/dist/cases/wiki-page-index.d.ts +0 -37
- package/dist/cases/wiki-page-index.js +0 -201
- package/dist/config-loader.d.ts +0 -68
- package/dist/config-loader.js +0 -239
- package/dist/connectors/event-index.d.ts +0 -24
- package/dist/connectors/event-index.js +0 -245
- package/dist/connectors/raw-query.d.ts +0 -40
- package/dist/connectors/raw-query.js +0 -412
- package/dist/connectors/types.d.ts +0 -117
- package/dist/connectors/types.js +0 -3
- package/dist/context-compile/boundary-defaults.d.ts +0 -12
- package/dist/context-compile/boundary-defaults.js +0 -105
- package/dist/context-compile/channel-grant.js +0 -66
- package/dist/context-compile/compiler-policy.d.ts +0 -39
- package/dist/context-compile/compiler-policy.js +0 -147
- package/dist/context-compile/compiler.d.ts +0 -18
- package/dist/context-compile/compiler.js +0 -404
- package/dist/context-compile/index.d.ts +0 -10
- package/dist/context-compile/index.js +0 -26
- package/dist/context-compile/packet-store.d.ts +0 -8
- package/dist/context-compile/packet-store.js +0 -239
- package/dist/context-compile/ref.d.ts +0 -7
- package/dist/context-compile/ref.js +0 -102
- package/dist/context-compile/source-readers.d.ts +0 -70
- package/dist/context-compile/source-readers.js +0 -840
- package/dist/context-compile/types.d.ts +0 -155
- package/dist/context-compile/types.js +0 -11
- package/dist/context-compile/visibility.d.ts +0 -21
- package/dist/context-compile/visibility.js +0 -224
- package/dist/decision-tracker.d.ts +0 -206
- package/dist/decision-tracker.js +0 -481
- package/dist/edges/ref-validation.d.ts +0 -7
- package/dist/edges/ref-validation.js +0 -321
- package/dist/edges/store.d.ts +0 -8
- package/dist/edges/store.js +0 -129
- package/dist/embedding-client.d.ts +0 -28
- package/dist/embedding-client.js +0 -53
- package/dist/embedding-server/index.d.ts +0 -67
- package/dist/embedding-server/index.js +0 -405
- package/dist/embedding-server/mobile/auth.d.ts +0 -44
- package/dist/embedding-server/mobile/auth.js +0 -150
- package/dist/embedding-server/mobile/daemon.d.ts +0 -129
- package/dist/embedding-server/mobile/daemon.js +0 -313
- package/dist/embedding-server/mobile/output-parser.d.ts +0 -115
- package/dist/embedding-server/mobile/output-parser.js +0 -241
- package/dist/embedding-server/mobile/session-api.d.ts +0 -57
- package/dist/embedding-server/mobile/session-api.js +0 -261
- package/dist/embedding-server/mobile/session-manager.d.ts +0 -138
- package/dist/embedding-server/mobile/session-manager.js +0 -378
- package/dist/embedding-server/mobile/websocket-handler.d.ts +0 -137
- package/dist/embedding-server/mobile/websocket-handler.js +0 -486
- package/dist/embeddings.d.ts +0 -68
- package/dist/embeddings.js +0 -244
- package/dist/entities/audit-metrics.d.ts +0 -68
- package/dist/entities/audit-metrics.js +0 -124
- package/dist/entities/candidate-generator.d.ts +0 -8
- package/dist/entities/candidate-generator.js +0 -24
- package/dist/entities/entity-linked-decision-counts.d.ts +0 -2
- package/dist/entities/entity-linked-decision-counts.js +0 -29
- package/dist/entities/entity-list.d.ts +0 -22
- package/dist/entities/entity-list.js +0 -3
- package/dist/entities/entity-orphan-list.d.ts +0 -17
- package/dist/entities/entity-orphan-list.js +0 -3
- package/dist/entities/entity-search.d.ts +0 -20
- package/dist/entities/entity-search.js +0 -3
- package/dist/entities/errors.d.ts +0 -55
- package/dist/entities/errors.js +0 -100
- package/dist/entities/lineage-store.d.ts +0 -28
- package/dist/entities/lineage-store.js +0 -204
- package/dist/entities/normalization.d.ts +0 -14
- package/dist/entities/normalization.js +0 -63
- package/dist/entities/policy-store.d.ts +0 -8
- package/dist/entities/policy-store.js +0 -75
- package/dist/entities/policy-types.d.ts +0 -72
- package/dist/entities/policy-types.js +0 -59
- package/dist/entities/projection.d.ts +0 -8
- package/dist/entities/projection.js +0 -82
- package/dist/entities/provenance-query.d.ts +0 -32
- package/dist/entities/provenance-query.js +0 -3
- package/dist/entities/read-identity.d.ts +0 -31
- package/dist/entities/read-identity.js +0 -264
- package/dist/entities/recall-bridge.d.ts +0 -5
- package/dist/entities/recall-bridge.js +0 -171
- package/dist/entities/resolution-engine.d.ts +0 -8
- package/dist/entities/resolution-engine.js +0 -3
- package/dist/entities/rollback-preview.d.ts +0 -35
- package/dist/entities/rollback-preview.js +0 -3
- package/dist/entities/source-locator.d.ts +0 -3
- package/dist/entities/source-locator.js +0 -32
- package/dist/entities/store.d.ts +0 -69
- package/dist/entities/store.js +0 -544
- package/dist/entities/types.d.ts +0 -166
- package/dist/entities/types.js +0 -30
- package/dist/memory/extraction-prompt.d.ts +0 -4
- package/dist/memory/extraction-prompt.js +0 -89
- package/dist/memory/scope-backfill.d.ts +0 -14
- package/dist/memory/scope-backfill.js +0 -3
- package/dist/memory/scope-store.d.ts +0 -4
- package/dist/memory/scope-store.js +0 -9
- package/dist/memory-store.d.ts +0 -87
- package/dist/memory-store.js +0 -78
- package/dist/model-runs/store.d.ts +0 -13
- package/dist/model-runs/tool-trace-store.d.ts +0 -8
- package/dist/notification-manager.d.ts +0 -7
- package/dist/notification-manager.js +0 -12
- package/dist/outcome-tracker.d.ts +0 -151
- package/dist/outcome-tracker.js +0 -271
- package/dist/query-intent.d.ts +0 -23
- package/dist/query-intent.js +0 -114
- package/dist/runtime/trusted-provenance.d.ts +0 -3
- package/dist/runtime/trusted-provenance.js +0 -6
- package/dist/search/question-type.d.ts +0 -5
- package/dist/search/question-type.js +0 -41
- package/dist/test-utils.d.ts +0 -80
- package/dist/test-utils.js +0 -218
- package/dist/tier-validator.d.ts +0 -43
- package/dist/tier-validator.js +0 -159
- package/dist/time-formatter.d.ts +0 -25
- package/dist/time-formatter.js +0 -93
- /package/dist/{search → knowledge}/feedback-store.d.ts +0 -0
- /package/dist/{search → knowledge}/feedback-store.js +0 -0
- /package/dist/{search → knowledge}/ranker-features.d.ts +0 -0
- /package/dist/{search → knowledge}/ranker-rescore.d.ts +0 -0
- /package/dist/{search → knowledge}/ranker-rescore.js +0 -0
- /package/dist/{search → knowledge}/ranker-trainer.d.ts +0 -0
- /package/dist/{search → knowledge}/ranker-trainer.js +0 -0
- /package/dist/{search → knowledge}/search-quality.js +0 -0
package/README.md
CHANGED
|
@@ -1,258 +1,95 @@
|
|
|
1
|
-
#
|
|
1
|
+
# mama-core
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The shared engine for storage, records and revisions, evidence links, memory, search and native
|
|
4
|
+
runtime drivers. Consumers supply their own database, principals, source access and product
|
|
5
|
+
vocabulary through public exports. Core does not require the MAMA OS daemon.
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
Version **4.1.0**; Node.js 22.13+. This README describes the current rebuild checkout.
|
|
8
|
+
See [architecture](../../docs/explanation/architecture.md) and
|
|
9
|
+
[the shared-engine goal](../../INTENT.md).
|
|
6
10
|
|
|
7
|
-
|
|
11
|
+
## Public API
|
|
8
12
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
- **standalone**: Standalone HTTP server
|
|
13
|
+
[package.json](package.json) defines supported import paths; [src/index.ts](src/index.ts)
|
|
14
|
+
defines root exports. Representative root exports:
|
|
12
15
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
| Area | Root exports |
|
|
17
|
+
| --------- | ------------------------------------------------------------------------------------------------- |
|
|
18
|
+
| Storage | `createAdapter`, `SQLiteAdapter`, `initDB`, `getDB`, `getAdapter`, `closeDB` |
|
|
19
|
+
| Records | `createKnowledge`, `appendJudgment`, `ingestSource` |
|
|
20
|
+
| Memory | `mama`, `createMamaApi`, `saveMemory`, `recallMemory`, `ingestConversation`, `MEMORY_KINDS` |
|
|
21
|
+
| Search | `generateEmbedding`, `generateEnhancedEmbedding`, `cosineSimilarity`, `EmbeddingCache` |
|
|
22
|
+
| Evidence | `getMemoryProvenance`, `resolveMemoryProvenance`, `insertTwinEdge`, `listVisibleTwinEdgesForRefs` |
|
|
23
|
+
| Execution | `createCatalog`, `createDispatcher`, `createClient`, `startRuntime`, `createActionIpcServer` |
|
|
24
|
+
| Traces | `beginModelRun`, `commitModelRun`, `appendToolTrace`, `listToolTracesForRun` |
|
|
16
25
|
|
|
17
|
-
|
|
26
|
+
Every public subpath below is relative to `@jungjaehoon/mama-core`:
|
|
18
27
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
28
|
+
| Area | Export paths |
|
|
29
|
+
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
30
|
+
| Root | `.` |
|
|
31
|
+
| Memory and storage | `./embeddings`, `./memory/types`, `./db-manager`, `./mama-api` |
|
|
32
|
+
| Helpers | `./relevance-scorer`, `./debug-logger`, `./decision-formatter`, `./errors`, `./canonicalize` |
|
|
33
|
+
| Evidence and records | `./connectors`, `./connectors/event-index`, `./connectors/raw-query`, `./provenance/source-ref`, `./registry/store`, `./knowledge` |
|
|
34
|
+
| Actions | `./operations/owner-action-effects`, `./action-contracts`, `./api/catalog`, `./api/dispatch` |
|
|
35
|
+
| Transport and runtime | `./client/client`, `./client/ipc`, `./runtime/*` |
|
|
24
36
|
|
|
25
|
-
|
|
37
|
+
The two event-index paths export the same module. Runtime subpaths map to compiled JavaScript
|
|
38
|
+
and declarations under `dist/runtime/`. Source files without an export path are internal.
|
|
26
39
|
|
|
27
|
-
|
|
40
|
+
After installing the package, a minimal CommonJS example is:
|
|
28
41
|
|
|
29
42
|
```javascript
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
await
|
|
43
|
+
process.env.MAMA_DB_PATH = '/path/to/consumer/memory.db';
|
|
44
|
+
const { initDB, getDB, closeDB } = require('@jungjaehoon/mama-core');
|
|
45
|
+
|
|
46
|
+
async function main() {
|
|
47
|
+
await initDB();
|
|
48
|
+
getDB(); // The initialized SQLite connection.
|
|
49
|
+
closeDB();
|
|
50
|
+
}
|
|
51
|
+
main().catch(console.error);
|
|
35
52
|
```
|
|
36
53
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
54
|
+
Set the path before initialization: the default `~/.claude/mama-memory.db` is real development
|
|
55
|
+
memory, not a test database. Adapter-based APIs accept consumer-owned storage; consult the
|
|
56
|
+
exported types for input contracts.
|
|
57
|
+
|
|
58
|
+
Embeddings use `Xenova/multilingual-e5-large` (1024 dimensions), computed locally.
|
|
59
|
+
Core selects `HF_HOME`, then `TRANSFORMERS_CACHE`, then the directory declared by the consumer;
|
|
60
|
+
otherwise Transformers uses its own default. MAMA's OS, MCP and plugin consumers declare
|
|
61
|
+
`~/.cache/huggingface/transformers`. Other consumers can call `declareEmbeddingCacheDir()`
|
|
62
|
+
from `./embeddings` before the first embedding. Initial use can download model assets.
|
|
63
|
+
|
|
64
|
+
## Directory layout and migrations
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
src/
|
|
68
|
+
index.ts root exports
|
|
69
|
+
db-manager.ts, mama-api.ts database and development-memory facade
|
|
70
|
+
api/, client/ catalog, dispatch and transports
|
|
71
|
+
db-adapter/, storage/ SQLite adapters and storage support
|
|
72
|
+
embedding/ embeddings and model cache
|
|
73
|
+
identity/, registry/ principals and record identity
|
|
74
|
+
knowledge/, memory/ records, revisions, evidence, recall
|
|
75
|
+
operations/, provenance/ effect contracts and source references
|
|
76
|
+
runtime/ sessions, mailbox, drivers, runs and traces
|
|
77
|
+
db/migrations/ numbered SQLite migrations
|
|
78
|
+
scripts/ build support
|
|
79
|
+
tests/ package tests
|
|
43
80
|
```
|
|
44
81
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
- **embeddings** - Generate embeddings using Transformers.js
|
|
50
|
-
- `generateEmbedding(text)` - Single text embedding
|
|
51
|
-
- `generateBatchEmbeddings(texts)` - Batch embedding generation
|
|
52
|
-
- `cosineSimilarity(a, b)` - Similarity calculation
|
|
53
|
-
|
|
54
|
-
- **embedding-cache** - In-memory embedding cache
|
|
55
|
-
- `embeddingCache.get(key)` - Retrieve cached embedding
|
|
56
|
-
- `embeddingCache.set(key, value)` - Store embedding
|
|
57
|
-
- `embeddingCache.clear()` - Clear cache
|
|
58
|
-
|
|
59
|
-
- **embedding-client** - HTTP client for embedding server
|
|
60
|
-
- `isServerRunning()` - Check server availability
|
|
61
|
-
- `getEmbeddingFromServer(text)` - Get embedding via HTTP
|
|
62
|
-
- `getServerStatus()` - Server health check
|
|
63
|
-
|
|
64
|
-
### Database Modules
|
|
65
|
-
|
|
66
|
-
- **db-manager** - SQLite database initialization
|
|
67
|
-
- `initDB()` - Initialize database with migrations
|
|
68
|
-
- `getDB()` - Get database connection
|
|
69
|
-
- `closeDB()` - Close connection
|
|
70
|
-
|
|
71
|
-
- **db-adapter** - Database adapter interface
|
|
72
|
-
- `createAdapter(type)` - Create SQLite adapter
|
|
73
|
-
- Supports prepared statements and transactions
|
|
74
|
-
|
|
75
|
-
- **memory-store** - Decision storage operations
|
|
76
|
-
- CRUD operations for decisions
|
|
77
|
-
- Vector similarity search
|
|
78
|
-
|
|
79
|
-
### Memory API
|
|
80
|
-
|
|
81
|
-
- **memory/api** - Scoped memory operations
|
|
82
|
-
- `saveMemory(input)` - Save typed memory with scopes and optional event_date (preference, fact, decision, lesson, constraint)
|
|
83
|
-
- `recallMemory(query, options)` - Truth-aware recall with scope filtering, strictness modes, and retrieval diagnostics
|
|
84
|
-
- `buildProfile(scopes)` - Build memory profile (static/dynamic/evidence)
|
|
85
|
-
- `ingestMemory(input)` - Ingest raw content as memory
|
|
86
|
-
- `ingestConversation(input)` - Decompose conversations into typed memory units via optional LLM extraction
|
|
87
|
-
- `evolveMemory(input)` - Resolve graph edges between memories
|
|
88
|
-
- `buildMemoryBootstrap(params)` - Build memory agent bootstrap context
|
|
89
|
-
- `createAuditAck(input)` - Create audit acknowledgment
|
|
90
|
-
- `recordMemoryAudit(input)` - Record channel audit with state management
|
|
91
|
-
|
|
92
|
-
- **memory/truth-store** - Truth projection layer
|
|
93
|
-
- `projectMemoryTruth(row)` - Write truth projection
|
|
94
|
-
- `queryRelevantTruth(params)` - Query current truth with scope/query filtering
|
|
95
|
-
- `queryTruthByTopic(topic)` - Get truth rows for a topic
|
|
96
|
-
|
|
97
|
-
- **memory/evolution-engine** - Graph edge resolution
|
|
98
|
-
- `resolveMemoryEvolution(input)` - Determine supersedes/builds_on edges
|
|
99
|
-
|
|
100
|
-
- **memory/extraction-prompt** - LLM extraction for conversation ingestion
|
|
101
|
-
- `buildExtractionPrompt(messages)` - Build structured prompt for memory extraction
|
|
102
|
-
- `parseExtractionResponse(response)` - Parse LLM JSON response into typed units
|
|
103
|
-
|
|
104
|
-
- **memory/channel-summary-state-store** - Channel state management
|
|
105
|
-
- `recordChannelAudit(input)` - Accumulate audit outcomes into channel state
|
|
106
|
-
|
|
107
|
-
- **memory/provenance** - Trusted memory provenance
|
|
108
|
-
- Preserves compact runtime origin metadata in `provenance_json`
|
|
109
|
-
- Keeps underlying raw/memory/case/entity refs in `source_refs_json`
|
|
110
|
-
- Ignores caller-supplied untrusted provenance on public paths
|
|
111
|
-
|
|
112
|
-
- **model-runs** - Agent execution lineage
|
|
113
|
-
- `model-runs/store` records model run lifecycle and replay metadata
|
|
114
|
-
- `model-runs/tool-trace-store` records tool calls for later audit and reconstruction
|
|
115
|
-
|
|
116
|
-
- **connectors/raw-query** - Unified raw evidence reads
|
|
117
|
-
- Query raw connector rows through scope-aware filters
|
|
118
|
-
- Preserve raw source ids for downstream provenance
|
|
119
|
-
|
|
120
|
-
- **agent-situation** - Worker situation packets
|
|
121
|
-
- Build, rank, cache, insert, and read append-only situation packets for worker context
|
|
122
|
-
|
|
123
|
-
- **agent-graph** - Worker graph/entity helpers
|
|
124
|
-
- Query graph neighborhoods, resolve entities, and write aliases with visibility checks
|
|
125
|
-
|
|
126
|
-
### Core API (Legacy)
|
|
127
|
-
|
|
128
|
-
- **mama-api** - High-level API interface (wraps memory API)
|
|
129
|
-
- `save(decision)` - Save decision
|
|
130
|
-
- `recall(topic)` - Retrieve decision history
|
|
131
|
-
- `suggest(query, options)` - Semantic search with hybrid FTS5 + vector + recency, strictness controls, and diagnostics
|
|
132
|
-
- `updateOutcome(id, outcome)` - Update decision outcome
|
|
133
|
-
|
|
134
|
-
- **search/search-quality** - Search option normalization
|
|
135
|
-
- `normalizeSearchQualityOptions(options)` - Normalize recall/balanced/strict thresholds and confirmation requirements
|
|
136
|
-
|
|
137
|
-
- **edges** - Twin edge ledger
|
|
138
|
-
- Validate refs and store durable edges between memory, raw, entity, case, and packet refs
|
|
139
|
-
|
|
140
|
-
- **decision-tracker** - Decision graph management
|
|
141
|
-
- `learnDecision(decision)` - Learn from decision
|
|
142
|
-
- `createEdgesFromReasoning(reasoning)` - Parse decision links
|
|
143
|
-
|
|
144
|
-
- **relevance-scorer** - Semantic similarity scoring
|
|
145
|
-
- `scoreRelevance(query, decisions)` - Score decision relevance
|
|
146
|
-
- Combines vector, graph, and recency signals
|
|
147
|
-
|
|
148
|
-
### Configuration
|
|
149
|
-
|
|
150
|
-
- **config-loader** - Configuration management
|
|
151
|
-
- `loadConfig()` - Load MAMA configuration
|
|
152
|
-
- `getModelName()` - Get embedding model name
|
|
153
|
-
- `getEmbeddingDim()` - Get embedding dimensions
|
|
154
|
-
- `updateConfig(config)` - Update configuration
|
|
155
|
-
|
|
156
|
-
## Environment Variables
|
|
157
|
-
|
|
158
|
-
- `MAMA_DB_PATH` - Database file path (default: `~/.claude/mama-memory.db`)
|
|
159
|
-
- `MAMA_EMBEDDING_PORT` - Embedding server port (default: `3849`)
|
|
160
|
-
- `MAMA_HTTP_PORT` - Backward-compatible alias for embedding server port
|
|
161
|
-
|
|
162
|
-
## Dependencies
|
|
163
|
-
|
|
164
|
-
- **@huggingface/transformers** - Local embedding generation
|
|
165
|
-
- **better-sqlite3** - SQLite runtime with FTS5 support
|
|
166
|
-
- **Pure-TS cosine similarity** - Vector search (no native extensions)
|
|
82
|
+
The highest migration is **096**, `096-drop-connector-event-index-fts.sql`.
|
|
83
|
+
Migration files cover **001–042** and **061–096**; there is no 043 file.
|
|
84
|
+
**044–060 are reserved** by the retired chain's `schema_version` entries and must never be
|
|
85
|
+
reused. Add schema changes after 096, not into a gap. See [migrations](db/migrations).
|
|
167
86
|
|
|
168
87
|
## Development
|
|
169
88
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
pnpm test
|
|
176
|
-
|
|
177
|
-
# Watch mode
|
|
178
|
-
pnpm test:watch
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
## Test Coverage
|
|
182
|
-
|
|
183
|
-
- 120+ unit/integration test files in `packages/mama-core/tests`
|
|
184
|
-
- 100% passing
|
|
185
|
-
- Tests cover:
|
|
186
|
-
- Config loader, database initialization, module exports
|
|
187
|
-
- Memory API (save, recall, profile)
|
|
188
|
-
- Truth store, evolution engine, scope schema
|
|
189
|
-
- Channel summary, channel summary state
|
|
190
|
-
- Event store, finding store, bootstrap builder
|
|
191
|
-
- Memory provenance, model runs, tool traces
|
|
192
|
-
- Twin edges, raw query, agent situation, agent graph
|
|
193
|
-
- Strict search diagnostics and rollup provenance
|
|
194
|
-
- Legacy shim compatibility
|
|
195
|
-
|
|
196
|
-
## Architecture
|
|
197
|
-
|
|
198
|
-
MAMA Core uses CommonJS modules and is designed to be shared across multiple packages:
|
|
199
|
-
|
|
200
|
-
```
|
|
201
|
-
packages/mama-core/
|
|
202
|
-
├── src/
|
|
203
|
-
│ ├── index.ts # Main exports
|
|
204
|
-
│ ├── embeddings.ts # Embedding generation
|
|
205
|
-
│ ├── db-manager.ts # Database management
|
|
206
|
-
│ ├── mama-api.ts # High-level API (wraps memory API)
|
|
207
|
-
│ ├── db-adapter/ # Database adapter (SQLite)
|
|
208
|
-
│ ├── memory/ # Memory infrastructure
|
|
209
|
-
│ ├── types.ts # MemoryRecord, MemoryScopeRef, RecallBundle, etc.
|
|
210
|
-
│ ├── api.ts # saveMemory, recallMemory, buildProfile, etc.
|
|
211
|
-
│ ├── truth-store.ts # Truth projection layer
|
|
212
|
-
│ ├── extraction-prompt.ts # LLM extraction prompt + parser
|
|
213
|
-
│ ├── evolution-engine.ts # Graph edge resolution
|
|
214
|
-
│ ├── scope-store.ts # Scope management
|
|
215
|
-
│ ├── event-store.ts # Audit event persistence
|
|
216
|
-
│ ├── finding-store.ts # Audit finding persistence
|
|
217
|
-
│ ├── channel-summary-store.ts # Channel summaries
|
|
218
|
-
│ ├── channel-summary-state-store.ts # Channel state reducer
|
|
219
|
-
│ ├── bootstrap-builder.ts # Memory agent bootstrap
|
|
220
|
-
│ └── profile-builder.ts # Profile classification
|
|
221
|
-
│ ├── model-runs/ # Model run + tool trace lineage
|
|
222
|
-
│ ├── connectors/ # Raw connector query/index helpers
|
|
223
|
-
│ ├── edges/ # Twin edge ledger
|
|
224
|
-
│ ├── agent-situation/ # Worker situation packets
|
|
225
|
-
│ ├── agent-graph/ # Worker graph/entity helpers
|
|
226
|
-
│ └── search/ # Search quality option normalization
|
|
227
|
-
├── db/migrations/ # SQLite migrations (001-036)
|
|
228
|
-
└── tests/ # Unit and integration tests
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
## Migration Files
|
|
232
|
-
|
|
233
|
-
Database migrations are included in `db/migrations/` (001-036):
|
|
234
|
-
|
|
235
|
-
- 001-013: Core schema (decisions, embeddings, graph edges)
|
|
236
|
-
- 014: Add is_static column
|
|
237
|
-
- 015: FTS5 full-text search index
|
|
238
|
-
- 016: Memory kind/status/summary columns
|
|
239
|
-
- 017-018: Memory scopes and scope bindings
|
|
240
|
-
- 019-020: Memory events and audit findings
|
|
241
|
-
- 021: Memory truth projection
|
|
242
|
-
- 022-023: Channel summaries and state
|
|
243
|
-
- 024-036: event dates, connector memory kinds, canonical entities, case-first memory, wiki/index
|
|
244
|
-
provenance, model/tool traces, twin edges, and agent situation packets
|
|
245
|
-
|
|
246
|
-
## License
|
|
247
|
-
|
|
248
|
-
MIT - see LICENSE file for details
|
|
249
|
-
|
|
250
|
-
## Links
|
|
251
|
-
|
|
252
|
-
- [GitHub Repository](https://github.com/jungjaehoon-lifegamez/MAMA)
|
|
253
|
-
- [Documentation](https://github.com/jungjaehoon-lifegamez/MAMA/tree/main/docs)
|
|
254
|
-
- [Issues](https://github.com/jungjaehoon-lifegamez/MAMA/issues)
|
|
255
|
-
|
|
256
|
-
---
|
|
89
|
+
Build with `pnpm install` and `pnpm build` at the repository root.
|
|
90
|
+
Run `pnpm typecheck` or `pnpm test` inside this package; use a temporary home and explicit
|
|
91
|
+
database path as described in [testing](../../docs/development/testing.md).
|
|
92
|
+
The packed second-consumer check is tracked in [the rebuild plan](../../docs/rebuild/plan.md);
|
|
93
|
+
package tests alone do not establish that goal.
|
|
257
94
|
|
|
258
|
-
|
|
95
|
+
[Documentation](../../docs/index.md) · [MIT](../../LICENSE).
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
-- connector_event_index, learned ranker + search feedback,
|
|
9
9
|
-- case_links + tombstones, case promotion/freshness columns,
|
|
10
10
|
-- case membership explanation columns.
|
|
11
|
-
-- Spec:
|
|
11
|
+
-- Spec: the case-first memory design spec (not retained in the repository)
|
|
12
12
|
|
|
13
13
|
-- ================================================================
|
|
14
14
|
-- Entity substrate — decision_entity_sources
|
|
@@ -259,7 +259,7 @@ ALTER TABLE entity_observations DROP COLUMN source_raw_db_ref;
|
|
|
259
259
|
-- ================================================================
|
|
260
260
|
-- Migration 039: Create case_truth table
|
|
261
261
|
-- Phase 1 of MAMA Case-First Memory System
|
|
262
|
-
-- Spec:
|
|
262
|
+
-- Spec: the case-first memory design spec (not retained in the repository) §5.2
|
|
263
263
|
|
|
264
264
|
CREATE TABLE IF NOT EXISTS case_truth (
|
|
265
265
|
case_id TEXT PRIMARY KEY, -- UUID, also persisted in wiki frontmatter
|
|
@@ -295,7 +295,7 @@ CREATE INDEX IF NOT EXISTS idx_case_truth_last_activity ON case_truth(last_activ
|
|
|
295
295
|
-- ================================================================
|
|
296
296
|
-- Migration 040: Create case_memberships table
|
|
297
297
|
-- Phase 1 of MAMA Case-First Memory System
|
|
298
|
-
-- Spec:
|
|
298
|
+
-- Spec: the case-first memory design spec (not retained in the repository) §5.3
|
|
299
299
|
--
|
|
300
300
|
-- Locked tombstone encoding (§0d Option B): (status='stale', user_locked=1).
|
|
301
301
|
-- CHECK enum stays at 5 values; no 'stale_locked'.
|
|
@@ -326,7 +326,7 @@ CREATE INDEX IF NOT EXISTS idx_case_memberships_case_status
|
|
|
326
326
|
-- ================================================================
|
|
327
327
|
-- Migration 041: Create case_corrections table
|
|
328
328
|
-- Phase 1 of MAMA Case-First Memory System
|
|
329
|
-
-- Spec:
|
|
329
|
+
-- Spec: the case-first memory design spec (not retained in the repository) §5.4
|
|
330
330
|
--
|
|
331
331
|
-- Option C (Phase 0 §0f): target_ref_json TEXT (readable canonical JSON) +
|
|
332
332
|
-- target_ref_hash BLOB (32-byte SHA-256 over canonical JSON).
|
|
@@ -372,7 +372,7 @@ CREATE INDEX IF NOT EXISTS idx_case_corrections_target_kind
|
|
|
372
372
|
-- ================================================================
|
|
373
373
|
-- Migration 042: Create case_proposal_queue table
|
|
374
374
|
-- Phase 1 of MAMA Case-First Memory System
|
|
375
|
-
-- Spec:
|
|
375
|
+
-- Spec: the case-first memory design spec (not retained in the repository) §5.7
|
|
376
376
|
--
|
|
377
377
|
-- Acceptance-layer queue for LLM proposals rejected by the deterministic
|
|
378
378
|
-- acceptance layer (§4.2). Phase 1 SCAFFOLD + quarantine writes only; HITL
|
|
@@ -429,7 +429,7 @@ CREATE UNIQUE INDEX IF NOT EXISTS idx_case_proposal_queue_dedup
|
|
|
429
429
|
-- ================================================================
|
|
430
430
|
-- Migration 043: Wiki page search index for mama_search integration
|
|
431
431
|
-- Phase 1 of MAMA Case-First Memory System
|
|
432
|
-
-- Spec:
|
|
432
|
+
-- Spec: the case-first memory design spec (not retained in the repository) §7.1
|
|
433
433
|
--
|
|
434
434
|
-- Tables: wiki_page_index (metadata), wiki_page_embeddings (vectors),
|
|
435
435
|
-- wiki_pages_fts (FTS5 inverted index). FTS5 is REGULAR (not contentless,
|
|
@@ -515,101 +515,16 @@ ALTER TABLE entity_timeline_events ADD COLUMN role TEXT;
|
|
|
515
515
|
|
|
516
516
|
-- ================================================================
|
|
517
517
|
-- Phase 3 — connector_event_index
|
|
518
|
-
--
|
|
519
|
-
--
|
|
520
|
-
--
|
|
521
|
-
-- Spec: docs/superpowers/specs/2026-04-17-mama-work-case-first-memory-system-design.md Amendment 9
|
|
522
|
-
|
|
523
|
-
CREATE TABLE IF NOT EXISTS connector_event_index (
|
|
524
|
-
event_index_id TEXT PRIMARY KEY,
|
|
525
|
-
source_connector TEXT NOT NULL,
|
|
526
|
-
source_type TEXT NOT NULL,
|
|
527
|
-
source_id TEXT NOT NULL,
|
|
528
|
-
source_locator TEXT,
|
|
529
|
-
channel TEXT,
|
|
530
|
-
author TEXT,
|
|
531
|
-
title TEXT,
|
|
532
|
-
content TEXT NOT NULL,
|
|
533
|
-
event_datetime INTEGER,
|
|
534
|
-
event_date TEXT,
|
|
535
|
-
source_timestamp_ms INTEGER NOT NULL,
|
|
536
|
-
metadata_json TEXT,
|
|
537
|
-
artifact_locator TEXT,
|
|
538
|
-
artifact_title TEXT,
|
|
539
|
-
content_hash BLOB NOT NULL CHECK(length(content_hash) = 32),
|
|
540
|
-
indexed_at TEXT NOT NULL,
|
|
541
|
-
updated_at TEXT NOT NULL,
|
|
542
|
-
expires_at TEXT
|
|
543
|
-
);
|
|
544
|
-
|
|
545
|
-
CREATE UNIQUE INDEX IF NOT EXISTS idx_connector_event_index_source_identity
|
|
546
|
-
ON connector_event_index(source_connector, source_id);
|
|
547
|
-
|
|
548
|
-
CREATE INDEX IF NOT EXISTS idx_connector_event_index_cursor_order
|
|
549
|
-
ON connector_event_index(source_connector, source_timestamp_ms, source_id);
|
|
550
|
-
|
|
551
|
-
CREATE INDEX IF NOT EXISTS idx_connector_event_index_event_datetime
|
|
552
|
-
ON connector_event_index(event_datetime, event_index_id);
|
|
553
|
-
|
|
554
|
-
CREATE INDEX IF NOT EXISTS idx_connector_event_index_event_date
|
|
555
|
-
ON connector_event_index(event_date, event_datetime, event_index_id);
|
|
556
|
-
|
|
557
|
-
CREATE INDEX IF NOT EXISTS idx_connector_event_index_artifact_locator
|
|
558
|
-
ON connector_event_index(artifact_locator)
|
|
559
|
-
WHERE artifact_locator IS NOT NULL;
|
|
560
|
-
|
|
561
|
-
CREATE INDEX IF NOT EXISTS idx_connector_event_index_expires_at
|
|
562
|
-
ON connector_event_index(expires_at)
|
|
563
|
-
WHERE expires_at IS NOT NULL;
|
|
564
|
-
|
|
565
|
-
CREATE VIRTUAL TABLE IF NOT EXISTS connector_event_index_fts USING fts5(
|
|
566
|
-
event_index_id UNINDEXED,
|
|
567
|
-
title,
|
|
568
|
-
content,
|
|
569
|
-
author,
|
|
570
|
-
channel,
|
|
571
|
-
tokenize = 'unicode61 remove_diacritics 2'
|
|
572
|
-
);
|
|
573
|
-
|
|
574
|
-
CREATE TRIGGER IF NOT EXISTS trg_connector_event_index_ai
|
|
575
|
-
AFTER INSERT ON connector_event_index
|
|
576
|
-
BEGIN
|
|
577
|
-
INSERT INTO connector_event_index_fts(event_index_id, title, content, author, channel)
|
|
578
|
-
VALUES (NEW.event_index_id, NEW.title, NEW.content, NEW.author, NEW.channel);
|
|
579
|
-
END;
|
|
580
|
-
|
|
581
|
-
CREATE TRIGGER IF NOT EXISTS trg_connector_event_index_au
|
|
582
|
-
AFTER UPDATE OF title, content, author, channel ON connector_event_index
|
|
583
|
-
BEGIN
|
|
584
|
-
DELETE FROM connector_event_index_fts WHERE event_index_id = OLD.event_index_id;
|
|
585
|
-
INSERT INTO connector_event_index_fts(event_index_id, title, content, author, channel)
|
|
586
|
-
VALUES (NEW.event_index_id, NEW.title, NEW.content, NEW.author, NEW.channel);
|
|
587
|
-
END;
|
|
588
|
-
|
|
589
|
-
CREATE TRIGGER IF NOT EXISTS trg_connector_event_index_ad
|
|
590
|
-
AFTER DELETE ON connector_event_index
|
|
591
|
-
BEGIN
|
|
592
|
-
DELETE FROM connector_event_index_fts WHERE event_index_id = OLD.event_index_id;
|
|
593
|
-
END;
|
|
594
|
-
|
|
595
|
-
CREATE TABLE IF NOT EXISTS connector_event_index_cursors (
|
|
596
|
-
connector_name TEXT PRIMARY KEY,
|
|
597
|
-
last_seen_timestamp_ms INTEGER NOT NULL DEFAULT 0,
|
|
598
|
-
last_seen_source_id TEXT NOT NULL DEFAULT '',
|
|
599
|
-
last_sweep_at TEXT,
|
|
600
|
-
last_success_at TEXT,
|
|
601
|
-
last_error TEXT,
|
|
602
|
-
last_error_at TEXT,
|
|
603
|
-
indexed_count INTEGER NOT NULL DEFAULT 0
|
|
604
|
-
);
|
|
605
|
-
|
|
518
|
+
-- The connector event index was declared here. It moved to the package that has
|
|
519
|
+
-- connectors: three of the four consumers of this core have none, and were
|
|
520
|
+
-- creating eighteen tables they never write. See standalone/db/migrations/001.
|
|
606
521
|
|
|
607
522
|
-- ================================================================
|
|
608
523
|
-- Phase 3 — search_feedback + ranker
|
|
609
524
|
-- ================================================================
|
|
610
525
|
-- Migration 046: Create search_feedback and ranker_model_versions
|
|
611
526
|
-- Phase 3 of MAMA Case-First Memory System
|
|
612
|
-
-- Spec:
|
|
527
|
+
-- Spec: the case-first memory design spec (not retained in the repository) Amendment 10
|
|
613
528
|
|
|
614
529
|
CREATE TABLE IF NOT EXISTS search_feedback (
|
|
615
530
|
feedback_id TEXT PRIMARY KEY,
|
|
@@ -700,7 +615,7 @@ VALUES ('search_feedback_retention_days', '180', strftime('%Y-%m-%dT%H:%M:%fZ','
|
|
|
700
615
|
-- ================================================================
|
|
701
616
|
-- Migration 047: Create case_links and revoked wiki tombstones
|
|
702
617
|
-- Phase 3 of MAMA Case-First Memory System
|
|
703
|
-
-- Spec:
|
|
618
|
+
-- Spec: the case-first memory design spec (not retained in the repository) Amendment 11
|
|
704
619
|
|
|
705
620
|
CREATE TABLE IF NOT EXISTS case_links (
|
|
706
621
|
link_id TEXT PRIMARY KEY,
|
|
@@ -855,7 +770,7 @@ WHERE split_from_case_id IS NOT NULL
|
|
|
855
770
|
-- ================================================================
|
|
856
771
|
-- Migration 048: Add case promotion and freshness columns
|
|
857
772
|
-- Phase 3 of MAMA Case-First Memory System
|
|
858
|
-
-- Spec:
|
|
773
|
+
-- Spec: the case-first memory design spec (not retained in the repository) Amendments 12 + 13
|
|
859
774
|
|
|
860
775
|
ALTER TABLE case_truth ADD COLUMN canonical_decision_id TEXT;
|
|
861
776
|
ALTER TABLE case_truth ADD COLUMN canonical_event_id TEXT;
|
|
@@ -886,7 +801,7 @@ ALTER TABLE case_truth ADD COLUMN freshness_reason_json TEXT;
|
|
|
886
801
|
-- ================================================================
|
|
887
802
|
-- Migration 049: Add case membership explanation columns
|
|
888
803
|
-- Phase 3 of MAMA Case-First Memory System
|
|
889
|
-
-- Spec:
|
|
804
|
+
-- Spec: the case-first memory design spec (not retained in the repository) Amendment 14
|
|
890
805
|
|
|
891
806
|
ALTER TABLE case_memberships ADD COLUMN assignment_strategy TEXT;
|
|
892
807
|
ALTER TABLE case_memberships ADD COLUMN score_breakdown_json TEXT;
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
-- Retired: this migration declared scope columns on the connector event index.
|
|
2
|
+
--
|
|
3
|
+
-- The index moved to the package that has connectors. Three of the four consumers
|
|
4
|
+
-- of this core have none, and were running these statements against tables they
|
|
5
|
+
-- never write. The schema is declared whole in standalone/db/migrations/001.
|
|
6
|
+
--
|
|
7
|
+
-- The file stays, and the number stays claimed: databases in the field recorded
|
|
8
|
+
-- 34 as applied, and a number that comes back meaning something else is worse
|
|
9
|
+
-- than a number that means nothing.
|
|
6
10
|
|
|
7
|
-
CREATE INDEX IF NOT EXISTS idx_connector_event_scope
|
|
8
|
-
ON connector_event_index(tenant_id, project_id, memory_scope_kind, memory_scope_id);
|
|
9
|
-
|
|
10
|
-
CREATE INDEX IF NOT EXISTS idx_connector_event_source_cursor
|
|
11
|
-
ON connector_event_index(source_connector, source_cursor);
|
|
12
|
-
|
|
13
|
-
INSERT OR IGNORE INTO schema_version (version, description)
|
|
14
|
-
VALUES (34, 'Add connector event scope columns');
|
|
@@ -1,96 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
-- Retired: this migration declared the operator ingest sequence on the connector event index.
|
|
2
|
+
--
|
|
3
|
+
-- The index moved to the package that has connectors. Three of the four consumers
|
|
4
|
+
-- of this core have none, and were running these statements against tables they
|
|
5
|
+
-- never write. The schema is declared whole in standalone/db/migrations/001.
|
|
6
|
+
--
|
|
7
|
+
-- The file stays, and the number stays claimed: databases in the field recorded
|
|
8
|
+
-- 39 as applied, and a number that comes back meaning something else is worse
|
|
9
|
+
-- than a number that means nothing.
|
|
5
10
|
|
|
6
|
-
CREATE TABLE IF NOT EXISTS connector_event_index_operator_seq_cursors (
|
|
7
|
-
source_connector TEXT NOT NULL,
|
|
8
|
-
channel TEXT NOT NULL DEFAULT '',
|
|
9
|
-
next_seq INTEGER NOT NULL CHECK (next_seq >= 1),
|
|
10
|
-
PRIMARY KEY (source_connector, channel)
|
|
11
|
-
);
|
|
12
|
-
|
|
13
|
-
WITH ranked_events AS (
|
|
14
|
-
SELECT
|
|
15
|
-
event_index_id,
|
|
16
|
-
ROW_NUMBER() OVER (
|
|
17
|
-
PARTITION BY source_connector, COALESCE(channel, '')
|
|
18
|
-
ORDER BY rowid ASC
|
|
19
|
-
) AS operator_seq
|
|
20
|
-
FROM connector_event_index
|
|
21
|
-
)
|
|
22
|
-
UPDATE connector_event_index
|
|
23
|
-
SET operator_ingest_seq = (
|
|
24
|
-
SELECT operator_seq
|
|
25
|
-
FROM ranked_events
|
|
26
|
-
WHERE ranked_events.event_index_id = connector_event_index.event_index_id
|
|
27
|
-
)
|
|
28
|
-
WHERE operator_ingest_seq IS NULL;
|
|
29
|
-
|
|
30
|
-
INSERT OR IGNORE INTO connector_event_index_operator_seq_cursors (
|
|
31
|
-
source_connector,
|
|
32
|
-
channel,
|
|
33
|
-
next_seq
|
|
34
|
-
)
|
|
35
|
-
SELECT
|
|
36
|
-
source_connector,
|
|
37
|
-
COALESCE(channel, ''),
|
|
38
|
-
COALESCE(MAX(operator_ingest_seq), 0) + 1
|
|
39
|
-
FROM connector_event_index
|
|
40
|
-
GROUP BY source_connector, COALESCE(channel, '');
|
|
41
|
-
|
|
42
|
-
CREATE UNIQUE INDEX IF NOT EXISTS idx_connector_event_index_operator_scope_seq
|
|
43
|
-
ON connector_event_index(source_connector, COALESCE(channel, ''), operator_ingest_seq)
|
|
44
|
-
WHERE operator_ingest_seq IS NOT NULL;
|
|
45
|
-
|
|
46
|
-
CREATE INDEX IF NOT EXISTS idx_connector_event_index_operator_cursor_order
|
|
47
|
-
ON connector_event_index(source_connector, channel, operator_ingest_seq);
|
|
48
|
-
|
|
49
|
-
CREATE TRIGGER IF NOT EXISTS trg_connector_event_index_operator_ingest_seq_ai
|
|
50
|
-
AFTER INSERT ON connector_event_index
|
|
51
|
-
WHEN NEW.operator_ingest_seq IS NULL
|
|
52
|
-
BEGIN
|
|
53
|
-
INSERT OR IGNORE INTO connector_event_index_operator_seq_cursors (
|
|
54
|
-
source_connector,
|
|
55
|
-
channel,
|
|
56
|
-
next_seq
|
|
57
|
-
)
|
|
58
|
-
VALUES (NEW.source_connector, COALESCE(NEW.channel, ''), 1);
|
|
59
|
-
|
|
60
|
-
UPDATE connector_event_index
|
|
61
|
-
SET operator_ingest_seq = (
|
|
62
|
-
SELECT next_seq
|
|
63
|
-
FROM connector_event_index_operator_seq_cursors
|
|
64
|
-
WHERE source_connector = NEW.source_connector
|
|
65
|
-
AND channel = COALESCE(NEW.channel, '')
|
|
66
|
-
)
|
|
67
|
-
WHERE event_index_id = NEW.event_index_id;
|
|
68
|
-
|
|
69
|
-
UPDATE connector_event_index_operator_seq_cursors
|
|
70
|
-
SET next_seq = next_seq + 1
|
|
71
|
-
WHERE source_connector = NEW.source_connector
|
|
72
|
-
AND channel = COALESCE(NEW.channel, '');
|
|
73
|
-
END;
|
|
74
|
-
|
|
75
|
-
CREATE TRIGGER IF NOT EXISTS trg_connector_event_index_operator_ingest_seq_explicit_ai
|
|
76
|
-
AFTER INSERT ON connector_event_index
|
|
77
|
-
WHEN NEW.operator_ingest_seq IS NOT NULL
|
|
78
|
-
BEGIN
|
|
79
|
-
INSERT OR IGNORE INTO connector_event_index_operator_seq_cursors (
|
|
80
|
-
source_connector,
|
|
81
|
-
channel,
|
|
82
|
-
next_seq
|
|
83
|
-
)
|
|
84
|
-
VALUES (NEW.source_connector, COALESCE(NEW.channel, ''), 1);
|
|
85
|
-
|
|
86
|
-
UPDATE connector_event_index_operator_seq_cursors
|
|
87
|
-
SET next_seq = CASE
|
|
88
|
-
WHEN next_seq <= NEW.operator_ingest_seq THEN NEW.operator_ingest_seq + 1
|
|
89
|
-
ELSE next_seq
|
|
90
|
-
END
|
|
91
|
-
WHERE source_connector = NEW.source_connector
|
|
92
|
-
AND channel = COALESCE(NEW.channel, '');
|
|
93
|
-
END;
|
|
94
|
-
|
|
95
|
-
INSERT OR IGNORE INTO schema_version (version, description)
|
|
96
|
-
VALUES (39, 'Add connector event operator ingest sequence');
|