@jungjaehoon/mama-core 2.4.1 → 4.0.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/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 +1968 -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/commitments.d.ts +188 -0
- package/dist/knowledge/commitments.js +370 -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/judgments.d.ts +118 -0
- package/dist/knowledge/judgments.js +808 -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 +155 -0
- package/dist/runtime/drivers/claude-cli-wrapper.js +392 -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 +424 -0
- package/dist/runtime/drivers/persistent-cli-process.js +1543 -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,223 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The mailbox — durable intake, schedule, delivery and ack. Nothing else.
|
|
3
|
+
*
|
|
4
|
+
* v7 §4.3 gives this store four jobs and names what it must not do: it manages
|
|
5
|
+
* durable delivery/ack and mechanical concurrency ONLY; it does not classify an
|
|
6
|
+
* original as work, and it does not pre-emptively create a task row. §4.4 says
|
|
7
|
+
* the same from the other side — no `acted/no_update/owner_question`
|
|
8
|
+
* classification may be invented here.
|
|
9
|
+
*
|
|
10
|
+
* So the fields are only the ones that hold for any consumer: identity,
|
|
11
|
+
* principal, source, content notice, time, where a reply goes, what may merge
|
|
12
|
+
* with what, and delivery state. A stimulus's MEANING belongs to the agent
|
|
13
|
+
* that reads it, and a consumer's vocabulary for that meaning belongs to the
|
|
14
|
+
* consumer — a product's trigger-loop intake may add its own display lines and
|
|
15
|
+
* procedure activations (design W6 correction). A core that exported those words would make "receive
|
|
16
|
+
* something durably" unusable without importing them.
|
|
17
|
+
*
|
|
18
|
+
* What this is NOT, and where that lives instead:
|
|
19
|
+
* - It does not run a turn, retry a model, or know a turn's outcome. That is
|
|
20
|
+
* the native session (`native-session.ts`), which already
|
|
21
|
+
* provides native protocol and turn observations. `ack` says the loop took the
|
|
22
|
+
* stimulus; it never says the work is done.
|
|
23
|
+
* - It does not deliver anything outward. An effect receipt is the effect
|
|
24
|
+
* ledger's (`operations.ts`).
|
|
25
|
+
*/
|
|
26
|
+
import type { DatabaseAdapter } from '../db-manager.js';
|
|
27
|
+
import type { JsonValue } from '../memory/judgment-types.js';
|
|
28
|
+
import { NativeInputJournal, type NativeDeliveryRecord } from './native-input-journal.js';
|
|
29
|
+
/**
|
|
30
|
+
* What kind of stimulus a row holds — v7 R2 inputs and a native harness event.
|
|
31
|
+
*
|
|
32
|
+
* Stated by the producer, never derived from the payload: a host that read a
|
|
33
|
+
* message body to decide what kind of work it is would be doing the
|
|
34
|
+
* classification this contract removes.
|
|
35
|
+
*/
|
|
36
|
+
export type StimulusKind = 'owner_message' | 'source_delta' | 'scheduled' | 'native_event';
|
|
37
|
+
export declare function isStimulusKind(value: unknown): value is StimulusKind;
|
|
38
|
+
/** One preserved observation this stimulus points at. Identity, not content. */
|
|
39
|
+
export interface StimulusRef {
|
|
40
|
+
/** The producer's id for the observation; the dedupe key. */
|
|
41
|
+
refId: string;
|
|
42
|
+
/** Where the preserved original is readable, when the producer preserved one. */
|
|
43
|
+
observationRef: string | null;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* One stimulus as its producer states it.
|
|
47
|
+
*
|
|
48
|
+
* `preview` is the bounded change notice of §4.4 — never the whole context and
|
|
49
|
+
* never a task list. The agent reads the rest through the source actions when
|
|
50
|
+
* it decides it needs to.
|
|
51
|
+
*/
|
|
52
|
+
export interface Stimulus {
|
|
53
|
+
/** The producer's identity for this stimulus. Dedupe key when it states no refs. */
|
|
54
|
+
id: string;
|
|
55
|
+
kind: StimulusKind;
|
|
56
|
+
/** Whose stimulus this is. The runtime refuses a principal it does not serve. */
|
|
57
|
+
principalId: string;
|
|
58
|
+
/** Where it came from — durable channel identity, canonical at the producer. */
|
|
59
|
+
channelKey: string;
|
|
60
|
+
/** Preserved observation identity, when the producer has any. */
|
|
61
|
+
refs?: readonly StimulusRef[];
|
|
62
|
+
/** Bounded change notice. Display, not context. */
|
|
63
|
+
preview?: readonly string[];
|
|
64
|
+
/** Consumer-owned JSON input, retained verbatim in meaning, never interpreted here. */
|
|
65
|
+
payload?: JsonValue;
|
|
66
|
+
/** Where an answer goes back, when the producer can name it. */
|
|
67
|
+
replyTo?: string | null;
|
|
68
|
+
/**
|
|
69
|
+
* What may merge with what.
|
|
70
|
+
*
|
|
71
|
+
* Pending stimuli sharing a key, payload, kind and destination can become one
|
|
72
|
+
* row — the mechanical concurrency §4.3 assigns here. It is the producer's key, and
|
|
73
|
+
* merging is append-only: refs and preview join, nothing is dropped and
|
|
74
|
+
* nothing is interpreted. A producer that states none gets no merging.
|
|
75
|
+
*/
|
|
76
|
+
coalesceKey?: string | null;
|
|
77
|
+
/** When it happened, as against when it was accepted. */
|
|
78
|
+
occurredAt: number;
|
|
79
|
+
}
|
|
80
|
+
/** A stimulus as it was stored, with its delivery state. */
|
|
81
|
+
export interface MailboxRow {
|
|
82
|
+
id: number;
|
|
83
|
+
stimulusId: string;
|
|
84
|
+
kind: StimulusKind | null;
|
|
85
|
+
principalId: string;
|
|
86
|
+
channelKey: string;
|
|
87
|
+
refs: StimulusRef[];
|
|
88
|
+
preview: string[];
|
|
89
|
+
/** Absent on inputs accepted before payload preservation was supported. */
|
|
90
|
+
payload?: JsonValue;
|
|
91
|
+
replyTo: string | null;
|
|
92
|
+
coalesceKey: string | null;
|
|
93
|
+
occurredAt: number;
|
|
94
|
+
createdAt: number;
|
|
95
|
+
status: 'pending' | 'claimed' | 'acked' | 'dead';
|
|
96
|
+
attempts: number;
|
|
97
|
+
nativeDelivery?: NativeDeliveryRecord;
|
|
98
|
+
}
|
|
99
|
+
/** Bounded provenance for inputs sharing one native turn; no payload is projected. */
|
|
100
|
+
export interface NativeTurnInputRef {
|
|
101
|
+
id: number;
|
|
102
|
+
stimulusId: string;
|
|
103
|
+
kind: StimulusKind | null;
|
|
104
|
+
channelKey: string;
|
|
105
|
+
occurredAt: number;
|
|
106
|
+
status: MailboxRow['status'];
|
|
107
|
+
}
|
|
108
|
+
/** A row the mailbox refused to parse. Parked dead, never silently dropped. */
|
|
109
|
+
export declare class MailboxCorruptionError extends Error {
|
|
110
|
+
readonly rowId: number;
|
|
111
|
+
readonly code = "MAILBOX_CORRUPT";
|
|
112
|
+
constructor(rowId: number, cause: unknown);
|
|
113
|
+
}
|
|
114
|
+
export declare class Mailbox {
|
|
115
|
+
private readonly db;
|
|
116
|
+
private readonly clock;
|
|
117
|
+
readonly nativeInputs: NativeInputJournal;
|
|
118
|
+
private readonly stmtInsertSeen;
|
|
119
|
+
private readonly stmtInsert;
|
|
120
|
+
private readonly stmtInsertRef;
|
|
121
|
+
private readonly stmtRefsFor;
|
|
122
|
+
private readonly stmtClaimSelect;
|
|
123
|
+
private readonly stmtClaimSelectKind;
|
|
124
|
+
private readonly stmtClaimUpdate;
|
|
125
|
+
private readonly stmtAck;
|
|
126
|
+
private readonly stmtRetry;
|
|
127
|
+
private readonly stmtRetryStatus;
|
|
128
|
+
private readonly stmtPruneAcked;
|
|
129
|
+
private readonly stmtPrunePending;
|
|
130
|
+
private readonly stmtPruneSeen;
|
|
131
|
+
private readonly stmtReplay;
|
|
132
|
+
private readonly stmtDepth;
|
|
133
|
+
private readonly stmtPendingCoalesced;
|
|
134
|
+
private readonly stmtAppendPreview;
|
|
135
|
+
private readonly stmtIdentityPayload;
|
|
136
|
+
constructor(db: DatabaseAdapter, clock?: () => number);
|
|
137
|
+
private now;
|
|
138
|
+
/**
|
|
139
|
+
* Make a stimulus durable. Returns the row id, or `null` when every ref it
|
|
140
|
+
* carries was already accepted.
|
|
141
|
+
*
|
|
142
|
+
* Dedupe is PER REF, not per stimulus shape. A boundary key fails on partial
|
|
143
|
+
* redelivery: [r1] enqueues, the producer's cursor commit fails, the next
|
|
144
|
+
* tick delivers [r1,r2] under a different boundary — and r1 runs twice.
|
|
145
|
+
* A stimulus with no unseen ref is dropped; one with any unseen ref is
|
|
146
|
+
* stored with exactly its unseen refs.
|
|
147
|
+
*/
|
|
148
|
+
enqueue(stimulus: Stimulus): number | null;
|
|
149
|
+
/**
|
|
150
|
+
* Take the next pending row under a lease. A corrupt row parks dead and the
|
|
151
|
+
* scan continues.
|
|
152
|
+
*
|
|
153
|
+
* `prefer` orders kinds ahead of the rest, oldest-first within each. It is
|
|
154
|
+
* ordering, not meaning: §4.3 forbids a host FIFO in which the person's
|
|
155
|
+
* current request waits behind a mass replay, and the kind a producer stated
|
|
156
|
+
* is the only thing that can say which is which without reading content.
|
|
157
|
+
*/
|
|
158
|
+
claimNext(options?: {
|
|
159
|
+
prefer?: readonly StimulusKind[];
|
|
160
|
+
}): MailboxRow | null;
|
|
161
|
+
private hydrate;
|
|
162
|
+
/** Renew only a live runtime-owned claim; native ACKs remain independent. */
|
|
163
|
+
renewClaim(id: number, now?: number): void;
|
|
164
|
+
/** Inspect one accepted input without claiming it or changing its lease. */
|
|
165
|
+
readInput(stimulusId: string, principalId: string): MailboxRow | null;
|
|
166
|
+
/** Reopen claims that never crossed the native dispatch boundary. */
|
|
167
|
+
recoverOrphanedClaims(now?: number): number;
|
|
168
|
+
/** Identity lookup for transport recovery; never returns another principal's payload. */
|
|
169
|
+
principalsForInput(stimulusId: string): string[];
|
|
170
|
+
/** The exact native turn's accepted input cohort, scoped to its principal. */
|
|
171
|
+
readNativeTurnInputs(stimulusId: string, principalId: string, options?: {
|
|
172
|
+
afterId?: number;
|
|
173
|
+
limit?: number;
|
|
174
|
+
}): {
|
|
175
|
+
items: NativeTurnInputRef[];
|
|
176
|
+
nextCursor: number | null;
|
|
177
|
+
};
|
|
178
|
+
/** Inputs needing native/result reconciliation, never a second model execution. */
|
|
179
|
+
unsettledNative(limit: number, afterId?: number): MailboxRow[];
|
|
180
|
+
/**
|
|
181
|
+
* The loop took this stimulus.
|
|
182
|
+
*
|
|
183
|
+
* That is all this says. It is not a claim that anything was read, decided
|
|
184
|
+
* or done — §4.4 is explicit that a delivery ACK is not a work receipt, and
|
|
185
|
+
* there is deliberately no field here to record one in.
|
|
186
|
+
*/
|
|
187
|
+
ack(id: number): void;
|
|
188
|
+
/**
|
|
189
|
+
* Return a claim to pending, or park it dead after MAX_ATTEMPTS. Returns the
|
|
190
|
+
* resulting status so the caller can be LOUD about a dead row — a permanent
|
|
191
|
+
* loss must never be silent.
|
|
192
|
+
*/
|
|
193
|
+
retry(id: number, error: string): 'pending' | 'dead' | 'noop';
|
|
194
|
+
/** Park a row dead without spending an attempt. */
|
|
195
|
+
quarantine(id: number, reason: string): void;
|
|
196
|
+
replayStale(olderThanMs: number, now?: number): number;
|
|
197
|
+
replayStaleDetailed(olderThanMs: number, now?: number): {
|
|
198
|
+
replayed: number;
|
|
199
|
+
newlyDead: MailboxRow[];
|
|
200
|
+
};
|
|
201
|
+
depth(): {
|
|
202
|
+
pending: number;
|
|
203
|
+
claimed: number;
|
|
204
|
+
dead: number;
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* Schedule a wake. The fourth job: when to come back, and for what channel.
|
|
208
|
+
*
|
|
209
|
+
* `mailbox_schedules` is this daemon's own alarm clock, not anyone's
|
|
210
|
+
* calendar — a consumer's calendar is source data and is read through the
|
|
211
|
+
* source actions (design §6.3).
|
|
212
|
+
*/
|
|
213
|
+
scheduleWake(channelKey: string, dueAt: number): number;
|
|
214
|
+
/** Wakes that are due and have not fired. The caller marks them fired when it acts. */
|
|
215
|
+
dueWakes(now?: number, limit?: number): Array<{
|
|
216
|
+
id: number;
|
|
217
|
+
channelKey: string;
|
|
218
|
+
dueAt: number;
|
|
219
|
+
}>;
|
|
220
|
+
/** Mark a wake fired. Idempotent: a second call changes nothing. */
|
|
221
|
+
markWakeFired(id: number): boolean;
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=mailbox.d.ts.map
|