@animalabs/agent-framework 0.21.1 → 0.22.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 +43 -0
- package/dist/src/agent.d.ts +17 -4
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +102 -42
- package/dist/src/agent.js.map +1 -1
- package/dist/src/code-execution/py-runner.d.ts +22 -1
- package/dist/src/code-execution/py-runner.d.ts.map +1 -1
- package/dist/src/code-execution/py-runner.js +64 -9
- package/dist/src/code-execution/py-runner.js.map +1 -1
- package/dist/src/code-execution/runtime-py.d.ts +4 -0
- package/dist/src/code-execution/runtime-py.d.ts.map +1 -1
- package/dist/src/code-execution/runtime-py.js +215 -38
- package/dist/src/code-execution/runtime-py.js.map +1 -1
- package/dist/src/framework.d.ts +250 -39
- package/dist/src/framework.d.ts.map +1 -1
- package/dist/src/framework.js +1602 -371
- package/dist/src/framework.js.map +1 -1
- package/dist/src/gate/event-gate.d.ts +21 -0
- package/dist/src/gate/event-gate.d.ts.map +1 -1
- package/dist/src/gate/event-gate.js +40 -7
- package/dist/src/gate/event-gate.js.map +1 -1
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
- package/dist/src/mcpl/channel-registry.js +26 -3
- package/dist/src/mcpl/channel-registry.js.map +1 -1
- package/dist/src/mcpl/conversation-router.d.ts +28 -1
- package/dist/src/mcpl/conversation-router.d.ts.map +1 -1
- package/dist/src/mcpl/conversation-router.js +17 -0
- package/dist/src/mcpl/conversation-router.js.map +1 -1
- package/dist/src/mcpl/feature-set-manager.d.ts +11 -0
- package/dist/src/mcpl/feature-set-manager.d.ts.map +1 -1
- package/dist/src/mcpl/feature-set-manager.js +31 -7
- package/dist/src/mcpl/feature-set-manager.js.map +1 -1
- package/dist/src/mcpl/index.d.ts +2 -0
- package/dist/src/mcpl/index.d.ts.map +1 -1
- package/dist/src/mcpl/index.js +1 -0
- package/dist/src/mcpl/index.js.map +1 -1
- package/dist/src/mcpl/prose-stream-router.d.ts +27 -6
- package/dist/src/mcpl/prose-stream-router.d.ts.map +1 -1
- package/dist/src/mcpl/prose-stream-router.js +85 -22
- package/dist/src/mcpl/prose-stream-router.js.map +1 -1
- package/dist/src/mcpl/push-coalescer.d.ts +32 -4
- package/dist/src/mcpl/push-coalescer.d.ts.map +1 -1
- package/dist/src/mcpl/push-coalescer.js +46 -13
- package/dist/src/mcpl/push-coalescer.js.map +1 -1
- package/dist/src/mcpl/push-handler.d.ts +5 -3
- package/dist/src/mcpl/push-handler.d.ts.map +1 -1
- package/dist/src/mcpl/push-handler.js +41 -11
- package/dist/src/mcpl/push-handler.js.map +1 -1
- package/dist/src/mcpl/server-connection.d.ts +4 -0
- package/dist/src/mcpl/server-connection.d.ts.map +1 -1
- package/dist/src/mcpl/server-connection.js +45 -8
- package/dist/src/mcpl/server-connection.js.map +1 -1
- package/dist/src/mcpl/server-registry.d.ts +5 -2
- package/dist/src/mcpl/server-registry.d.ts.map +1 -1
- package/dist/src/mcpl/server-registry.js +25 -7
- package/dist/src/mcpl/server-registry.js.map +1 -1
- package/dist/src/mcpl/tool-lifecycle.d.ts +52 -2
- package/dist/src/mcpl/tool-lifecycle.d.ts.map +1 -1
- package/dist/src/mcpl/tool-lifecycle.js +47 -1
- package/dist/src/mcpl/tool-lifecycle.js.map +1 -1
- package/dist/src/mcpl/tool-pattern-check.d.ts +51 -0
- package/dist/src/mcpl/tool-pattern-check.d.ts.map +1 -0
- package/dist/src/mcpl/tool-pattern-check.js +79 -0
- package/dist/src/mcpl/tool-pattern-check.js.map +1 -0
- package/dist/src/mcpl/types.d.ts +15 -5
- package/dist/src/mcpl/types.d.ts.map +1 -1
- package/dist/src/mcpl/types.js.map +1 -1
- package/dist/src/mcpl/visible-content.d.ts +39 -0
- package/dist/src/mcpl/visible-content.d.ts.map +1 -0
- package/dist/src/mcpl/visible-content.js +54 -0
- package/dist/src/mcpl/visible-content.js.map +1 -0
- package/dist/src/module-registry.d.ts +81 -3
- package/dist/src/module-registry.d.ts.map +1 -1
- package/dist/src/module-registry.js +257 -16
- package/dist/src/module-registry.js.map +1 -1
- package/dist/src/modules/workspace/branch-intent.d.ts +72 -0
- package/dist/src/modules/workspace/branch-intent.d.ts.map +1 -0
- package/dist/src/modules/workspace/branch-intent.js +83 -0
- package/dist/src/modules/workspace/branch-intent.js.map +1 -0
- package/dist/src/modules/workspace/disk-agreement.d.ts +167 -0
- package/dist/src/modules/workspace/disk-agreement.d.ts.map +1 -0
- package/dist/src/modules/workspace/disk-agreement.js +259 -0
- package/dist/src/modules/workspace/disk-agreement.js.map +1 -0
- package/dist/src/modules/workspace/effects.d.ts +84 -0
- package/dist/src/modules/workspace/effects.d.ts.map +1 -0
- package/dist/src/modules/workspace/effects.js +368 -0
- package/dist/src/modules/workspace/effects.js.map +1 -0
- package/dist/src/modules/workspace/index.d.ts +155 -17
- package/dist/src/modules/workspace/index.d.ts.map +1 -1
- package/dist/src/modules/workspace/index.js +1059 -424
- package/dist/src/modules/workspace/index.js.map +1 -1
- package/dist/src/modules/workspace/observe.d.ts +278 -0
- package/dist/src/modules/workspace/observe.d.ts.map +1 -0
- package/dist/src/modules/workspace/observe.js +805 -0
- package/dist/src/modules/workspace/observe.js.map +1 -0
- package/dist/src/modules/workspace/reconcile.d.ts +224 -0
- package/dist/src/modules/workspace/reconcile.d.ts.map +1 -0
- package/dist/src/modules/workspace/reconcile.js +901 -0
- package/dist/src/modules/workspace/reconcile.js.map +1 -0
- package/dist/src/modules/workspace/sync.d.ts +6 -59
- package/dist/src/modules/workspace/sync.d.ts.map +1 -1
- package/dist/src/modules/workspace/sync.js +6 -257
- package/dist/src/modules/workspace/sync.js.map +1 -1
- package/dist/src/modules/workspace/types.d.ts +77 -10
- package/dist/src/modules/workspace/types.d.ts.map +1 -1
- package/dist/src/modules/workspace/types.js.map +1 -1
- package/dist/src/record-journal.d.ts +127 -0
- package/dist/src/record-journal.d.ts.map +1 -0
- package/dist/src/record-journal.js +202 -0
- package/dist/src/record-journal.js.map +1 -0
- package/dist/src/shutdown.d.ts +13 -0
- package/dist/src/shutdown.d.ts.map +1 -0
- package/dist/src/shutdown.js +46 -0
- package/dist/src/shutdown.js.map +1 -0
- package/dist/src/silent-heartbeat.d.ts +74 -0
- package/dist/src/silent-heartbeat.d.ts.map +1 -0
- package/dist/src/silent-heartbeat.js +77 -0
- package/dist/src/silent-heartbeat.js.map +1 -0
- package/dist/src/tool-presentation.d.ts +50 -0
- package/dist/src/tool-presentation.d.ts.map +1 -0
- package/dist/src/tool-presentation.js +235 -0
- package/dist/src/tool-presentation.js.map +1 -0
- package/dist/src/tool-result-guard.d.ts +125 -6
- package/dist/src/tool-result-guard.d.ts.map +1 -1
- package/dist/src/tool-result-guard.js +310 -35
- package/dist/src/tool-result-guard.js.map +1 -1
- package/dist/src/tool-result-history.d.ts +13 -0
- package/dist/src/tool-result-history.d.ts.map +1 -1
- package/dist/src/tool-result-history.js +21 -1
- package/dist/src/tool-result-history.js.map +1 -1
- package/dist/src/types/agent.d.ts +18 -2
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/events.d.ts +4 -0
- package/dist/src/types/events.d.ts.map +1 -1
- package/dist/src/types/framework.d.ts +12 -0
- package/dist/src/types/framework.d.ts.map +1 -1
- package/dist/src/types/module.d.ts +14 -0
- package/dist/src/types/module.d.ts.map +1 -1
- package/dist/src/types/trace.d.ts +73 -0
- package/dist/src/types/trace.d.ts.map +1 -1
- package/dist/test/batched-wake-locus.test.d.ts +2 -0
- package/dist/test/batched-wake-locus.test.d.ts.map +1 -0
- package/dist/test/batched-wake-locus.test.js +166 -0
- package/dist/test/batched-wake-locus.test.js.map +1 -0
- package/dist/test/code-execution.test.js +386 -2
- package/dist/test/code-execution.test.js.map +1 -1
- package/dist/test/component-defaults.test.d.ts +2 -0
- package/dist/test/component-defaults.test.d.ts.map +1 -0
- package/dist/test/component-defaults.test.js +54 -0
- package/dist/test/component-defaults.test.js.map +1 -0
- package/dist/test/conversation-routing.test.js +57 -1
- package/dist/test/conversation-routing.test.js.map +1 -1
- package/dist/test/ephemeral-settle.test.js +3 -0
- package/dist/test/ephemeral-settle.test.js.map +1 -1
- package/dist/test/event-gate.test.js +118 -0
- package/dist/test/event-gate.test.js.map +1 -1
- package/dist/test/explicit-prose-routing.test.js +977 -0
- package/dist/test/explicit-prose-routing.test.js.map +1 -1
- package/dist/test/helpers/pytc-stop-rows.d.ts +11 -0
- package/dist/test/helpers/pytc-stop-rows.d.ts.map +1 -0
- package/dist/test/helpers/pytc-stop-rows.js +143 -0
- package/dist/test/helpers/pytc-stop-rows.js.map +1 -0
- package/dist/test/mcpl-coalescing.test.js +19 -6
- package/dist/test/mcpl-coalescing.test.js.map +1 -1
- package/dist/test/mcpl-config-diagnostics.test.d.ts +2 -0
- package/dist/test/mcpl-config-diagnostics.test.d.ts.map +1 -0
- package/dist/test/mcpl-config-diagnostics.test.js +449 -0
- package/dist/test/mcpl-config-diagnostics.test.js.map +1 -0
- package/dist/test/mcpl-empty-content.test.d.ts +2 -0
- package/dist/test/mcpl-empty-content.test.d.ts.map +1 -0
- package/dist/test/mcpl-empty-content.test.js +368 -0
- package/dist/test/mcpl-empty-content.test.js.map +1 -0
- package/dist/test/mcpl-tool-lifecycle-emitter.test.js +106 -1
- package/dist/test/mcpl-tool-lifecycle-emitter.test.js.map +1 -1
- package/dist/test/mcpl-tool-lifecycle-script.test.d.ts +2 -0
- package/dist/test/mcpl-tool-lifecycle-script.test.d.ts.map +1 -0
- package/dist/test/mcpl-tool-lifecycle-script.test.js +288 -0
- package/dist/test/mcpl-tool-lifecycle-script.test.js.map +1 -0
- package/dist/test/prose-stream-router.test.js +41 -0
- package/dist/test/prose-stream-router.test.js.map +1 -1
- package/dist/test/record-journal.test.d.ts +6 -0
- package/dist/test/record-journal.test.d.ts.map +1 -0
- package/dist/test/record-journal.test.js +269 -0
- package/dist/test/record-journal.test.js.map +1 -0
- package/dist/test/save-recent-image.test.js +102 -0
- package/dist/test/save-recent-image.test.js.map +1 -1
- package/dist/test/shutdown-errors.test.d.ts +2 -0
- package/dist/test/shutdown-errors.test.d.ts.map +1 -0
- package/dist/test/shutdown-errors.test.js +662 -0
- package/dist/test/shutdown-errors.test.js.map +1 -0
- package/dist/test/silent-heartbeat-rows.test.d.ts +2 -0
- package/dist/test/silent-heartbeat-rows.test.d.ts.map +1 -0
- package/dist/test/silent-heartbeat-rows.test.js +451 -0
- package/dist/test/silent-heartbeat-rows.test.js.map +1 -0
- package/dist/test/silent-heartbeat.test.js +49 -38
- package/dist/test/silent-heartbeat.test.js.map +1 -1
- package/dist/test/stop-with-work-in-flight.test.d.ts +23 -0
- package/dist/test/stop-with-work-in-flight.test.d.ts.map +1 -0
- package/dist/test/stop-with-work-in-flight.test.js +672 -0
- package/dist/test/stop-with-work-in-flight.test.js.map +1 -0
- package/dist/test/tool-batch-hook.test.d.ts +8 -0
- package/dist/test/tool-batch-hook.test.d.ts.map +1 -0
- package/dist/test/tool-batch-hook.test.js +275 -0
- package/dist/test/tool-batch-hook.test.js.map +1 -0
- package/dist/test/tool-presentation.test.d.ts +2 -0
- package/dist/test/tool-presentation.test.d.ts.map +1 -0
- package/dist/test/tool-presentation.test.js +268 -0
- package/dist/test/tool-presentation.test.js.map +1 -0
- package/dist/test/tool-result-guard.test.js +2330 -18
- package/dist/test/tool-result-guard.test.js.map +1 -1
- package/dist/test/tool-result-history.test.js +2 -1
- package/dist/test/tool-result-history.test.js.map +1 -1
- package/dist/test/turn-trigger-provenance.test.js +35 -0
- package/dist/test/turn-trigger-provenance.test.js.map +1 -1
- package/dist/test/unconvertible-tool-result.test.d.ts +2 -0
- package/dist/test/unconvertible-tool-result.test.d.ts.map +1 -0
- package/dist/test/unconvertible-tool-result.test.js +358 -0
- package/dist/test/unconvertible-tool-result.test.js.map +1 -0
- package/dist/test/workspace-materialize-freshness.test.d.ts +16 -0
- package/dist/test/workspace-materialize-freshness.test.d.ts.map +1 -0
- package/dist/test/workspace-materialize-freshness.test.js +252 -0
- package/dist/test/workspace-materialize-freshness.test.js.map +1 -0
- package/dist/test/workspace-three-way.test.d.ts +12 -0
- package/dist/test/workspace-three-way.test.d.ts.map +1 -0
- package/dist/test/workspace-three-way.test.js +3079 -0
- package/dist/test/workspace-three-way.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/agent.ts +120 -44
- package/src/code-execution/py-runner.ts +66 -9
- package/src/code-execution/runtime-py.ts +215 -38
- package/src/framework.ts +1661 -363
- package/src/gate/event-gate.ts +59 -7
- package/src/index.ts +11 -0
- package/src/mcpl/channel-registry.ts +24 -3
- package/src/mcpl/conversation-router.ts +34 -1
- package/src/mcpl/feature-set-manager.ts +36 -11
- package/src/mcpl/index.ts +2 -0
- package/src/mcpl/prose-stream-router.ts +79 -23
- package/src/mcpl/push-coalescer.ts +62 -13
- package/src/mcpl/push-handler.ts +41 -12
- package/src/mcpl/server-connection.ts +41 -10
- package/src/mcpl/server-registry.ts +24 -7
- package/src/mcpl/tool-lifecycle.ts +77 -2
- package/src/mcpl/tool-pattern-check.ts +106 -0
- package/src/mcpl/types.ts +15 -5
- package/src/mcpl/visible-content.ts +57 -0
- package/src/module-registry.ts +252 -16
- package/src/modules/workspace/branch-intent.ts +123 -0
- package/src/modules/workspace/disk-agreement.ts +325 -0
- package/src/modules/workspace/effects.ts +362 -0
- package/src/modules/workspace/index.ts +1058 -446
- package/src/modules/workspace/observe.ts +839 -0
- package/src/modules/workspace/reconcile.ts +1136 -0
- package/src/modules/workspace/sync.ts +6 -336
- package/src/modules/workspace/types.ts +75 -10
- package/src/record-journal.ts +246 -0
- package/src/shutdown.ts +49 -0
- package/src/silent-heartbeat.ts +141 -0
- package/src/tool-presentation.ts +188 -0
- package/src/tool-result-guard.ts +335 -33
- package/src/tool-result-history.ts +25 -1
- package/src/types/agent.ts +18 -2
- package/src/types/events.ts +4 -0
- package/src/types/framework.ts +12 -0
- package/src/types/module.ts +15 -0
- package/src/types/trace.ts +80 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-set-manager.js","sourceRoot":"","sources":["../../../src/mcpl/feature-set-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,EACL,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAE1B;IACA;IAFlB,YACkB,IAAY,EACZ,UAAkB,EAClC,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAAQ;QACZ,eAAU,GAAV,UAAU,CAAQ;QAIlC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAcD,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;;;;;;;;;;;GAaG;AACH,SAAS,aAAa,CAAC,OAAe,EAAE,IAAY;IAClD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,YAAY,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACd,8CAA8C;YAC9C,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CACtB,QAAkB,EAClB,QAA+C;IAE/C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE5C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,IAAI,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACtB,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;
|
|
1
|
+
{"version":3,"file":"feature-set-manager.js","sourceRoot":"","sources":["../../../src/mcpl/feature-set-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/src/mcpl/index.d.ts
CHANGED
|
@@ -13,7 +13,9 @@ export { PushHandler } from './push-handler.js';
|
|
|
13
13
|
export type { McplPushEvent } from './push-handler.js';
|
|
14
14
|
export { InferenceRouter } from './inference-router.js';
|
|
15
15
|
export { ChannelRegistry } from './channel-registry.js';
|
|
16
|
+
/** @deprecated Per-channel conversation routing is deprecated and will be removed (anima-research/agent-framework#235). */
|
|
16
17
|
export { ConversationRouter, DEFAULT_CLOSURE_PROMPT } from './conversation-router.js';
|
|
18
|
+
/** @deprecated Per-channel conversation routing is deprecated and will be removed (anima-research/agent-framework#235). */
|
|
17
19
|
export type { ConversationRouterConfig, ConversationBinding, RoutingDecision, IncomingMessageFacts, BindRule, TriggerRule, ChannelKind, } from './conversation-router.js';
|
|
18
20
|
export { CheckpointManager, applyJsonPatch } from './checkpoint-manager.js';
|
|
19
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcpl/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcpl/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/mcpl/index.js
CHANGED
|
@@ -20,6 +20,7 @@ export { InferenceRouter } from './inference-router.js';
|
|
|
20
20
|
// Channel registry (channel lifecycle, incoming messages, synthesized tools)
|
|
21
21
|
export { ChannelRegistry } from './channel-registry.js';
|
|
22
22
|
// Per-channel conversation routing (fork-per-channel agents)
|
|
23
|
+
/** @deprecated Per-channel conversation routing is deprecated and will be removed (anima-research/agent-framework#235). */
|
|
23
24
|
export { ConversationRouter, DEFAULT_CLOSURE_PROMPT } from './conversation-router.js';
|
|
24
25
|
// State management (Section 8, checkpoint trees + JSON Patch)
|
|
25
26
|
export { CheckpointManager, applyJsonPatch } from './checkpoint-manager.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcpl/index.ts"],"names":[],"mappings":"AAyFA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,4BAA4B;AAC5B,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,iCAAiC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAA4B,MAAM,sBAAsB,CAAC;AAEpF,4CAA4C;AAC5C,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAElF,qDAAqD;AACrD,OAAO,EAAE,YAAY,EAAyB,MAAM,oBAAoB,CAAC;AAEzE,8DAA8D;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,UAAU,EACV,uBAAuB,EACvB,mBAAmB,GAOpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,GAIZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,0BAA0B;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,0CAA0C;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,6EAA6E;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,6DAA6D;AAC7D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcpl/index.ts"],"names":[],"mappings":"AAyFA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,4BAA4B;AAC5B,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,iCAAiC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAA4B,MAAM,sBAAsB,CAAC;AAEpF,4CAA4C;AAC5C,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAElF,qDAAqD;AACrD,OAAO,EAAE,YAAY,EAAyB,MAAM,oBAAoB,CAAC;AAEzE,8DAA8D;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,UAAU,EACV,uBAAuB,EACvB,mBAAmB,GAOpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,GAIZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,0BAA0B;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,0CAA0C;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,6EAA6E;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,6DAA6D;AAC7D,2HAA2H;AAC3H,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAYtF,8DAA8D;AAC9D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -19,8 +19,13 @@
|
|
|
19
19
|
* emits NOTHING — the delivery path will bounce/retain it; a stream consumer
|
|
20
20
|
* must never see text that delivery would refuse to send.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
23
|
-
* - explicit: parse `>>` prefixes
|
|
22
|
+
* Three modes, mirroring proseRouting:
|
|
23
|
+
* - explicit: parse `>>` prefixes. A fresh turn's stream starts suppressed;
|
|
24
|
+
* one that resumes a turn starts at the turn's destination, and
|
|
25
|
+
* each round's end returns the stream to it (retarget).
|
|
26
|
+
* - hybrid: parse `>>>` envelopes, with the frozen turn locus as the
|
|
27
|
+
* fallback. An envelope with no target, or `>>>skip_reply`,
|
|
28
|
+
* holds back what follows until a later `>>>` names a target.
|
|
24
29
|
* - locus: NO prefix parsing (locus mode's `>>` lines are plain text);
|
|
25
30
|
* everything streams to the frozen turn locus.
|
|
26
31
|
*/
|
|
@@ -39,13 +44,23 @@ export declare class ProseStreamRouter {
|
|
|
39
44
|
constructor(opts: {
|
|
40
45
|
/** explicit parses `>>`; hybrid parses `>>>` while retaining locus fallback. */
|
|
41
46
|
mode: 'explicit' | 'hybrid' | 'locus';
|
|
42
|
-
/** Initial destination: the frozen turn locus (locus mode)
|
|
47
|
+
/** Initial destination: the frozen turn locus (locus and hybrid mode); in
|
|
48
|
+
* explicit mode, null on a fresh turn, or the turn's destination on a
|
|
49
|
+
* stream that resumes one. */
|
|
43
50
|
initialTarget: string | null;
|
|
44
51
|
/** Resolve a `>>spec` to a channelId, or null (unresolved/ambiguous). */
|
|
45
52
|
resolve: (spec: string) => string | null;
|
|
46
53
|
});
|
|
47
54
|
/** Per-channel full text emitted so far (for outgoing/complete). */
|
|
48
55
|
byChannel(): ReadonlyMap<string, string>;
|
|
56
|
+
/**
|
|
57
|
+
* Point the stream at a destination decided outside it. Explicit mode does
|
|
58
|
+
* this at each round's end, with the turn's destination: a private round's
|
|
59
|
+
* prefixes, a `>>skip_reply` envelope and a target that didn't resolve all
|
|
60
|
+
* leave that destination as it was, though the stream followed them while
|
|
61
|
+
* the round was written.
|
|
62
|
+
*/
|
|
63
|
+
retarget(target: string | null): void;
|
|
49
64
|
/**
|
|
50
65
|
* Drop everything routed so far and return to the constructed state.
|
|
51
66
|
*
|
|
@@ -56,9 +71,15 @@ export declare class ProseStreamRouter {
|
|
|
56
71
|
*/
|
|
57
72
|
reset(): void;
|
|
58
73
|
feed(delta: string): RoutedDelta[];
|
|
59
|
-
/**
|
|
60
|
-
*
|
|
61
|
-
*
|
|
74
|
+
/**
|
|
75
|
+
* The end of a segment: one round's text, which delivery parses on its
|
|
76
|
+
* own. The pending line's decision is made now. Held line-start text can
|
|
77
|
+
* no longer become a prefix, so it is body. A prefix whose target is
|
|
78
|
+
* written but has no body takes effect, as delivery reads `>>#chan` with
|
|
79
|
+
* nothing after it. The next segment starts a new line.
|
|
80
|
+
*/
|
|
81
|
+
endSegment(): RoutedDelta[];
|
|
82
|
+
/** End of stream: the last segment ends. */
|
|
62
83
|
finish(): RoutedDelta[];
|
|
63
84
|
private step;
|
|
64
85
|
private applyTarget;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prose-stream-router.d.ts","sourceRoot":"","sources":["../../../src/mcpl/prose-stream-router.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"prose-stream-router.d.ts","sourceRoot":"","sources":["../../../src/mcpl/prose-stream-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAOD,qBAAa,iBAAiB;IAS1B,OAAO,CAAC,IAAI;IARd,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAA6B;gBAGtC,IAAI,EAAE;QACZ,gFAAgF;QAChF,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;QACtC;;uCAE+B;QAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,yEAAyE;QACzE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;KAC1C;IAMH,oEAAoE;IACpE,SAAS,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;IAIxC;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIrC;;;;;;;OAOG;IACH,KAAK,IAAI,IAAI;IASb,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE;IAMlC;;;;;;OAMG;IACH,UAAU,IAAI,WAAW,EAAE;IAoB3B,4CAA4C;IAC5C,MAAM,IAAI,WAAW,EAAE;IAIvB,OAAO,CAAC,IAAI;IA4GZ,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,IAAI;CAKb"}
|
|
@@ -19,11 +19,18 @@
|
|
|
19
19
|
* emits NOTHING — the delivery path will bounce/retain it; a stream consumer
|
|
20
20
|
* must never see text that delivery would refuse to send.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
23
|
-
* - explicit: parse `>>` prefixes
|
|
22
|
+
* Three modes, mirroring proseRouting:
|
|
23
|
+
* - explicit: parse `>>` prefixes. A fresh turn's stream starts suppressed;
|
|
24
|
+
* one that resumes a turn starts at the turn's destination, and
|
|
25
|
+
* each round's end returns the stream to it (retarget).
|
|
26
|
+
* - hybrid: parse `>>>` envelopes, with the frozen turn locus as the
|
|
27
|
+
* fallback. An envelope with no target, or `>>>skip_reply`,
|
|
28
|
+
* holds back what follows until a later `>>>` names a target.
|
|
24
29
|
* - locus: NO prefix parsing (locus mode's `>>` lines are plain text);
|
|
25
30
|
* everything streams to the frozen turn locus.
|
|
26
31
|
*/
|
|
32
|
+
/** Whitespace as the delivery path reads it (`trimStart()`, `\s`, `\S`). */
|
|
33
|
+
const isSpace = (ch) => /\s/.test(ch);
|
|
27
34
|
export class ProseStreamRouter {
|
|
28
35
|
opts;
|
|
29
36
|
target;
|
|
@@ -42,6 +49,16 @@ export class ProseStreamRouter {
|
|
|
42
49
|
byChannel() {
|
|
43
50
|
return this.accumulated;
|
|
44
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Point the stream at a destination decided outside it. Explicit mode does
|
|
54
|
+
* this at each round's end, with the turn's destination: a private round's
|
|
55
|
+
* prefixes, a `>>skip_reply` envelope and a target that didn't resolve all
|
|
56
|
+
* leave that destination as it was, though the stream followed them while
|
|
57
|
+
* the round was written.
|
|
58
|
+
*/
|
|
59
|
+
retarget(target) {
|
|
60
|
+
this.target = target;
|
|
61
|
+
}
|
|
45
62
|
/**
|
|
46
63
|
* Drop everything routed so far and return to the constructed state.
|
|
47
64
|
*
|
|
@@ -64,24 +81,42 @@ export class ProseStreamRouter {
|
|
|
64
81
|
this.step(ch, out);
|
|
65
82
|
return coalesce(out);
|
|
66
83
|
}
|
|
67
|
-
/**
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
|
|
84
|
+
/**
|
|
85
|
+
* The end of a segment: one round's text, which delivery parses on its
|
|
86
|
+
* own. The pending line's decision is made now. Held line-start text can
|
|
87
|
+
* no longer become a prefix, so it is body. A prefix whose target is
|
|
88
|
+
* written but has no body takes effect, as delivery reads `>>#chan` with
|
|
89
|
+
* nothing after it. The next segment starts a new line.
|
|
90
|
+
*/
|
|
91
|
+
endSegment() {
|
|
71
92
|
const out = [];
|
|
72
|
-
if (this.state === '
|
|
93
|
+
if (this.state === 'indent')
|
|
73
94
|
this.emit(this.held, out);
|
|
74
95
|
if (this.state === 'maybe-prefix') {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
96
|
+
// Hybrid's `>>>` with nothing after it is an envelope with no target:
|
|
97
|
+
// delivery bounces it and holds back what follows. Anything else held
|
|
98
|
+
// is text to delivery, explicit's bare `>>` included.
|
|
99
|
+
const arrows = this.held.trimStart();
|
|
100
|
+
if (this.opts.mode === 'hybrid' && arrows === '>>>')
|
|
101
|
+
this.target = null;
|
|
102
|
+
else
|
|
78
103
|
this.emit(this.held, out);
|
|
79
104
|
}
|
|
80
|
-
//
|
|
105
|
+
// Hybrid's `>>>` and a gap with nothing after it: no target either.
|
|
106
|
+
if (this.state === 'prefix-gap')
|
|
107
|
+
this.target = null;
|
|
108
|
+
if (this.state === 'prefix-token')
|
|
109
|
+
this.applyTarget();
|
|
81
110
|
this.held = '';
|
|
82
|
-
this.
|
|
111
|
+
this.token = '';
|
|
112
|
+
if (this.opts.mode !== 'locus')
|
|
113
|
+
this.state = 'line-start';
|
|
83
114
|
return coalesce(out);
|
|
84
115
|
}
|
|
116
|
+
/** End of stream: the last segment ends. */
|
|
117
|
+
finish() {
|
|
118
|
+
return this.endSegment();
|
|
119
|
+
}
|
|
85
120
|
step(ch, out) {
|
|
86
121
|
switch (this.state) {
|
|
87
122
|
case 'body':
|
|
@@ -94,8 +129,11 @@ export class ProseStreamRouter {
|
|
|
94
129
|
}
|
|
95
130
|
return;
|
|
96
131
|
case 'line-start':
|
|
97
|
-
|
|
98
|
-
|
|
132
|
+
// Indentation before a prefix is held until the line's decision: the
|
|
133
|
+
// delivery path reads an indented `>>` (explicit) or `>>>` (hybrid)
|
|
134
|
+
// line as a prefix too, after any leading whitespace.
|
|
135
|
+
if (ch !== '\n' && isSpace(ch)) {
|
|
136
|
+
this.state = 'indent';
|
|
99
137
|
this.held = ch;
|
|
100
138
|
return;
|
|
101
139
|
}
|
|
@@ -107,8 +145,8 @@ export class ProseStreamRouter {
|
|
|
107
145
|
this.state = 'body';
|
|
108
146
|
this.step(ch, out);
|
|
109
147
|
return;
|
|
110
|
-
case '
|
|
111
|
-
if (ch
|
|
148
|
+
case 'indent':
|
|
149
|
+
if (ch !== '\n' && isSpace(ch)) {
|
|
112
150
|
this.held += ch;
|
|
113
151
|
return;
|
|
114
152
|
}
|
|
@@ -124,7 +162,7 @@ export class ProseStreamRouter {
|
|
|
124
162
|
return;
|
|
125
163
|
case 'maybe-prefix': {
|
|
126
164
|
const prefix = this.opts.mode === 'hybrid' ? '>>>' : '>>';
|
|
127
|
-
const arrows = this.
|
|
165
|
+
const arrows = this.held.trimStart();
|
|
128
166
|
if (ch === '>' && arrows.length < prefix.length) {
|
|
129
167
|
this.held += '>';
|
|
130
168
|
return;
|
|
@@ -135,13 +173,23 @@ export class ProseStreamRouter {
|
|
|
135
173
|
this.state = 'prefix-gap';
|
|
136
174
|
return;
|
|
137
175
|
}
|
|
138
|
-
if (ch
|
|
139
|
-
if (this.opts.mode === 'explicit')
|
|
176
|
+
if (isSpace(ch)) {
|
|
177
|
+
if (this.opts.mode === 'explicit') {
|
|
178
|
+
// `>>` and then whitespace is a quoted arrow: body text, since
|
|
179
|
+
// delivery's prefix needs a target right after the arrows.
|
|
140
180
|
this.emit(this.held, out);
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
// `>>>` and then whitespace other than a space or tab (a
|
|
184
|
+
// newline included) is an envelope with no target. Delivery
|
|
185
|
+
// bounces it and holds back what follows until a later `>>>`
|
|
186
|
+
// names a target.
|
|
187
|
+
this.target = null;
|
|
188
|
+
}
|
|
189
|
+
// The whitespace itself is body, a newline included.
|
|
141
190
|
this.held = '';
|
|
142
|
-
this.state =
|
|
143
|
-
|
|
144
|
-
this.step(ch, out);
|
|
191
|
+
this.state = 'body';
|
|
192
|
+
this.step(ch, out);
|
|
145
193
|
return;
|
|
146
194
|
}
|
|
147
195
|
this.state = 'prefix-token';
|
|
@@ -163,6 +211,13 @@ export class ProseStreamRouter {
|
|
|
163
211
|
this.state = 'line-start';
|
|
164
212
|
return;
|
|
165
213
|
}
|
|
214
|
+
// Other whitespace can't start hybrid's target (`[ \t]*\S+`): an
|
|
215
|
+
// envelope with no target, as above.
|
|
216
|
+
if (isSpace(ch)) {
|
|
217
|
+
this.target = null;
|
|
218
|
+
this.state = 'body';
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
166
221
|
this.state = 'prefix-token';
|
|
167
222
|
this.token = ch;
|
|
168
223
|
return;
|
|
@@ -178,6 +233,14 @@ export class ProseStreamRouter {
|
|
|
178
233
|
this.state = 'line-start';
|
|
179
234
|
return;
|
|
180
235
|
}
|
|
236
|
+
// Any other whitespace ends the token too (`\S+`), and starts the
|
|
237
|
+
// body: the grammar's gap after a token is spaces and tabs only.
|
|
238
|
+
if (isSpace(ch)) {
|
|
239
|
+
this.applyTarget();
|
|
240
|
+
this.state = 'body';
|
|
241
|
+
this.step(ch, out);
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
181
244
|
this.token += ch;
|
|
182
245
|
return;
|
|
183
246
|
case 'after-token':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prose-stream-router.js","sourceRoot":"","sources":["../../../src/mcpl/prose-stream-router.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"prose-stream-router.js","sourceRoot":"","sources":["../../../src/mcpl/prose-stream-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AASH,4EAA4E;AAC5E,MAAM,OAAO,GAAG,CAAC,EAAU,EAAW,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEvD,MAAM,OAAO,iBAAiB;IASlB;IARF,MAAM,CAAgB;IACtB,KAAK,GAAU,YAAY,CAAC;IAC5B,IAAI,GAAG,EAAE,CAAC,CAAM,+CAA+C;IAC/D,KAAK,GAAG,EAAE,CAAC,CAAK,qCAAqC;IACrD,OAAO,GAAG,KAAK,CAAC;IAChB,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEhD,YACU,IASP;QATO,SAAI,GAAJ,IAAI,CASX;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QACjC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;IACjD,CAAC;IAED,oEAAoE;IACpE,SAAS;QACP,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,MAAqB;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;QAChE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,KAAa;QAChB,MAAM,GAAG,GAAkB,EAAE,CAAC;QAC9B,KAAK,MAAM,EAAE,IAAI,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC3C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACH,UAAU;QACR,MAAM,GAAG,GAAkB,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACvD,IAAI,IAAI,CAAC,KAAK,KAAK,cAAc,EAAE,CAAC;YAClC,sEAAsE;YACtE,sEAAsE;YACtE,sDAAsD;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,KAAK,KAAK;gBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;;gBACnE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;QACD,oEAAoE;QACpE,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACpD,IAAI,IAAI,CAAC,KAAK,KAAK,cAAc;YAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACtD,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;QAC1D,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,4CAA4C;IAC5C,MAAM;QACJ,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAEO,IAAI,CAAC,EAAU,EAAE,GAAkB;QACzC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,KAAK,MAAM;gBACT,IAAI,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBACrB,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBACrB,CAAC;gBACD,OAAO;YAET,KAAK,YAAY;gBACf,qEAAqE;gBACrE,oEAAoE;gBACpE,sDAAsD;gBACtD,IAAI,EAAE,KAAK,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;oBACtB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;oBACf,OAAO;gBACT,CAAC;gBACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;oBAAC,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;oBAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBACzE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBACnB,OAAO;YAET,KAAK,QAAQ;gBACX,IAAI,EAAE,KAAK,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;oBAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBAC5D,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;oBAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;oBAAC,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBACzE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBACnB,OAAO;YAET,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACrC,IAAI,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAChD,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;oBACjB,OAAO;gBACT,CAAC;gBACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;oBACtB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;wBAC/D,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;wBACf,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;wBAC1B,OAAO;oBACT,CAAC;oBACD,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;wBAChB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;4BAClC,+DAA+D;4BAC/D,2DAA2D;4BAC3D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;wBAC5B,CAAC;6BAAM,CAAC;4BACN,yDAAyD;4BACzD,4DAA4D;4BAC5D,6DAA6D;4BAC7D,kBAAkB;4BAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;wBACrB,CAAC;wBACD,qDAAqD;wBACrD,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;wBACf,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;wBACpB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;wBACnB,OAAO;oBACT,CAAC;oBACD,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;oBAC5B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;oBAChB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;oBACf,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,KAAK,YAAY;gBACf,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI;oBAAE,OAAO;gBACtC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;oBAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBAAC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBAC3E,iEAAiE;gBACjE,qCAAqC;gBACrC,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;oBAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBACrE,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;gBAC5B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBAChB,OAAO;YAET,KAAK,cAAc;gBACjB,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;oBAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBAAC,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;oBAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBAChH,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;oBAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBAAC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBAC3E,kEAAkE;gBAClE,iEAAiE;gBACjE,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;oBAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;oBAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBACzF,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACjB,OAAO;YAET,KAAK,aAAa;gBAChB,uEAAuE;gBACvE,gEAAgE;gBAChE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI;oBAAE,OAAO;gBACtC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;oBAAC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBACvD,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBACjE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBACnB,OAAO;QACX,CAAC;IACH,CAAC;IAEO,WAAW;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;YAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YAAC,OAAO;QAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAEO,IAAI,CAAC,IAAY,EAAE,GAAkB;QAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO;QAC1C,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACtF,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,MAAqB;IACrC,MAAM,GAAG,GAAkB,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjC,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;YAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;;YAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -32,6 +32,11 @@ export declare class CoalesceError extends Error {
|
|
|
32
32
|
readonly code: number;
|
|
33
33
|
constructor(field: string, message: string, code?: number);
|
|
34
34
|
}
|
|
35
|
+
/** Content with nothing model-visible (see visible-content.ts): -32602. */
|
|
36
|
+
export declare class EmptyContentError extends CoalesceError {
|
|
37
|
+
readonly reason = "empty-content";
|
|
38
|
+
constructor(field?: string);
|
|
39
|
+
}
|
|
35
40
|
/** Where an unread occurrence currently lives. */
|
|
36
41
|
export interface CoalescingPlacement {
|
|
37
42
|
agent: string;
|
|
@@ -107,6 +112,17 @@ interface Rendering<E> {
|
|
|
107
112
|
batch: DeferredBatch<E>;
|
|
108
113
|
cancelled: boolean;
|
|
109
114
|
done: Promise<void>;
|
|
115
|
+
/** Set once the render (or its fallback) was delivered as content. */
|
|
116
|
+
materialized?: boolean;
|
|
117
|
+
}
|
|
118
|
+
/** What an assembly did, per subject, for the turn being assembled. */
|
|
119
|
+
export interface AssemblyResult {
|
|
120
|
+
/** Subjects whose render this assembly waited on to completion. */
|
|
121
|
+
settled: Set<string>;
|
|
122
|
+
/** Of those, the subjects whose render or fallback was delivered as content.
|
|
123
|
+
* A settled subject that is not here gave the turn nothing to read: empty
|
|
124
|
+
* or blank render (§5.2), cancelled, or revoked at response. */
|
|
125
|
+
materialized: Set<string>;
|
|
110
126
|
}
|
|
111
127
|
interface SubjectState<E> {
|
|
112
128
|
history: 'none' | 'some' | 'unknown';
|
|
@@ -216,8 +232,18 @@ export interface CoalescerOptions {
|
|
|
216
232
|
}
|
|
217
233
|
export declare function coalescingSubjectKey(serverId: string, binding: string, scope: CoalescingScope, key: string): string;
|
|
218
234
|
export declare function coalescingReceiptKey(serverId: string, binding: string, eventId: string): string;
|
|
219
|
-
/**
|
|
220
|
-
|
|
235
|
+
/**
|
|
236
|
+
* Validate wire content before it is stored, rendered or converted.
|
|
237
|
+
*
|
|
238
|
+
* Visibly-empty content is refused unless `allowEmpty`: an admitted
|
|
239
|
+
* occurrence with nothing to show would wake the model with no visible cause.
|
|
240
|
+
* Empty is legitimate only where the RFC gives it a meaning — a retraction
|
|
241
|
+
* with nothing to announce (§6) and a render result that says nothing
|
|
242
|
+
* happened (§5.2) — and for the silent-heartbeat marker.
|
|
243
|
+
*/
|
|
244
|
+
export declare function validateCoalescedContent(content: unknown, maxBytes?: number, options?: {
|
|
245
|
+
allowEmpty?: boolean;
|
|
246
|
+
}): asserts content is McplContentBlock[];
|
|
221
247
|
/** Validate the `coalesce` member of either lane (§13). */
|
|
222
248
|
export declare function validateCoalesceMember(c: unknown, lane: 'push' | 'channel', maxDataBytes?: number): asserts c is NonNullable<import('./types.js').PushEventParams['coalesce']>;
|
|
223
249
|
export declare class PushCoalescer<E = unknown> {
|
|
@@ -286,9 +312,11 @@ export declare class PushCoalescer<E = unknown> {
|
|
|
286
312
|
* Render and materialize every pending batch whose audience includes
|
|
287
313
|
* `agentName`. Called by the host at a turn's assembly boundary, before the
|
|
288
314
|
* compile. Bounded by the host's render timeout; a failed or late render
|
|
289
|
-
* materializes the admitted fallback (§5.3).
|
|
315
|
+
* materializes the admitted fallback (§5.3). Reports which subjects
|
|
316
|
+
* settled and which of them produced content, so the host can tell a turn
|
|
317
|
+
* whose only cause rendered nothing.
|
|
290
318
|
*/
|
|
291
|
-
assemble(agentName: string): Promise<
|
|
319
|
+
assemble(agentName: string): Promise<AssemblyResult>;
|
|
292
320
|
/**
|
|
293
321
|
* Under the lock: decide whether `subject`'s batch renders for `agentName`,
|
|
294
322
|
* freeze it, make the render-start durable, re-check authority, and start
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push-coalescer.d.ts","sourceRoot":"","sources":["../../../src/mcpl/push-coalescer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"push-coalescer.d.ts","sourceRoot":"","sources":["../../../src/mcpl/push-coalescer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isVisiblyEmptyContent } from './visible-content.js';
|
|
1
2
|
export const PUSH_COALESCING_SUPPORT = {
|
|
2
3
|
pushEvents: true, channelsIncoming: true, deferred: true, channelScopedPush: true,
|
|
3
4
|
retryWindowMs: 3_600_000,
|
|
@@ -15,6 +16,14 @@ export class CoalesceError extends Error {
|
|
|
15
16
|
this.name = 'CoalesceError';
|
|
16
17
|
}
|
|
17
18
|
}
|
|
19
|
+
/** Content with nothing model-visible (see visible-content.ts): -32602. */
|
|
20
|
+
export class EmptyContentError extends CoalesceError {
|
|
21
|
+
reason = 'empty-content';
|
|
22
|
+
constructor(field = 'payload.content') {
|
|
23
|
+
super(field, 'content has no visible content: send at least one non-text block or non-whitespace text');
|
|
24
|
+
this.name = 'EmptyContentError';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
18
27
|
export function coalescingSubjectKey(serverId, binding, scope, key) {
|
|
19
28
|
return JSON.stringify([serverId, binding, scope.kind, scope.id, key]);
|
|
20
29
|
}
|
|
@@ -29,8 +38,16 @@ function mergeIdentity(prior, next) {
|
|
|
29
38
|
out[k] = v;
|
|
30
39
|
return out;
|
|
31
40
|
}
|
|
32
|
-
/**
|
|
33
|
-
|
|
41
|
+
/**
|
|
42
|
+
* Validate wire content before it is stored, rendered or converted.
|
|
43
|
+
*
|
|
44
|
+
* Visibly-empty content is refused unless `allowEmpty`: an admitted
|
|
45
|
+
* occurrence with nothing to show would wake the model with no visible cause.
|
|
46
|
+
* Empty is legitimate only where the RFC gives it a meaning — a retraction
|
|
47
|
+
* with nothing to announce (§6) and a render result that says nothing
|
|
48
|
+
* happened (§5.2) — and for the silent-heartbeat marker.
|
|
49
|
+
*/
|
|
50
|
+
export function validateCoalescedContent(content, maxBytes = 1024 * 1024, options = {}) {
|
|
34
51
|
if (!Array.isArray(content))
|
|
35
52
|
throw new CoalesceError('payload.content', 'content must be an array');
|
|
36
53
|
for (const b of content) {
|
|
@@ -47,6 +64,8 @@ export function validateCoalescedContent(content, maxBytes = 1024 * 1024) {
|
|
|
47
64
|
}
|
|
48
65
|
if (Buffer.byteLength(JSON.stringify(content)) > maxBytes)
|
|
49
66
|
throw new CoalesceError('payload.content', 'content exceeds host byte limit');
|
|
67
|
+
if (!options.allowEmpty && isVisiblyEmptyContent(content))
|
|
68
|
+
throw new EmptyContentError();
|
|
50
69
|
}
|
|
51
70
|
/** Validate the `coalesce` member of either lane (§13). */
|
|
52
71
|
export function validateCoalesceMember(c, lane, maxDataBytes = 4096) {
|
|
@@ -325,7 +344,9 @@ export class PushCoalescer {
|
|
|
325
344
|
state.consumedEventId = undefined;
|
|
326
345
|
if (state.history === 'none')
|
|
327
346
|
return 'retracted';
|
|
328
|
-
|
|
347
|
+
// An empty notice — or one with only blank text, which would reach the
|
|
348
|
+
// model as an empty message — is pure withdrawal: append nothing.
|
|
349
|
+
if (isVisiblyEmptyContent(occurrence.content))
|
|
329
350
|
return 'consumed';
|
|
330
351
|
// The notice is an ordinary occurrence: it rides the normal delivery path
|
|
331
352
|
// (tags → gate policy → wake) and is consumed like any message — in the
|
|
@@ -412,22 +433,31 @@ export class PushCoalescer {
|
|
|
412
433
|
* Render and materialize every pending batch whose audience includes
|
|
413
434
|
* `agentName`. Called by the host at a turn's assembly boundary, before the
|
|
414
435
|
* compile. Bounded by the host's render timeout; a failed or late render
|
|
415
|
-
* materializes the admitted fallback (§5.3).
|
|
436
|
+
* materializes the admitted fallback (§5.3). Reports which subjects
|
|
437
|
+
* settled and which of them produced content, so the host can tell a turn
|
|
438
|
+
* whose only cause rendered nothing.
|
|
416
439
|
*/
|
|
417
440
|
async assemble(agentName) {
|
|
441
|
+
const result = { settled: new Set(), materialized: new Set() };
|
|
418
442
|
if (this.suspended)
|
|
419
|
-
return;
|
|
443
|
+
return result;
|
|
420
444
|
const work = [];
|
|
421
445
|
for (const subject of [...this.subjects.keys()]) {
|
|
422
446
|
// The handle is wrapped: a bare promise returned through `locked` would
|
|
423
447
|
// be flattened by `then`, holding the lock until the render settled —
|
|
424
448
|
// and the settlement itself needs the lock.
|
|
425
449
|
const started = await this.locked(() => this.freeze(subject, agentName));
|
|
426
|
-
if (started)
|
|
427
|
-
work.push(started.done)
|
|
450
|
+
if (started) {
|
|
451
|
+
work.push(started.done.then(() => {
|
|
452
|
+
result.settled.add(subject);
|
|
453
|
+
if (started.rendering.materialized)
|
|
454
|
+
result.materialized.add(subject);
|
|
455
|
+
}));
|
|
456
|
+
}
|
|
428
457
|
}
|
|
429
458
|
await Promise.all(work);
|
|
430
459
|
this.persist();
|
|
460
|
+
return result;
|
|
431
461
|
}
|
|
432
462
|
/**
|
|
433
463
|
* Under the lock: decide whether `subject`'s batch renders for `agentName`,
|
|
@@ -442,7 +472,7 @@ export class PushCoalescer {
|
|
|
442
472
|
if (state.rendering) {
|
|
443
473
|
// Another assembly froze this batch; share its outcome (vector 25).
|
|
444
474
|
const rendering = state.rendering;
|
|
445
|
-
return (await this.host.audience(rendering.batch.latest)).includes(agentName) && state.rendering === rendering ? { done: rendering.done } : undefined;
|
|
475
|
+
return (await this.host.audience(rendering.batch.latest)).includes(agentName) && state.rendering === rendering ? { done: rendering.done, rendering } : undefined;
|
|
446
476
|
}
|
|
447
477
|
const batch = state.batch;
|
|
448
478
|
if (!batch)
|
|
@@ -495,7 +525,7 @@ export class PushCoalescer {
|
|
|
495
525
|
return undefined;
|
|
496
526
|
}
|
|
497
527
|
rendering.done = this.render(subject, state, rendering, agentName);
|
|
498
|
-
return { done: rendering.done };
|
|
528
|
+
return { done: rendering.done, rendering };
|
|
499
529
|
}
|
|
500
530
|
async render(subject, state, rendering, assemblingFor) {
|
|
501
531
|
const { batch } = rendering;
|
|
@@ -516,8 +546,9 @@ export class PushCoalescer {
|
|
|
516
546
|
if (rendering.cancelled) {
|
|
517
547
|
this.host.audit({ kind: 'late-render', subject, eventId: occurrence.eventId, discarded: true });
|
|
518
548
|
}
|
|
549
|
+
// §5.2: an empty result is legitimate ("nothing happened").
|
|
519
550
|
else
|
|
520
|
-
validateCoalescedContent(result?.content, this.options.maxContentBytes);
|
|
551
|
+
validateCoalescedContent(result?.content, this.options.maxContentBytes, { allowEmpty: true });
|
|
521
552
|
if (rendering.cancelled)
|
|
522
553
|
throw new CancelledRender();
|
|
523
554
|
content = result.content;
|
|
@@ -547,10 +578,12 @@ export class PushCoalescer {
|
|
|
547
578
|
this.host.audit({ kind: 'revoked', subject, eventId: occurrence.eventId });
|
|
548
579
|
return;
|
|
549
580
|
}
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
581
|
+
const empty = isVisiblyEmptyContent(content);
|
|
582
|
+
this.host.audit({ kind: 'rendered', subject, eventId: occurrence.eventId, source, empty });
|
|
583
|
+
if (empty)
|
|
584
|
+
return; // §5.2: nothing happened (blank text included)
|
|
553
585
|
const placement = await this.host.deliver({ ...occurrence, timestamp, content }, content, assemblingFor);
|
|
586
|
+
rendering.materialized = true;
|
|
554
587
|
if (placement?.deferredId) {
|
|
555
588
|
// Landed in another agent's deferred queue (its turn is alive): still
|
|
556
589
|
// unread there, so it stays replaceable and withdrawable.
|