@moltzap/client 2026.922.2 → 2026.930.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.
Files changed (101) hide show
  1. package/README.md +23 -7
  2. package/dist/client-runtime.d.ts.map +1 -1
  3. package/dist/client-runtime.js +28 -11
  4. package/dist/client-runtime.js.map +1 -1
  5. package/dist/contract.d.ts +440 -57
  6. package/dist/contract.d.ts.map +1 -1
  7. package/dist/contract.js +256 -18
  8. package/dist/contract.js.map +1 -1
  9. package/dist/contract.types-check.d.ts +109 -13
  10. package/dist/contract.types-check.d.ts.map +1 -1
  11. package/dist/contract.types-check.js +11 -3
  12. package/dist/contract.types-check.js.map +1 -1
  13. package/dist/daemon/runtime/activation.d.ts +1 -1
  14. package/dist/daemon/runtime/activation.d.ts.map +1 -1
  15. package/dist/daemon/runtime/controller.d.ts +1 -1
  16. package/dist/daemon/runtime/controller.d.ts.map +1 -1
  17. package/dist/daemon/runtime/controller.js +44 -10
  18. package/dist/daemon/runtime/controller.js.map +1 -1
  19. package/dist/daemon/runtime/history-export.d.ts +11 -1
  20. package/dist/daemon/runtime/history-export.d.ts.map +1 -1
  21. package/dist/daemon/runtime/history-export.js +4 -0
  22. package/dist/daemon/runtime/history-export.js.map +1 -1
  23. package/dist/daemon/runtime/index.d.ts.map +1 -1
  24. package/dist/daemon/runtime/index.js +1 -2
  25. package/dist/daemon/runtime/index.js.map +1 -1
  26. package/dist/daemon/runtime/pending-delivery.d.ts +49 -0
  27. package/dist/daemon/runtime/pending-delivery.d.ts.map +1 -0
  28. package/dist/daemon/runtime/pending-delivery.js +115 -0
  29. package/dist/daemon/runtime/pending-delivery.js.map +1 -0
  30. package/dist/daemon/runtime/protocol.d.ts +20 -5
  31. package/dist/daemon/runtime/protocol.d.ts.map +1 -1
  32. package/dist/daemon/runtime/protocol.js +58 -24
  33. package/dist/daemon/runtime/protocol.js.map +1 -1
  34. package/dist/endpoint/addressing/index.d.ts +22 -1
  35. package/dist/endpoint/addressing/index.d.ts.map +1 -1
  36. package/dist/endpoint/addressing/index.js +50 -26
  37. package/dist/endpoint/addressing/index.js.map +1 -1
  38. package/dist/endpoint/collective/operation.d.ts +123 -0
  39. package/dist/endpoint/collective/operation.d.ts.map +1 -0
  40. package/dist/endpoint/collective/operation.js +784 -0
  41. package/dist/endpoint/collective/operation.js.map +1 -0
  42. package/dist/endpoint/collective/shared-answers.d.ts +78 -0
  43. package/dist/endpoint/collective/shared-answers.d.ts.map +1 -0
  44. package/dist/endpoint/collective/shared-answers.js +62 -0
  45. package/dist/endpoint/collective/shared-answers.js.map +1 -0
  46. package/dist/endpoint/collective/validation.d.ts +49 -0
  47. package/dist/endpoint/collective/validation.d.ts.map +1 -0
  48. package/dist/endpoint/collective/validation.js +99 -0
  49. package/dist/endpoint/collective/validation.js.map +1 -0
  50. package/dist/endpoint/collective/wire.d.ts +176 -0
  51. package/dist/endpoint/collective/wire.d.ts.map +1 -0
  52. package/dist/endpoint/collective/wire.js +181 -0
  53. package/dist/endpoint/collective/wire.js.map +1 -0
  54. package/dist/endpoint/engine-durability.d.ts +3 -17
  55. package/dist/endpoint/engine-durability.d.ts.map +1 -1
  56. package/dist/endpoint/engine-durability.js +3 -14
  57. package/dist/endpoint/engine-durability.js.map +1 -1
  58. package/dist/endpoint/engine-send.d.ts +14 -16
  59. package/dist/endpoint/engine-send.d.ts.map +1 -1
  60. package/dist/endpoint/engine-send.js +16 -20
  61. package/dist/endpoint/engine-send.js.map +1 -1
  62. package/dist/endpoint/engine-types.d.ts +32 -15
  63. package/dist/endpoint/engine-types.d.ts.map +1 -1
  64. package/dist/endpoint/engine-types.js +1 -5
  65. package/dist/endpoint/engine-types.js.map +1 -1
  66. package/dist/endpoint/engine.d.ts +1 -1
  67. package/dist/endpoint/engine.d.ts.map +1 -1
  68. package/dist/endpoint/engine.js +17 -14
  69. package/dist/endpoint/engine.js.map +1 -1
  70. package/dist/endpoint/protocol/index.d.ts.map +1 -1
  71. package/dist/endpoint/protocol/index.js +5 -8
  72. package/dist/endpoint/protocol/index.js.map +1 -1
  73. package/dist/endpoint/recovery/index.js +2 -2
  74. package/dist/endpoint/recovery/index.js.map +1 -1
  75. package/dist/endpoint/recovery/reanchor/empty.js +1 -1
  76. package/dist/endpoint/recovery/reanchor/empty.js.map +1 -1
  77. package/dist/endpoint/recovery/store.d.ts +1 -1
  78. package/dist/endpoint/recovery/store.d.ts.map +1 -1
  79. package/dist/endpoint/recovery/store.js +9 -5
  80. package/dist/endpoint/recovery/store.js.map +1 -1
  81. package/dist/endpoint/representation-schemas.d.ts +2 -0
  82. package/dist/endpoint/representation-schemas.d.ts.map +1 -1
  83. package/dist/endpoint/representation-schemas.js +2 -2
  84. package/dist/endpoint/representation-schemas.js.map +1 -1
  85. package/dist/endpoint/representation.d.ts +1 -1
  86. package/dist/endpoint/representation.d.ts.map +1 -1
  87. package/dist/endpoint/representation.js +1 -1
  88. package/dist/endpoint/representation.js.map +1 -1
  89. package/dist/harness-mcp-contract.d.ts +189 -57
  90. package/dist/harness-mcp-contract.d.ts.map +1 -1
  91. package/dist/harness-mcp-contract.js +61 -9
  92. package/dist/harness-mcp-contract.js.map +1 -1
  93. package/dist/harness-mcp-wire.d.ts +3 -3
  94. package/dist/harness-mcp-wire.d.ts.map +1 -1
  95. package/dist/harness-mcp-wire.js +38 -28
  96. package/dist/harness-mcp-wire.js.map +1 -1
  97. package/dist/index.d.ts +1 -1
  98. package/dist/index.d.ts.map +1 -1
  99. package/dist/index.js +2 -1
  100. package/dist/index.js.map +1 -1
  101. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"activation.d.ts","sourceRoot":"","sources":["../../../src/daemon/runtime/activation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activation.d.ts","sourceRoot":"","sources":["../../../src/daemon/runtime/activation.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,10 @@
2
2
  import { Registry } from "@moltzap/identity/registry";
3
3
  import { Router } from "@moltzap/router";
4
4
  import { Effect, Scope } from "effect";
5
- import type { HistoryExportPort } from "../../endpoint/engine-types.js";
6
5
  import type { EndpointStore } from "../../endpoint/store.js";
7
6
  import type { HarnessMcpOperations } from "../../harness-mcp-wire.js";
8
7
  import type { DaemonBootstrap } from "../configuration.js";
8
+ import type { HistoryExportPort } from "./history-export.js";
9
9
  import { type DaemonActivationPreparation, type DaemonRuntimeDependencies, DaemonRuntimeError } from "./activation.js";
10
10
  import { type RuntimeSubscriptionHandler } from "./protocol.js";
11
11
  interface DaemonControllerInput {
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/daemon/runtime/controller.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAG7E,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAY,MAAM,EAAS,KAAK,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAiB,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,kBAAkB,EAGnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAML,KAAK,0BAA0B,EAChC,MAAM,eAAe,CAAC;AAEvB,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC,YAAY,CAAC,CAAC;IAC/D,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;CAClD;AAED,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,cAAc,EAAE,CACvB,OAAO,EAAE,0BAA0B,KAChC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACpE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAChE,QAAQ,CAAC,iBAAiB,EAAE,CAC1B,KAAK,EAAE,2BAA2B,CAAC,cAAc,CAAC,KAC/C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;CAC9C;AAmJD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,UACxB,qBAAqB,KAC3B,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAmCvB,CAAC"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/daemon/runtime/controller.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAG7E,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAsB,MAAM,EAAS,KAAK,EAAE,MAAM,QAAQ,CAAC;AAClE,OAAO,KAAK,EAAiB,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAO7D,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,kBAAkB,EAGnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAML,KAAK,0BAA0B,EAChC,MAAM,eAAe,CAAC;AAEvB,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC,YAAY,CAAC,CAAC;IAC/D,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;CAClD;AAED,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,cAAc,EAAE,CACvB,OAAO,EAAE,0BAA0B,KAChC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACpE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAChE,QAAQ,CAAC,iBAAiB,EAAE,CAC1B,KAAK,EAAE,2BAA2B,CAAC,cAAc,CAAC,KAC/C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;CAC9C;AAsMD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,UACxB,qBAAqB,KAC3B,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAsCvB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  /** @file MCP operations and subscription state for one daemon controller. */
2
2
  import { Registry } from "@moltzap/identity/registry";
3
3
  import { Router } from "@moltzap/router";
4
- import { Deferred, Effect, Queue, Scope } from "effect";
5
- import { DeliveryAcknowledgeError, SendError } from "../../contract.js";
4
+ import { DateTime, Deferred, Effect, Queue, Scope } from "effect";
5
+ import { DeliveryAcknowledgeError, SendError, } from "../../contract.js";
6
6
  import { DaemonRuntimeError, finishRegistration, } from "./activation.js";
7
7
  import { failFromBackgroundCause, initializeProtocol, publishPendingMessages, } from "./protocol.js";
8
8
  const runtimeFailure = (phase) => new DaemonRuntimeError({ phase });
@@ -13,24 +13,55 @@ const makeRegisterOperation = (environment, management, initialize) => (request)
13
13
  fatal: environment.fatal,
14
14
  initialize,
15
15
  }, result))));
