@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
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.upsertDecisionEdge = upsertDecisionEdge;
|
|
4
|
+
exports.proposeDecisionEdge = proposeDecisionEdge;
|
|
5
|
+
exports.approveDecisionEdge = approveDecisionEdge;
|
|
6
|
+
exports.rejectDecisionEdge = rejectDecisionEdge;
|
|
7
|
+
exports.deprecateAutoDecisionEdges = deprecateAutoDecisionEdges;
|
|
8
|
+
exports.deleteDecisionEdgesWithAudit = deleteDecisionEdgesWithAudit;
|
|
9
|
+
/**
|
|
10
|
+
* Insert-or-replace one decision edge row with explicit governance columns.
|
|
11
|
+
* Used by the public createEdge API (createdBy 'llm', approvedByUser 1) and by
|
|
12
|
+
* the backup-restore path (columns replayed from the backup file).
|
|
13
|
+
*/
|
|
14
|
+
function upsertDecisionEdge(adapter, edge) {
|
|
15
|
+
adapter
|
|
16
|
+
.prepare(`INSERT OR REPLACE INTO decision_edges
|
|
17
|
+
(from_id, to_id, relationship, reason, created_by, approved_by_user, decision_id, evidence, created_at)
|
|
18
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
19
|
+
.run(edge.fromId, edge.toId, edge.relationship, edge.reason, edge.createdBy, edge.approvedByUser, edge.decisionId, edge.evidence, edge.createdAt);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Record a proposed edge pending user approval, plus its 'proposed' audit row.
|
|
23
|
+
*/
|
|
24
|
+
function proposeDecisionEdge(adapter, edge) {
|
|
25
|
+
adapter.transaction(() => {
|
|
26
|
+
adapter
|
|
27
|
+
.prepare(`INSERT INTO decision_edges
|
|
28
|
+
(from_id, to_id, relationship, reason, created_by, approved_by_user, decision_id, evidence, created_at)
|
|
29
|
+
VALUES (?, ?, ?, ?, 'llm', 0, ?, ?, ?)`)
|
|
30
|
+
.run(edge.fromId, edge.toId, edge.relationship, edge.reason, edge.decisionId, edge.evidence, Date.now());
|
|
31
|
+
adapter
|
|
32
|
+
.prepare(`INSERT INTO link_audit_log (from_id, to_id, relationship, action, actor, reason, created_at)
|
|
33
|
+
VALUES (?, ?, ?, 'proposed', 'llm', ?, ?)`)
|
|
34
|
+
.run(edge.fromId, edge.toId, edge.relationship, edge.reason, Date.now());
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Approve a pending edge, plus its 'approved' audit row.
|
|
39
|
+
*/
|
|
40
|
+
function approveDecisionEdge(adapter, key) {
|
|
41
|
+
adapter.transaction(() => {
|
|
42
|
+
adapter
|
|
43
|
+
.prepare(`UPDATE decision_edges
|
|
44
|
+
SET approved_by_user = 1, approved_at = ?
|
|
45
|
+
WHERE from_id = ? AND to_id = ? AND relationship = ?`)
|
|
46
|
+
.run(Date.now(), key.fromId, key.toId, key.relationship);
|
|
47
|
+
adapter
|
|
48
|
+
.prepare(`INSERT INTO link_audit_log (from_id, to_id, relationship, action, actor, created_at)
|
|
49
|
+
VALUES (?, ?, ?, 'approved', 'user', ?)`)
|
|
50
|
+
.run(key.fromId, key.toId, key.relationship, Date.now());
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Reject a proposed edge: the 'rejected' audit row is written before the edge
|
|
55
|
+
* is deleted, in the same transaction.
|
|
56
|
+
*/
|
|
57
|
+
function rejectDecisionEdge(adapter, key, reason) {
|
|
58
|
+
adapter.transaction(() => {
|
|
59
|
+
adapter
|
|
60
|
+
.prepare(`INSERT INTO link_audit_log (from_id, to_id, relationship, action, actor, reason, created_at)
|
|
61
|
+
VALUES (?, ?, ?, 'rejected', 'user', ?, ?)`)
|
|
62
|
+
.run(key.fromId, key.toId, key.relationship, reason, Date.now());
|
|
63
|
+
adapter
|
|
64
|
+
.prepare(`DELETE FROM decision_edges
|
|
65
|
+
WHERE from_id = ? AND to_id = ? AND relationship = ?`)
|
|
66
|
+
.run(key.fromId, key.toId, key.relationship);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Remove the auto-generated edge population (created_by='user' with no
|
|
71
|
+
* proposal context) and record one 'deprecated' audit row per removed link.
|
|
72
|
+
* `links` is the already-scanned target set; it only feeds the audit rows.
|
|
73
|
+
*/
|
|
74
|
+
function deprecateAutoDecisionEdges(adapter, links, reason) {
|
|
75
|
+
adapter.transaction(() => {
|
|
76
|
+
adapter
|
|
77
|
+
.prepare(`DELETE FROM decision_edges WHERE created_by = 'user' AND decision_id IS NULL`)
|
|
78
|
+
.run();
|
|
79
|
+
const auditStmt = adapter.prepare(`INSERT INTO link_audit_log (from_id, to_id, relationship, action, actor, reason, created_at)
|
|
80
|
+
VALUES (?, ?, ?, 'deprecated', 'system', ?, ?)`);
|
|
81
|
+
const timestamp = Date.now();
|
|
82
|
+
for (const link of links) {
|
|
83
|
+
auditStmt.run(link.fromId, link.toId, link.relationship, reason, timestamp);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Delete one batch of edges, writing a 'deprecated' audit row for each. A
|
|
89
|
+
* per-link failure is collected and the batch continues, matching the cleanup
|
|
90
|
+
* tool's accounting; a failure of the batch itself throws to the caller.
|
|
91
|
+
*/
|
|
92
|
+
function deleteDecisionEdgesWithAudit(adapter, links, reason) {
|
|
93
|
+
const deleteStmt = adapter.prepare(`DELETE FROM decision_edges
|
|
94
|
+
WHERE from_id = ? AND to_id = ? AND relationship = ?`);
|
|
95
|
+
const auditStmt = adapter.prepare(`INSERT INTO link_audit_log (from_id, to_id, relationship, action, actor, reason, created_at)
|
|
96
|
+
VALUES (?, ?, ?, 'deprecated', 'system', ?, ?)`);
|
|
97
|
+
let deleted = 0;
|
|
98
|
+
const failures = [];
|
|
99
|
+
const processLinks = () => {
|
|
100
|
+
for (const link of links) {
|
|
101
|
+
try {
|
|
102
|
+
deleteStmt.run(link.fromId, link.toId, link.relationship);
|
|
103
|
+
auditStmt.run(link.fromId, link.toId, link.relationship, reason, Date.now());
|
|
104
|
+
deleted++;
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
failures.push({
|
|
108
|
+
link: `${link.fromId}->${link.toId}`,
|
|
109
|
+
error: error instanceof Error ? error.message : String(error),
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
// Use transaction if available, otherwise run directly
|
|
115
|
+
if (adapter.transaction) {
|
|
116
|
+
adapter.transaction(processLinks);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
processLinks();
|
|
120
|
+
}
|
|
121
|
+
return { deleted, failures };
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=decision-edges.js.map
|
|
@@ -1,41 +1,59 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Knowledge graph queries: how a topic got to where it is, and what else it
|
|
3
|
+
* argues with. Two surfaces live here: the decision-chain graph (supersedes /
|
|
4
|
+
* decision_edges) and the twin-edge graph (neighborhood, paths, timeline over
|
|
5
|
+
* `twin_edges`).
|
|
6
|
+
*
|
|
7
|
+
* Every function takes the adapter it reads through, so a caller cannot walk a
|
|
8
|
+
* graph in a database it did not open.
|
|
9
|
+
*
|
|
10
|
+
* @module knowledge/graph-query
|
|
11
|
+
*/
|
|
12
|
+
import type { DatabaseAdapter, DecisionRecord, SemanticEdges } from '../db-manager.js';
|
|
13
|
+
import { type JudgmentAccess } from './judgments.js';
|
|
14
|
+
import type { WorkGraphPage, WorkGraphQuery } from '../memory/judgment-types.js';
|
|
15
|
+
import type { TwinEdgeRecord, TwinEdgeType, TwinProjectRef, TwinRef, TwinScopeRef } from '../knowledge/twin-edge-types.js';
|
|
16
|
+
/**
|
|
17
|
+
* Walk a topic's supersedes chain with a recursive CTE.
|
|
18
|
+
*
|
|
19
|
+
* @param adapter - Database to read through
|
|
20
|
+
* @param topic - Decision topic to query
|
|
21
|
+
* @param anchorId - Start from this decision instead of the topic's current head
|
|
22
|
+
* @returns Decisions ordered by recency, each carrying its approved edges
|
|
23
|
+
*/
|
|
24
|
+
export declare function queryDecisionGraph(adapter: DatabaseAdapter, topic: string, anchorId?: string): Promise<DecisionRecord[]>;
|
|
25
|
+
/**
|
|
26
|
+
* Outgoing and incoming semantic edges for a set of decisions.
|
|
27
|
+
*
|
|
28
|
+
* @param adapter - Database to read through
|
|
29
|
+
* @param decisionIds - Decision IDs to query edges for
|
|
30
|
+
* @returns Edges categorized by relationship and direction
|
|
31
|
+
*/
|
|
32
|
+
export declare function querySemanticEdges(adapter: DatabaseAdapter, decisionIds: string[]): Promise<SemanticEdges>;
|
|
33
|
+
export declare class AgentGraphValidationError extends Error {
|
|
34
|
+
constructor(message: string);
|
|
35
|
+
}
|
|
4
36
|
export type AgentGraphAdapter = Pick<DatabaseAdapter, 'prepare' | 'transaction'>;
|
|
5
37
|
export interface AgentGraphEdgeFilters {
|
|
6
38
|
edge_types?: TwinEdgeType[];
|
|
7
39
|
}
|
|
8
|
-
export interface ResolveEntityInput {
|
|
9
|
-
label: string;
|
|
10
|
-
scopes?: TwinScopeRef[];
|
|
11
|
-
connectors?: string[];
|
|
12
|
-
project_refs?: TwinProjectRef[];
|
|
13
|
-
/**
|
|
14
|
-
* Which channels of each connector may be read. Carried on every graph input for the
|
|
15
|
-
* same reason it is carried on the reader's boundary: a raw ref reached through an edge
|
|
16
|
-
* must satisfy the same rule as a row the reader would have returned.
|
|
17
|
-
*/
|
|
18
|
-
channels?: Record<string, readonly string[]>;
|
|
19
|
-
tenant_id?: string | null;
|
|
20
|
-
context_refs?: TwinRef[];
|
|
21
|
-
limit?: number;
|
|
22
|
-
as_of_ms?: number | null;
|
|
23
|
-
}
|
|
24
|
-
export interface ResolvedEntityCandidate {
|
|
25
|
-
entity: EntityNode;
|
|
26
|
-
matched_label: string;
|
|
27
|
-
match_source: 'preferred_label' | 'alias' | 'observation';
|
|
28
|
-
score: number;
|
|
29
|
-
}
|
|
30
|
-
export interface ResolveEntityResult {
|
|
31
|
-
entity: EntityNode | null;
|
|
32
|
-
candidates: ResolvedEntityCandidate[];
|
|
33
|
-
}
|
|
34
40
|
export interface GraphNeighborhoodInput {
|
|
35
41
|
ref: TwinRef;
|
|
36
42
|
depth?: number;
|
|
43
|
+
/**
|
|
44
|
+
* Which edge orientation, seen from the expanding frontier, belongs to the walk.
|
|
45
|
+
* 'out' follows edges whose subject is on the frontier, 'in' whose object is, and
|
|
46
|
+
* 'both' either — the absence of a direction means the undirected neighborhood.
|
|
47
|
+
*/
|
|
48
|
+
direction?: 'in' | 'out' | 'both';
|
|
49
|
+
/**
|
|
50
|
+
* 'all' reads replaced records as history; absent or 'current' reads only
|
|
51
|
+
* what currently stands. Authority checks apply in both modes.
|
|
52
|
+
*/
|
|
53
|
+
history?: 'current' | 'all';
|
|
37
54
|
scopes?: TwinScopeRef[];
|
|
38
55
|
connectors?: string[];
|
|
56
|
+
connector_wide_read?: string[];
|
|
39
57
|
project_refs?: TwinProjectRef[];
|
|
40
58
|
/**
|
|
41
59
|
* Which channels of each connector may be read. Carried on every graph input for the
|
|
@@ -44,6 +62,8 @@ export interface GraphNeighborhoodInput {
|
|
|
44
62
|
*/
|
|
45
63
|
channels?: Record<string, readonly string[]>;
|
|
46
64
|
tenant_id?: string | null;
|
|
65
|
+
principal_id?: string;
|
|
66
|
+
agent_id?: string;
|
|
47
67
|
edge_filters?: AgentGraphEdgeFilters;
|
|
48
68
|
as_of_ms?: number | null;
|
|
49
69
|
limit?: number;
|
|
@@ -51,13 +71,23 @@ export interface GraphNeighborhoodInput {
|
|
|
51
71
|
export interface AgentGraphResult {
|
|
52
72
|
nodes: TwinRef[];
|
|
53
73
|
edges: TwinEdgeRecord[];
|
|
74
|
+
current_projection: AgentGraphCurrentProjection[];
|
|
75
|
+
}
|
|
76
|
+
export interface AgentGraphCurrentProjection {
|
|
77
|
+
edge_id: string;
|
|
78
|
+
endpoint: 'from' | 'to';
|
|
79
|
+
original_ref: TwinRef;
|
|
80
|
+
current_ref: TwinRef | null;
|
|
54
81
|
}
|
|
55
82
|
export interface GraphPathsInput {
|
|
56
83
|
from_ref: TwinRef;
|
|
57
84
|
to_ref: TwinRef;
|
|
58
85
|
max_depth?: number;
|
|
86
|
+
/** 'all' reads replaced records as history; 'current' is the default. */
|
|
87
|
+
history?: 'current' | 'all';
|
|
59
88
|
scopes?: TwinScopeRef[];
|
|
60
89
|
connectors?: string[];
|
|
90
|
+
connector_wide_read?: string[];
|
|
61
91
|
project_refs?: TwinProjectRef[];
|
|
62
92
|
/**
|
|
63
93
|
* Which channels of each connector may be read. Carried on every graph input for the
|
|
@@ -66,6 +96,8 @@ export interface GraphPathsInput {
|
|
|
66
96
|
*/
|
|
67
97
|
channels?: Record<string, readonly string[]>;
|
|
68
98
|
tenant_id?: string | null;
|
|
99
|
+
principal_id?: string;
|
|
100
|
+
agent_id?: string;
|
|
69
101
|
edge_filters?: AgentGraphEdgeFilters;
|
|
70
102
|
as_of_ms?: number | null;
|
|
71
103
|
limit?: number;
|
|
@@ -76,11 +108,16 @@ export interface AgentGraphPath {
|
|
|
76
108
|
}
|
|
77
109
|
export interface GraphPathsResult {
|
|
78
110
|
paths: AgentGraphPath[];
|
|
111
|
+
limit_reached: boolean;
|
|
112
|
+
current_projection: AgentGraphCurrentProjection[];
|
|
79
113
|
}
|
|
80
114
|
export interface GraphTimelineInput {
|
|
81
115
|
ref: TwinRef;
|
|
116
|
+
/** 'all' reads replaced records as history; 'current' is the default. */
|
|
117
|
+
history?: 'current' | 'all';
|
|
82
118
|
scopes?: TwinScopeRef[];
|
|
83
119
|
connectors?: string[];
|
|
120
|
+
connector_wide_read?: string[];
|
|
84
121
|
project_refs?: TwinProjectRef[];
|
|
85
122
|
/**
|
|
86
123
|
* Which channels of each connector may be read. Carried on every graph input for the
|
|
@@ -89,9 +126,13 @@ export interface GraphTimelineInput {
|
|
|
89
126
|
*/
|
|
90
127
|
channels?: Record<string, readonly string[]>;
|
|
91
128
|
tenant_id?: string | null;
|
|
129
|
+
principal_id?: string;
|
|
130
|
+
agent_id?: string;
|
|
92
131
|
edge_filters?: AgentGraphEdgeFilters;
|
|
93
132
|
from_ms?: number;
|
|
94
133
|
to_ms?: number;
|
|
134
|
+
recorded_from_ms?: number;
|
|
135
|
+
recorded_to_ms?: number;
|
|
95
136
|
as_of_ms?: number | null;
|
|
96
137
|
limit?: number;
|
|
97
138
|
}
|
|
@@ -124,14 +165,6 @@ export interface AgentGraphTimelineCaseEvent {
|
|
|
124
165
|
last_activity_at: string | null;
|
|
125
166
|
};
|
|
126
167
|
}
|
|
127
|
-
export interface AgentGraphTimelineEntityEvent {
|
|
128
|
-
kind: 'entity';
|
|
129
|
-
at_ms: number;
|
|
130
|
-
ref: Extract<TwinRef, {
|
|
131
|
-
kind: 'entity';
|
|
132
|
-
}>;
|
|
133
|
-
entity: EntityNode;
|
|
134
|
-
}
|
|
135
168
|
export interface AgentGraphTimelineRawEvent {
|
|
136
169
|
kind: 'raw';
|
|
137
170
|
at_ms: number;
|
|
@@ -147,6 +180,7 @@ export interface AgentGraphTimelineRawEvent {
|
|
|
147
180
|
title: string | null;
|
|
148
181
|
event_datetime: number | null;
|
|
149
182
|
source_timestamp_ms: number;
|
|
183
|
+
observation_ref: string | null;
|
|
150
184
|
};
|
|
151
185
|
}
|
|
152
186
|
export interface AgentGraphTimelineEdgeEvent {
|
|
@@ -154,39 +188,15 @@ export interface AgentGraphTimelineEdgeEvent {
|
|
|
154
188
|
at_ms: number;
|
|
155
189
|
edge: TwinEdgeRecord;
|
|
156
190
|
}
|
|
157
|
-
export type AgentGraphTimelineEvent = AgentGraphTimelineMemoryEvent | AgentGraphTimelineCaseEvent |
|
|
191
|
+
export type AgentGraphTimelineEvent = AgentGraphTimelineMemoryEvent | AgentGraphTimelineCaseEvent | AgentGraphTimelineRawEvent | AgentGraphTimelineEdgeEvent;
|
|
158
192
|
export interface GraphTimelineResult {
|
|
159
193
|
ref: TwinRef;
|
|
160
194
|
events: AgentGraphTimelineEvent[];
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
source_type: string;
|
|
170
|
-
source_ref?: string | null;
|
|
171
|
-
source_refs?: TwinRef[];
|
|
172
|
-
agent_id: string;
|
|
173
|
-
model_run_id: string;
|
|
174
|
-
envelope_hash: string;
|
|
175
|
-
request_idempotency_key?: string;
|
|
176
|
-
edge_idempotency_key?: string;
|
|
177
|
-
scopes?: TwinScopeRef[];
|
|
178
|
-
connectors?: string[];
|
|
179
|
-
project_refs?: TwinProjectRef[];
|
|
180
|
-
/**
|
|
181
|
-
* Which channels of each connector may be read. Carried on every graph input for the
|
|
182
|
-
* same reason it is carried on the reader's boundary: a raw ref reached through an edge
|
|
183
|
-
* must satisfy the same rule as a row the reader would have returned.
|
|
184
|
-
*/
|
|
185
|
-
channels?: Record<string, readonly string[]>;
|
|
186
|
-
tenant_id?: string | null;
|
|
187
|
-
}
|
|
188
|
-
export interface AttachEntityAliasWithEdgeResult {
|
|
189
|
-
alias: EntityAlias;
|
|
190
|
-
edge: TwinEdgeRecord;
|
|
191
|
-
}
|
|
192
|
-
//# sourceMappingURL=types.d.ts.map
|
|
195
|
+
has_more: boolean;
|
|
196
|
+
current_projection: AgentGraphCurrentProjection[];
|
|
197
|
+
}
|
|
198
|
+
export declare function getGraphNeighborhood(adapter: AgentGraphAdapter, input: GraphNeighborhoodInput): AgentGraphResult;
|
|
199
|
+
export declare function getGraphPaths(adapter: AgentGraphAdapter, input: GraphPathsInput): GraphPathsResult;
|
|
200
|
+
export declare function getGraphTimeline(adapter: AgentGraphAdapter, input: GraphTimelineInput): GraphTimelineResult;
|
|
201
|
+
export declare function queryGraph(adapter: AgentGraphAdapter, query: WorkGraphQuery, access: JudgmentAccess): WorkGraphPage;
|
|
202
|
+
//# sourceMappingURL=graph-query.d.ts.map
|