16
- const makeSendOperation = (state) => (request) => Effect.suspend(() => {
17
- const protocol = state.activeProtocol;
16
+ /**
17
+ * Record one completed `send` in the history export with its input and how it
18
+ * ended: the posts certified by its return, or the error it returned.
19
+ */
20
+ const exportSend = (environment, input, outcome) => DateTime.now.pipe(Effect.flatMap((at) => environment.historyExport.record({
21
+ kind: "outbound",
22
+ input,
23
+ outcome,
24
+ at,
25
+ })));
26
+ const makeSendOperation = (environment) => (request) => Effect.suspend(() => {
27
+ const protocol = environment.state.activeProtocol;
18
28
  if (protocol === undefined) {
19
29
  return Effect.fail(new SendError({ reason: "not-registered" }));
20
30
  }
21
- return protocol.engine.send(request);
31
+ return protocol.collectives
32
+ .send(request.input, request.failureDelivery ?? "result")
33
+ .pipe(Effect.tapBoth({
34
+ onFailure: (error) => exportSend(environment, request.input, {
35
+ kind: "failed",
36
+ error: error.message,
37
+ }),
38
+ onSuccess: (outcome) => exportSend(environment, request.input, {
39
+ kind: "sent",
40
+ ...outcome,
41
+ }),
42
+ }), Effect.map((outcome) => outcome.operationId === undefined
43
+ ? {}
44
+ : { operationId: outcome.operationId }));
22
45
  });
23
- const forgetPublishedDelivery = (state, deliveryToken) => Effect.sync(() => {
46
+ const forgetDelivery = (state, deliveryToken) => Effect.sync(() => {
24
47
  state.publishedDeliveries.delete(deliveryToken);
48
+ state.exportedDeliveries.delete(deliveryToken);
49
+ state.classifiedItems.delete(deliveryToken);
25
50
  });
51
+ /**
52
+ * Acknowledge one published delivery: an item the collective layer emitted is
53
+ * dropped from daemon memory, and a durable delivery is acknowledged in the
54
+ * store.
55
+ */
26
56
  const makeAcknowledgeDeliveryOperation = (state, deliveryGate) => (deliveryToken) => deliveryGate.withPermits(1)(Effect.suspend(() => {
27
57
  const protocol = state.activeProtocol;
28
58
  if (protocol === undefined) {
29
59
  return Effect.fail(new DeliveryAcknowledgeError({ reason: "unknown-delivery" }));
30
60
  }
31
- return protocol.engine
32
- .acknowledgeMessage(deliveryToken)
33
- .pipe(Effect.tap(() => forgetPublishedDelivery(state, deliveryToken)));
61
+ const acknowledge = state.localItems.delete(deliveryToken)
62
+ ? Effect.void
63
+ : protocol.engine.acknowledgeMessage(deliveryToken);
64
+ return acknowledge.pipe(Effect.tap(() => forgetDelivery(state, deliveryToken)));
34
65
  }));
35
66
  const runSubscriptionChanges = (environment, changes, reconciler) => Queue.take(changes).pipe(Effect.flatMap((active) => Effect.sync(() => {
36
67
  environment.state.subscriptionActive = active;
@@ -50,7 +81,7 @@ const assembleDaemonController = (input) => {
50
81
  operations: Object.freeze({
51
82
  ...input.management,
52
83
  register,
53
- send: makeSendOperation(input.environment.state),
84
+ send: makeSendOperation(input.environment),
54
85
  acknowledgeDelivery: makeAcknowledgeDeliveryOperation(input.environment.state, input.deliveryGate),
55
86
  }),
56
87
  subscriptionChanged: (active) => {
@@ -80,6 +111,9 @@ export const makeDaemonController = (input) => Effect.gen(function* () {
80
111
  const state = {
81
112
  subscriptionActive: false,
82
113
  publishedDeliveries: new Set(),
114
+ localItems: new Map(),
115
+ exportedDeliveries: new Set(),
116
+ classifiedItems: new Map(),
83
117
  };
84
118
  const environment = {
85
119
  store: input.store,
@@ -1 +1 @@
1
- {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/daemon/runtime/controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/daemon/runtime/controller.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,17 @@
1
1
  /** @file Append-only export of what one daemon delivered and sent. */
2
2
  import { FileSystem } from "@effect/platform";
3
3
  import { Effect } from "effect";
4
- import type { HistoryExportPort } from "../../endpoint/engine-types.js";
4
+ import { HistoryExportRecord } from "../../contract.js";
5
+ /**
6
+ * Sink for the daemon's optional history export. Recording never fails and
7
+ * never blocks the daemon on its own outcome: an export that stops is the
8
+ * sink's business, recorded in the file.
9
+ */
10
+ export interface HistoryExportPort {
11
+ readonly record: (record: HistoryExportRecord) => Effect.Effect<void>;
12
+ }
13
+ /** The export in place when the operator configured none: records vanish. */
14
+ export declare const noHistoryExport: HistoryExportPort;
5
15
  /**
6
16
  * Open the daemon's history export against one file.
7
17
  *
@@ -1 +1 @@
1
- {"version":3,"file":"history-export.d.ts","sourceRoot":"","sources":["../../../src/daemon/runtime/history-export.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAY,MAAM,EAAU,MAAM,QAAQ,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAOxE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,GACX,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,CAiChE"}
1
+ {"version":3,"file":"history-export.d.ts","sourceRoot":"","sources":["../../../src/daemon/runtime/history-export.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAY,MAAM,EAAU,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAMxD;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CACvE;AAED,6EAA6E;AAC7E,eAAO,MAAM,eAAe,EAAE,iBAE5B,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,GACX,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,CAiChE"}
@@ -4,6 +4,10 @@ import { DateTime, Effect, Schema } from "effect";
4
4
  import { HistoryExportRecord } from "../../contract.js";
5
5
  // safer-arch-ignore no-trivial-sink-file: The export writer is one replaceable process edge, kept beside the runtime that installs it rather than inside it so lifecycle composition stays free of file handling.
6
6
  const encodeLine = Schema.encode(Schema.parseJson(HistoryExportRecord));
7
+ /** The export in place when the operator configured none: records vanish. */
8
+ export const noHistoryExport = Object.freeze({
9
+ record: () => Effect.void,
10
+ });
7
11
  /**
8
12
  * Open the daemon's history export against one file.
9
13
  *
@@ -1 +1 @@
1
- {"version":3,"file":"history-export.js","sourceRoot":"","sources":["../../../src/daemon/runtime/history-export.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,kNAAkN;AAElN,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAExE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAY;IAEZ,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;QAChD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,MAAM,MAAM,GAAG,CAAC,MAA2B,EAAE,EAAE,CAC7C,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CACrB,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACtB,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAC7D,CACF,CAAC;QACJ,MAAM,OAAO,GAAG,CAAC,KAAmC,EAAE,EAAE,CACtD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,OAAO,GAAG,KAAK,CAAC;YAChB,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACrE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC/B,KAAK,CAAC,CAAC,MAAM,CAAC;gBACZ,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,KAAK,CAAC,OAAO;gBACrB,EAAE;aACH,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACL,OAAO;YACL,MAAM,EAAE,CAAC,MAA2B,EAAE,EAAE,CACtC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CACjB,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAClB,OAAO;gBACL,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC/C,CAAC,CAAC,MAAM,CAAC,IAAI,CAChB,CACF;SACJ,CAAC;IACJ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"history-export.js","sourceRoot":"","sources":["../../../src/daemon/runtime/history-export.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,kNAAkN;AAElN,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAWxE,6EAA6E;AAC7E,MAAM,CAAC,MAAM,eAAe,GAAsB,MAAM,CAAC,MAAM,CAAC;IAC9D,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI;CAC1B,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAY;IAEZ,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;QAChD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,MAAM,MAAM,GAAG,CAAC,MAA2B,EAAE,EAAE,CAC7C,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CACrB,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACtB,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAC7D,CACF,CAAC;QACJ,MAAM,OAAO,GAAG,CAAC,KAAmC,EAAE,EAAE,CACtD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,OAAO,GAAG,KAAK,CAAC;YAChB,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACrE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC/B,KAAK,CAAC,CAAC,MAAM,CAAC;gBACZ,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,KAAK,CAAC,OAAO;gBACrB,EAAE;aACH,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACL,OAAO;YACL,MAAM,EAAE,CAAC,MAA2B,EAAE,EAAE,CACtC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CACjB,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAClB,OAAO;gBACL,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC/C,CAAC,CAAC,MAAM,CAAC,IAAI,CAChB,CACF;SACJ,CAAC;IACJ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/daemon/runtime/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAG9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAO3D,OAAO,EACL,KAAK,yBAAyB,EAC9B,kBAAkB,EAEnB,MAAM,iBAAiB,CAAC;AAuBzB,qDAAqD;AACrD,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAC9B,iEAAiE;AACjE,YAAY,EAAE,yBAAyB,EAAE,CAAC;AAE1C;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,UACpB;IACL,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;CACrC,iBACa,yBAAyB,KACtC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CA+B7B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/daemon/runtime/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAG9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAM3D,OAAO,EACL,KAAK,yBAAyB,EAC9B,kBAAkB,EAEnB,MAAM,iBAAiB,CAAC;AAuBzB,qDAAqD;AACrD,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAC9B,iEAAiE;AACjE,YAAY,EAAE,yBAAyB,EAAE,CAAC;AAE1C;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,UACpB;IACL,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;CACrC,iBACa,yBAAyB,KACtC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CA+B7B,CAAC"}
@@ -2,14 +2,13 @@
2
2
  import { NodeFileSystem } from "@effect/platform-node";
3
3
  import { Effect } from "effect";
4
4
  import packageJson from "../../../package.json" with { type: "json" };
5
- import { noHistoryExport } from "../../endpoint/engine-types.js";
6
5
  import { makeEndpointEngine } from "../../endpoint/engine.js";
7
6
  import { makeRouterWorker } from "../../endpoint/router-worker/index.js";
8
7
  import { acquireHarnessMcpHttpServer } from "../../harness-mcp-http.js";
9
8
  import { makeHarnessMcpHttpHandler } from "../../harness-mcp-wire.js";
10
9
  import { DaemonRuntimeError, prepareDaemonActivation, } from "./activation.js";
11
10
  import { makeDaemonController } from "./controller.js";
12
- import { makeHistoryExport } from "./history-export.js";
11
+ import { makeHistoryExport, noHistoryExport } from "./history-export.js";
13
12
  const DAEMON_IMPLEMENTATION = {
14
13
  name: "moltzapd",
15
14
  version: packageJson.version,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/daemon/runtime/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/daemon/runtime/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @file One pass over pending deliveries: the collective layer classifies
3
+ * each durable delivery, consumed ones are acknowledged, and the remaining
4
+ * items and the layer's own are published in order while a subscriber takes
5
+ * them.
6
+ */
7
+ import { Effect } from "effect";
8
+ import type { InboundItem } from "../../contract.js";
9
+ import type { CollectiveOperations } from "../../endpoint/collective/operation.js";
10
+ import type { EndpointEngine, EnginePendingMessage } from "../../endpoint/engine.js";
11
+ import type { HarnessMessageReadyEvent } from "../../harness-mcp-contract.js";
12
+ import type { HistoryExportPort } from "./history-export.js";
13
+ import { DeliveryToken } from "../../endpoint/store.js";
14
+ /** The subscriber's publish edge; false means it refused the event. */
15
+ interface Subscriber {
16
+ readonly publish: (event: HarnessMessageReadyEvent) => boolean;
17
+ }
18
+ /** What one pass over pending deliveries reads and changes. */
19
+ export interface PendingOffer {
20
+ readonly engine: Pick<EndpointEngine, "acknowledgeMessage">;
21
+ readonly classify: CollectiveOperations["classify"];
22
+ /** The attached subscriber, absent while none is attached. */
23
+ readonly handler?: Subscriber;
24
+ readonly historyExport: HistoryExportPort;
25
+ readonly publishedDeliveries: Set<string>;
26
+ readonly exportedDeliveries: Set<string>;
27
+ /**
28
+ * The item each unacknowledged durable delivery classified into, so a
29
+ * delivery is decoded and classified once rather than on every pass.
30
+ */
31
+ readonly classifiedItems: Map<string, InboundItem>;
32
+ }
33
+ /**
34
+ * Offer pending deliveries in order, then the collective layer's own items.
35
+ * Every durable delivery is classified: the layer consumes protocol posts,
36
+ * which are acknowledged here whether or not a subscriber is attached, so
37
+ * answers are recorded and deadlines complete with nobody listening. Items
38
+ * are published while a subscriber accepts them; after the first refusal,
39
+ * or with no subscriber, they stay pending for a later pass.
40
+ * @param offer The engine, classifier, subscriber and delivery bookkeeping.
41
+ * @param messages Pending durable deliveries in order.
42
+ * @param localItems Items the collective layer emitted, in order.
43
+ * @returns Completion after every delivery is consumed or offered.
44
+ */
45
+ export declare const offerPendingMessages: (offer: PendingOffer, messages: readonly EnginePendingMessage[], localItems: ReadonlyMap<DeliveryToken, InboundItem>) => Effect.Effect<void>;
46
+ /** A delivery token for an item the collective layer emitted, held in memory. */
47
+ export declare const mintLocalDeliveryToken: Effect.Effect<string & import("effect/Brand").Brand<"DeliveryToken">, never, never>;
48
+ export {};
49
+ //# sourceMappingURL=pending-delivery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-delivery.d.ts","sourceRoot":"","sources":["../../../src/daemon/runtime/pending-delivery.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAY,MAAM,EAAkB,MAAM,QAAQ,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,uEAAuE;AACvE,UAAU,UAAU;IAClB,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,OAAO,CAAC;CAChE;AAED,+DAA+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;IAC5D,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACpD,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACpD;AAmHD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,UACxB,YAAY,YACT,SAAS,oBAAoB,EAAE,cAC7B,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,KAClD,MAAM,CAAC,MAAM,CAAC,IAAI,CAkB6B,CAAC;AAEnD,iFAAiF;AACjF,eAAO,MAAM,sBAAsB,qFAIlC,CAAC"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * @file One pass over pending deliveries: the collective layer classifies
3
+ * each durable delivery, consumed ones are acknowledged, and the remaining
4
+ * items and the layer's own are published in order while a subscriber takes
5
+ * them.
6
+ */
7
+ import { DateTime, Effect, Option, Schema } from "effect";
8
+ import { randomBytes } from "node:crypto";
9
+ import { DeliveryToken } from "../../endpoint/store.js";
10
+ /**
11
+ * Acknowledge a delivery the collective layer consumed. A failed
12
+ * acknowledgment is logged and the delivery stays pending: the next pass
13
+ * classifies it again, which records nothing twice because the requester
14
+ * and every all_gather member keep only a member's first answer and a member
15
+ * applies a close once, and acknowledges it again. It does
16
+ * not end the daemon, whose store failures surface through the pending read
17
+ * that starts every pass.
18
+ */
19
+ const acknowledgeConsumed = (offer, pending) => offer.engine
20
+ .acknowledgeMessage(pending.deliveryToken)
21
+ .pipe(Effect.catchAll((error) => Effect.logWarning(`consumed delivery stays pending: ${error.message}`)));
22
+ /**
23
+ * Record an item in the history export the first time it is offered, then
24
+ * offer it to the subscriber, yielding whether the subscriber took it. The
25
+ * line lands before the item is visible, for the reason `makeHistoryExport`
26
+ * gives.
27
+ *
28
+ * The append runs inside the pass, under the delivery gate. It cannot
29
+ * deadlock: the export's own gate is taken only inside `record`, which takes
30
+ * no other lock, and a send records its outbound line without the delivery
31
+ * gate. Its cost is one append per item on first offer, only when an operator
32
+ * configured the export, and an acknowledgment waits for the pass that holds
33
+ * the gate.
34
+ */
35
+ const publishItem = (offer, handler, event) => Effect.gen(function* () {
36
+ if (!offer.exportedDeliveries.has(event.deliveryToken)) {
37
+ const at = yield* DateTime.now;
38
+ yield* offer.historyExport.record({
39
+ kind: "inbound",
40
+ item: event.item,
41
+ at,
42
+ });
43
+ offer.exportedDeliveries.add(event.deliveryToken);
44
+ }
45
+ if (!handler.publish(event)) {
46
+ return false;
47
+ }
48
+ offer.publishedDeliveries.add(event.deliveryToken);
49
+ return true;
50
+ });
51
+ const classifyOnce = (offer, pending) => offer.classify(pending).pipe(Effect.flatMap(Option.match({
52
+ onNone: () => acknowledgeConsumed(offer, pending).pipe(Effect.as(Option.none())),
53
+ onSome: (item) => Effect.sync(() => {
54
+ offer.classifiedItems.set(pending.deliveryToken, item);
55
+ return Option.some({
56
+ deliveryToken: pending.deliveryToken,
57
+ item,
58
+ });
59
+ }),
60
+ })));
61
+ /**
62
+ * Classify one durable delivery not yet published: acknowledge it when the
63
+ * collective layer consumes it, otherwise return its event, reusing the item
64
+ * an earlier pass classified.
65
+ */
66
+ const classifyPending = (offer, pending) => {
67
+ const { deliveryToken } = pending;
68
+ if (offer.publishedDeliveries.has(deliveryToken)) {
69
+ return Effect.succeed(Option.none());
70
+ }
71
+ const classified = offer.classifiedItems.get(deliveryToken);
72
+ return classified === undefined
73
+ ? classifyOnce(offer, pending)
74
+ : Effect.succeed(Option.some({ deliveryToken, item: classified }));
75
+ };
76
+ /** Publish events in order, skipping published ones, until one is refused. */
77
+ const publishInOrder = (offer, handler, events) => Effect.gen(function* () {
78
+ for (const event of events) {
79
+ if (offer.publishedDeliveries.has(event.deliveryToken)) {
80
+ continue;
81
+ }
82
+ if (!(yield* publishItem(offer, handler, event))) {
83
+ return;
84
+ }
85
+ }
86
+ });
87
+ /**
88
+ * Offer pending deliveries in order, then the collective layer's own items.
89
+ * Every durable delivery is classified: the layer consumes protocol posts,
90
+ * which are acknowledged here whether or not a subscriber is attached, so
91
+ * answers are recorded and deadlines complete with nobody listening. Items
92
+ * are published while a subscriber accepts them; after the first refusal,
93
+ * or with no subscriber, they stay pending for a later pass.
94
+ * @param offer The engine, classifier, subscriber and delivery bookkeeping.
95
+ * @param messages Pending durable deliveries in order.
96
+ * @param localItems Items the collective layer emitted, in order.
97
+ * @returns Completion after every delivery is consumed or offered.
98
+ */
99
+ export const offerPendingMessages = (offer, messages, localItems) => Effect.gen(function* () {
100
+ const classified = yield* Effect.forEach(messages, (pending) => classifyPending(offer, pending), { concurrency: 1 });
101
+ const handler = offer.handler;
102
+ if (handler === undefined) {
103
+ return;
104
+ }
105
+ yield* publishInOrder(offer, handler, [
106
+ ...classified.flatMap((event) => Option.toArray(event)),
107
+ ...[...localItems].map(([deliveryToken, item]) => ({
108
+ deliveryToken,
109
+ item,
110
+ })),
111
+ ]);
112
+ }).pipe(Effect.withSpan("offerPendingMessages"));
113
+ /** A delivery token for an item the collective layer emitted, held in memory. */
114
+ export const mintLocalDeliveryToken = Effect.sync(() => Schema.decodeUnknownSync(DeliveryToken)(`dlv_${randomBytes(32).toString("base64url")}`));
115
+ //# sourceMappingURL=pending-delivery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-delivery.js","sourceRoot":"","sources":["../../../src/daemon/runtime/pending-delivery.ts"],"names":[],"mappings":"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"}
@@ -3,19 +3,22 @@ import type { VerifiedAgentCard } from "@moltzap/identity";
3
3
  import { Registry } from "@moltzap/identity/registry";
4
4
  import { Router } from "@moltzap/router";
5
5
  import { Cause, type Context, Deferred, Effect, Scope } from "effect";
6
- import type { HistoryExportPort } from "../../endpoint/engine-types.js";
7
6
  import type { EndpointEngine } from "../../endpoint/engine.js";
8
- import type { EndpointStore } from "../../endpoint/store.js";
7
+ import type { DeliveryToken, EndpointStore } from "../../endpoint/store.js";
9
8
  import type { DaemonBootstrap } from "../configuration.js";
9
+ import type { HistoryExportPort } from "./history-export.js";
10
+ import { type InboundItem } from "../../contract.js";
11
+ import { type CollectiveOperations } from "../../endpoint/collective/operation.js";
10
12
  import { type RouterWorker } from "../../endpoint/router-worker/index.js";
11
13
  import { DaemonActivationError, type DaemonRuntimeDependencies, DaemonRuntimeError } from "./activation.js";
12
14
  /** Subscription publisher installed after the MCP handler is acquired. */
13
15
  export type RuntimeSubscriptionHandler = Effect.Effect.Success<ReturnType<DaemonRuntimeDependencies["makeHandler"]>>;
14
- /** Engine and Router worker active for the daemon's immutable identity. */
16
+ /** Engine, Router worker and collective layer active for the daemon's identity. */
15
17
  interface ActiveProtocol {
16
18
  readonly agentCard: VerifiedAgentCard;
17
19
  readonly worker: RouterWorker;
18
20
  readonly engine: EndpointEngine;
21
+ readonly collectives: CollectiveOperations;
19
22
  }
20
23
  /** Mutable controller state shared with supervised protocol resources. */
21
24
  export interface ProtocolState {
@@ -23,6 +26,16 @@ export interface ProtocolState {
23
26
  subscriptionActive: boolean;
24
27
  handler?: RuntimeSubscriptionHandler;
25
28
  readonly publishedDeliveries: Set<string>;
29
+ /**
30
+ * Items the collective layer emitted, in emission order, each under a
31
+ * daemon-minted delivery token until the subscriber acknowledges it. They
32
+ * live in memory like the gather state they come from.
33
+ */
34
+ readonly localItems: Map<DeliveryToken, InboundItem>;
35
+ /** Deliveries whose item the history export already recorded. */
36
+ readonly exportedDeliveries: Set<string>;
37
+ /** The item each unacknowledged durable delivery classified into. */
38
+ readonly classifiedItems: Map<string, InboundItem>;
26
39
  }
27
40
  /** Dependencies and owned resources available to one protocol lifecycle. */
28
41
  export interface ProtocolEnvironment {
@@ -37,10 +50,12 @@ export interface ProtocolEnvironment {
37
50
  readonly state: ProtocolState;
38
51
  }
39
52
  /**
40
- * Publish newly durable messages while one active native subscriber exists.
53
+ * Classify newly durable deliveries and publish what a subscriber can take.
54
+ * The pass runs with or without a subscriber, so the collective layer
55
+ * consumes protocol posts even while no host is attached.
41
56
  * @param environment Protocol resources and controller-owned delivery state.
42
57
  * @param deliveryGate Serializes pending reads with subscription changes.
43
- * @returns Completion after every currently publishable delivery is offered.
58
+ * @returns Completion after every current delivery is consumed or offered.
44
59
  */
45
60
  export declare const publishPendingMessages: (environment: ProtocolEnvironment, deliveryGate: Effect.Semaphore) => Effect.Effect<void>;
46
61
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/daemon/runtime/protocol.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,KAAK,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EACL,KAAK,YAAY,EAKlB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,qBAAqB,EACrB,KAAK,yBAAyB,EAC9B,kBAAkB,EAEnB,MAAM,iBAAiB,CAAC;AAEzB,0EAA0E;AAC1E,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAC5D,UAAU,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC,CACrD,CAAC;AAEF,2EAA2E;AAC3E,UAAU,cAAc;IACtB,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;CACjC;AAED,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED,4EAA4E;AAC5E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,QAAQ,CAAC,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,MAAM,CAAC,CAAC;IACpD,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC7D,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;CAC/B;AA4BD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,gBACpB,mBAAmB,gBAClB,MAAM,CAAC,SAAS,KAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,CAmClB,CAAC;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAChC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC,SAC5C,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KACpB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAOxB,CAAC;AAmHF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,gBAChB,mBAAmB,kBAChB,MAAM,CAAC,SAAS,cACpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aACpB,iBAAiB,KAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAuCI,CAAC"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/daemon/runtime/protocol.ts"],"names":[],"mappings":"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"}