@animalabs/agent-framework 0.27.0 → 0.29.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 +145 -41
- package/dist/src/agent.d.ts +29 -2
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +73 -12
- package/dist/src/agent.js.map +1 -1
- package/dist/src/api/mcp-server-core.d.ts.map +1 -1
- package/dist/src/api/mcp-server-core.js +3 -12
- package/dist/src/api/mcp-server-core.js.map +1 -1
- package/dist/src/api/server.d.ts.map +1 -1
- package/dist/src/api/server.js +11 -5
- package/dist/src/api/server.js.map +1 -1
- package/dist/src/auto-continue.d.ts +5 -2
- package/dist/src/auto-continue.d.ts.map +1 -1
- package/dist/src/auto-continue.js +9 -5
- package/dist/src/auto-continue.js.map +1 -1
- package/dist/src/code-execution/isolate/runner.d.ts +7 -5
- package/dist/src/code-execution/isolate/runner.d.ts.map +1 -1
- package/dist/src/code-execution/isolate/runner.js +7 -5
- package/dist/src/code-execution/isolate/runner.js.map +1 -1
- package/dist/src/code-execution/isolate/scripts.d.ts.map +1 -1
- package/dist/src/code-execution/isolate/scripts.js +3 -2
- package/dist/src/code-execution/isolate/scripts.js.map +1 -1
- package/dist/src/cut-off-round.d.ts +24 -0
- package/dist/src/cut-off-round.d.ts.map +1 -0
- package/dist/src/cut-off-round.js +87 -0
- package/dist/src/cut-off-round.js.map +1 -0
- package/dist/src/framework.d.ts +468 -125
- package/dist/src/framework.d.ts.map +1 -1
- package/dist/src/framework.js +3651 -1111
- package/dist/src/framework.js.map +1 -1
- package/dist/src/gate/event-gate.d.ts +133 -13
- package/dist/src/gate/event-gate.d.ts.map +1 -1
- package/dist/src/gate/event-gate.js +654 -59
- package/dist/src/gate/event-gate.js.map +1 -1
- package/dist/src/gate/index.d.ts +3 -2
- package/dist/src/gate/index.d.ts.map +1 -1
- package/dist/src/gate/index.js +2 -1
- package/dist/src/gate/index.js.map +1 -1
- package/dist/src/gate/reply-judge.d.ts +116 -0
- package/dist/src/gate/reply-judge.d.ts.map +1 -0
- package/dist/src/gate/reply-judge.js +467 -0
- package/dist/src/gate/reply-judge.js.map +1 -0
- package/dist/src/gate/types.d.ts +173 -2
- package/dist/src/gate/types.d.ts.map +1 -1
- package/dist/src/heartbeat/heartbeat.d.ts +202 -0
- package/dist/src/heartbeat/heartbeat.d.ts.map +1 -0
- package/dist/src/heartbeat/heartbeat.js +778 -0
- package/dist/src/heartbeat/heartbeat.js.map +1 -0
- package/dist/src/heartbeat/reminder-time.d.ts +5 -0
- package/dist/src/heartbeat/reminder-time.d.ts.map +1 -0
- package/dist/src/heartbeat/reminder-time.js +107 -0
- package/dist/src/heartbeat/reminder-time.js.map +1 -0
- package/dist/src/held-writes.d.ts +3 -3
- package/dist/src/held-writes.js +3 -3
- package/dist/src/host-presentation.d.ts +170 -0
- package/dist/src/host-presentation.d.ts.map +1 -0
- package/dist/src/host-presentation.js +561 -0
- package/dist/src/host-presentation.js.map +1 -0
- package/dist/src/index.d.ts +5 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/line-reader.d.ts +4 -0
- package/dist/src/line-reader.d.ts.map +1 -0
- package/dist/src/line-reader.js +59 -0
- package/dist/src/line-reader.js.map +1 -0
- package/dist/src/mcpl/capability-mask.d.ts.map +1 -1
- package/dist/src/mcpl/capability-mask.js +3 -2
- package/dist/src/mcpl/capability-mask.js.map +1 -1
- package/dist/src/mcpl/channel-registry.d.ts +34 -6
- package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
- package/dist/src/mcpl/channel-registry.js +133 -54
- package/dist/src/mcpl/channel-registry.js.map +1 -1
- package/dist/src/mcpl/conversation-router.d.ts.map +1 -1
- package/dist/src/mcpl/conversation-router.js +2 -1
- package/dist/src/mcpl/conversation-router.js.map +1 -1
- package/dist/src/mcpl/convert-block.d.ts +1 -0
- package/dist/src/mcpl/convert-block.d.ts.map +1 -1
- package/dist/src/mcpl/convert-block.js +16 -4
- package/dist/src/mcpl/convert-block.js.map +1 -1
- package/dist/src/mcpl/hook-orchestrator.d.ts.map +1 -1
- package/dist/src/mcpl/hook-orchestrator.js +4 -3
- package/dist/src/mcpl/hook-orchestrator.js.map +1 -1
- package/dist/src/mcpl/inbound-source.d.ts +29 -11
- package/dist/src/mcpl/inbound-source.d.ts.map +1 -1
- package/dist/src/mcpl/inbound-source.js +43 -70
- package/dist/src/mcpl/inbound-source.js.map +1 -1
- package/dist/src/mcpl/modern-connection.d.ts.map +1 -1
- package/dist/src/mcpl/modern-connection.js +11 -7
- package/dist/src/mcpl/modern-connection.js.map +1 -1
- package/dist/src/mcpl/protocol-family.d.ts +3 -2
- package/dist/src/mcpl/protocol-family.d.ts.map +1 -1
- package/dist/src/mcpl/protocol-family.js +25 -3
- package/dist/src/mcpl/protocol-family.js.map +1 -1
- package/dist/src/mcpl/push-handler.js +2 -2
- package/dist/src/mcpl/push-handler.js.map +1 -1
- package/dist/src/mcpl/references.d.ts +12 -40
- package/dist/src/mcpl/references.d.ts.map +1 -1
- package/dist/src/mcpl/references.js +29 -23
- package/dist/src/mcpl/references.js.map +1 -1
- package/dist/src/mcpl/server-connection.d.ts +18 -8
- package/dist/src/mcpl/server-connection.d.ts.map +1 -1
- package/dist/src/mcpl/server-connection.js +70 -30
- package/dist/src/mcpl/server-connection.js.map +1 -1
- package/dist/src/mcpl/skip-reply-wake.d.ts +25 -0
- package/dist/src/mcpl/skip-reply-wake.d.ts.map +1 -1
- package/dist/src/mcpl/skip-reply-wake.js +25 -0
- package/dist/src/mcpl/skip-reply-wake.js.map +1 -1
- package/dist/src/mcpl/tags.d.ts +9 -2
- package/dist/src/mcpl/tags.d.ts.map +1 -1
- package/dist/src/mcpl/tags.js +12 -2
- package/dist/src/mcpl/tags.js.map +1 -1
- package/dist/src/mcpl/tool-presence.d.ts +66 -14
- package/dist/src/mcpl/tool-presence.d.ts.map +1 -1
- package/dist/src/mcpl/tool-presence.js +150 -80
- package/dist/src/mcpl/tool-presence.js.map +1 -1
- package/dist/src/mcpl/tool-signature.d.ts +10 -3
- package/dist/src/mcpl/tool-signature.d.ts.map +1 -1
- package/dist/src/mcpl/tool-signature.js +60 -30
- package/dist/src/mcpl/tool-signature.js.map +1 -1
- package/dist/src/mcpl/toolset-host.d.ts +88 -55
- package/dist/src/mcpl/toolset-host.d.ts.map +1 -1
- package/dist/src/mcpl/toolset-host.js +220 -111
- package/dist/src/mcpl/toolset-host.js.map +1 -1
- package/dist/src/mcpl/toolsets-module.d.ts +27 -35
- package/dist/src/mcpl/toolsets-module.d.ts.map +1 -1
- package/dist/src/mcpl/toolsets-module.js +313 -91
- package/dist/src/mcpl/toolsets-module.js.map +1 -1
- package/dist/src/mcpl/transport.d.ts +1 -1
- package/dist/src/mcpl/transport.d.ts.map +1 -1
- package/dist/src/mcpl/transport.js +16 -16
- package/dist/src/mcpl/transport.js.map +1 -1
- package/dist/src/mcpl/types.d.ts +31 -13
- package/dist/src/mcpl/types.d.ts.map +1 -1
- package/dist/src/mcpl/types.js.map +1 -1
- package/dist/src/module-registry.d.ts +10 -8
- package/dist/src/module-registry.d.ts.map +1 -1
- package/dist/src/module-registry.js +15 -9
- package/dist/src/module-registry.js.map +1 -1
- package/dist/src/modules/api/index.d.ts.map +1 -1
- package/dist/src/modules/api/index.js +4 -2
- package/dist/src/modules/api/index.js.map +1 -1
- package/dist/src/modules/discord/index.d.ts.map +1 -1
- package/dist/src/modules/discord/index.js +33 -25
- package/dist/src/modules/discord/index.js.map +1 -1
- package/dist/src/modules/history/index.d.ts.map +1 -1
- package/dist/src/modules/history/index.js +30 -17
- package/dist/src/modules/history/index.js.map +1 -1
- package/dist/src/modules/sender-name.d.ts +7 -0
- package/dist/src/modules/sender-name.d.ts.map +1 -0
- package/dist/src/modules/sender-name.js +10 -0
- package/dist/src/modules/sender-name.js.map +1 -0
- package/dist/src/modules/workspace/answers.d.ts +26 -0
- package/dist/src/modules/workspace/answers.d.ts.map +1 -0
- package/dist/src/modules/workspace/answers.js +138 -0
- package/dist/src/modules/workspace/answers.js.map +1 -0
- package/dist/src/modules/workspace/branch-intent.d.ts +5 -3
- package/dist/src/modules/workspace/branch-intent.d.ts.map +1 -1
- package/dist/src/modules/workspace/branch-intent.js +6 -2
- package/dist/src/modules/workspace/branch-intent.js.map +1 -1
- package/dist/src/modules/workspace/direct-write.d.ts +3 -0
- package/dist/src/modules/workspace/direct-write.d.ts.map +1 -1
- package/dist/src/modules/workspace/direct-write.js +59 -24
- package/dist/src/modules/workspace/direct-write.js.map +1 -1
- package/dist/src/modules/workspace/disk-agreement.d.ts +33 -11
- package/dist/src/modules/workspace/disk-agreement.d.ts.map +1 -1
- package/dist/src/modules/workspace/disk-agreement.js +48 -17
- package/dist/src/modules/workspace/disk-agreement.js.map +1 -1
- package/dist/src/modules/workspace/edit-text.d.ts +2 -1
- package/dist/src/modules/workspace/edit-text.d.ts.map +1 -1
- package/dist/src/modules/workspace/edit-text.js +4 -2
- package/dist/src/modules/workspace/edit-text.js.map +1 -1
- package/dist/src/modules/workspace/effects.d.ts +4 -2
- package/dist/src/modules/workspace/effects.d.ts.map +1 -1
- package/dist/src/modules/workspace/effects.js +67 -50
- package/dist/src/modules/workspace/effects.js.map +1 -1
- package/dist/src/modules/workspace/index.d.ts +63 -51
- package/dist/src/modules/workspace/index.d.ts.map +1 -1
- package/dist/src/modules/workspace/index.js +980 -547
- package/dist/src/modules/workspace/index.js.map +1 -1
- package/dist/src/modules/workspace/observe.d.ts +125 -82
- package/dist/src/modules/workspace/observe.d.ts.map +1 -1
- package/dist/src/modules/workspace/observe.js +465 -241
- package/dist/src/modules/workspace/observe.js.map +1 -1
- package/dist/src/modules/workspace/read-page.d.ts.map +1 -1
- package/dist/src/modules/workspace/read-page.js +7 -1
- package/dist/src/modules/workspace/read-page.js.map +1 -1
- package/dist/src/modules/workspace/reconcile.d.ts +7 -1
- package/dist/src/modules/workspace/reconcile.d.ts.map +1 -1
- package/dist/src/modules/workspace/reconcile.js +156 -50
- package/dist/src/modules/workspace/reconcile.js.map +1 -1
- package/dist/src/modules/workspace/result-text.d.ts +1 -0
- package/dist/src/modules/workspace/result-text.d.ts.map +1 -1
- package/dist/src/modules/workspace/result-text.js.map +1 -1
- package/dist/src/modules/workspace/sync.d.ts +9 -0
- package/dist/src/modules/workspace/sync.d.ts.map +1 -1
- package/dist/src/modules/workspace/sync.js +14 -0
- package/dist/src/modules/workspace/sync.js.map +1 -1
- package/dist/src/modules/workspace/types.d.ts +96 -43
- package/dist/src/modules/workspace/types.d.ts.map +1 -1
- package/dist/src/modules/workspace/types.js.map +1 -1
- package/dist/src/modules/workspace/watcher.d.ts.map +1 -1
- package/dist/src/modules/workspace/watcher.js +8 -3
- package/dist/src/modules/workspace/watcher.js.map +1 -1
- package/dist/src/notice-tags.d.ts +79 -0
- package/dist/src/notice-tags.d.ts.map +1 -0
- package/dist/src/notice-tags.js +83 -0
- package/dist/src/notice-tags.js.map +1 -0
- package/dist/src/prose-drafts.d.ts +4 -3
- package/dist/src/prose-drafts.d.ts.map +1 -1
- package/dist/src/prose-drafts.js +3 -2
- package/dist/src/prose-drafts.js.map +1 -1
- package/dist/src/reasoning-loss-notice.d.ts +23 -0
- package/dist/src/reasoning-loss-notice.d.ts.map +1 -0
- package/dist/src/reasoning-loss-notice.js +52 -0
- package/dist/src/reasoning-loss-notice.js.map +1 -0
- package/dist/src/reasoning-loss.d.ts +24 -0
- package/dist/src/reasoning-loss.d.ts.map +1 -0
- package/dist/src/reasoning-loss.js +102 -0
- package/dist/src/reasoning-loss.js.map +1 -0
- package/dist/src/send-tools.d.ts +3 -2
- package/dist/src/send-tools.d.ts.map +1 -1
- package/dist/src/send-tools.js +3 -2
- package/dist/src/send-tools.js.map +1 -1
- package/dist/src/sent-rows.js +1 -1
- package/dist/src/silent-heartbeat.d.ts +1 -53
- package/dist/src/silent-heartbeat.d.ts.map +1 -1
- package/dist/src/silent-heartbeat.js +56 -3
- package/dist/src/silent-heartbeat.js.map +1 -1
- package/dist/src/supplied-text.d.ts +35 -0
- package/dist/src/supplied-text.d.ts.map +1 -0
- package/dist/src/supplied-text.js +141 -0
- package/dist/src/supplied-text.js.map +1 -0
- package/dist/src/thinking-drops.d.ts +4 -11
- package/dist/src/thinking-drops.d.ts.map +1 -1
- package/dist/src/thinking-drops.js +7 -14
- package/dist/src/thinking-drops.js.map +1 -1
- package/dist/src/tool-args.d.ts +12 -0
- package/dist/src/tool-args.d.ts.map +1 -1
- package/dist/src/tool-args.js +39 -4
- package/dist/src/tool-args.js.map +1 -1
- package/dist/src/tool-image-ledger.d.ts.map +1 -1
- package/dist/src/tool-image-ledger.js +2 -1
- package/dist/src/tool-image-ledger.js.map +1 -1
- package/dist/src/tool-presentation.d.ts.map +1 -1
- package/dist/src/tool-presentation.js +5 -4
- package/dist/src/tool-presentation.js.map +1 -1
- package/dist/src/tool-result-guard.d.ts +8 -4
- package/dist/src/tool-result-guard.d.ts.map +1 -1
- package/dist/src/tool-result-guard.js +23 -11
- package/dist/src/tool-result-guard.js.map +1 -1
- package/dist/src/tune-out/coordinator.d.ts +3 -2
- package/dist/src/tune-out/coordinator.d.ts.map +1 -1
- package/dist/src/tune-out/coordinator.js +24 -26
- package/dist/src/tune-out/coordinator.js.map +1 -1
- package/dist/src/tune-out/tools.d.ts +4 -1
- package/dist/src/tune-out/tools.d.ts.map +1 -1
- package/dist/src/types/agent.d.ts +63 -18
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/events.d.ts +18 -8
- package/dist/src/types/events.d.ts.map +1 -1
- package/dist/src/types/framework.d.ts +58 -0
- package/dist/src/types/framework.d.ts.map +1 -1
- package/dist/src/types/module.d.ts +27 -13
- package/dist/src/types/module.d.ts.map +1 -1
- package/dist/src/types/trace.d.ts +34 -1
- package/dist/src/types/trace.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/agent.ts +76 -12
- package/src/api/mcp-server-core.ts +3 -14
- package/src/api/server.ts +11 -5
- package/src/auto-continue.ts +12 -5
- package/src/code-execution/isolate/runner.ts +7 -5
- package/src/code-execution/isolate/scripts.ts +3 -2
- package/src/cut-off-round.ts +98 -0
- package/src/framework.ts +3772 -1138
- package/src/gate/event-gate.ts +705 -60
- package/src/gate/index.ts +9 -1
- package/src/gate/reply-judge.ts +512 -0
- package/src/gate/types.ts +176 -3
- package/src/heartbeat/heartbeat.ts +843 -0
- package/src/heartbeat/reminder-time.ts +107 -0
- package/src/held-writes.ts +3 -3
- package/src/host-presentation.ts +605 -0
- package/src/index.ts +5 -1
- package/src/line-reader.ts +58 -0
- package/src/mcpl/capability-mask.ts +3 -2
- package/src/mcpl/channel-registry.ts +139 -53
- package/src/mcpl/conversation-router.ts +2 -1
- package/src/mcpl/convert-block.ts +17 -4
- package/src/mcpl/hook-orchestrator.ts +4 -3
- package/src/mcpl/inbound-source.ts +45 -70
- package/src/mcpl/modern-connection.ts +11 -7
- package/src/mcpl/protocol-family.ts +24 -3
- package/src/mcpl/push-handler.ts +2 -2
- package/src/mcpl/references.ts +31 -23
- package/src/mcpl/server-connection.ts +76 -34
- package/src/mcpl/skip-reply-wake.ts +35 -0
- package/src/mcpl/tags.ts +13 -2
- package/src/mcpl/tool-presence.ts +149 -82
- package/src/mcpl/tool-signature.ts +64 -32
- package/src/mcpl/toolset-host.ts +212 -110
- package/src/mcpl/toolsets-module.ts +277 -91
- package/src/mcpl/transport.ts +18 -14
- package/src/mcpl/types.ts +32 -13
- package/src/module-registry.ts +14 -9
- package/src/modules/api/index.ts +4 -2
- package/src/modules/discord/index.ts +37 -25
- package/src/modules/history/index.ts +30 -18
- package/src/modules/sender-name.ts +9 -0
- package/src/modules/workspace/answers.ts +151 -0
- package/src/modules/workspace/branch-intent.ts +10 -5
- package/src/modules/workspace/direct-write.ts +59 -23
- package/src/modules/workspace/disk-agreement.ts +52 -21
- package/src/modules/workspace/edit-text.ts +7 -5
- package/src/modules/workspace/effects.ts +69 -50
- package/src/modules/workspace/index.ts +966 -556
- package/src/modules/workspace/observe.ts +497 -242
- package/src/modules/workspace/read-page.ts +7 -1
- package/src/modules/workspace/reconcile.ts +184 -49
- package/src/modules/workspace/result-text.ts +2 -0
- package/src/modules/workspace/sync.ts +16 -0
- package/src/modules/workspace/types.ts +96 -43
- package/src/modules/workspace/watcher.ts +8 -3
- package/src/notice-tags.ts +84 -0
- package/src/prose-drafts.ts +4 -3
- package/src/reasoning-loss-notice.ts +64 -0
- package/src/reasoning-loss.ts +120 -0
- package/src/send-tools.ts +3 -2
- package/src/sent-rows.ts +1 -1
- package/src/silent-heartbeat.ts +4 -3
- package/src/supplied-text.ts +154 -0
- package/src/thinking-drops.ts +10 -16
- package/src/tool-args.ts +38 -4
- package/src/tool-image-ledger.ts +2 -1
- package/src/tool-presentation.ts +5 -4
- package/src/tool-result-guard.ts +26 -11
- package/src/tune-out/coordinator.ts +25 -27
- package/src/tune-out/tools.ts +4 -1
- package/src/types/agent.ts +63 -18
- package/src/types/events.ts +18 -8
- package/src/types/framework.ts +59 -0
- package/src/types/module.ts +28 -13
- package/src/types/trace.ts +36 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-router.d.ts","sourceRoot":"","sources":["../../../src/mcpl/conversation-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;
|
|
1
|
+
{"version":3,"file":"conversation-router.d.ts","sourceRoot":"","sources":["../../../src/mcpl/conversation-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
* logs one `[deprecated]` line when it is configured. Removal is a
|
|
34
34
|
* follow-up.
|
|
35
35
|
*/
|
|
36
|
+
import { NOTICE_TAG } from '../notice-tags.js';
|
|
36
37
|
import { createHash } from 'node:crypto';
|
|
37
38
|
import { destinationKey } from './channel-registry.js';
|
|
38
39
|
/** Logged once by the framework when `FrameworkConfig.conversations` is set. */
|
|
@@ -42,7 +43,7 @@ export const CONVERSATION_ROUTING_DEPRECATION_NOTICE = 'Per-channel conversation
|
|
|
42
43
|
'such channels an @-mention neither binds a fork nor triggers a bound one. Routing still ' +
|
|
43
44
|
'works for now. See anima-research/agent-framework#235.';
|
|
44
45
|
const DEFAULT_IDLE_TTL_MS = 12 * 60 * 60 * 1000;
|
|
45
|
-
export const DEFAULT_CLOSURE_PROMPT =
|
|
46
|
+
export const DEFAULT_CLOSURE_PROMPT = `[${NOTICE_TAG.system}] This engagement is closing due to inactivity. Finalize your ` +
|
|
46
47
|
'work: post any promised results to the channel and record outstanding ' +
|
|
47
48
|
'threads as unresolved. Do not ask follow-up questions.';
|
|
48
49
|
// ============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-router.js","sourceRoot":"","sources":["../../../src/mcpl/conversation-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAmBxE,gFAAgF;AAChF,MAAM,CAAC,MAAM,uCAAuC,GAClD,0FAA0F;IAC1F,0EAA0E;IAC1E,yFAAyF;IACzF,0FAA0F;IAC1F,wDAAwD,CAAC;AA+E3D,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhD,MAAM,CAAC,MAAM,sBAAsB,GACjC,
|
|
1
|
+
{"version":3,"file":"conversation-router.js","sourceRoot":"","sources":["../../../src/mcpl/conversation-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,4 +17,5 @@ import type { McplContentBlock } from './types.js';
|
|
|
17
17
|
* server's address, where it has one.
|
|
18
18
|
*/
|
|
19
19
|
export declare function convertBlock(block: McplContentBlock, provenance: string, serverId: string): ContentBlock;
|
|
20
|
+
export declare function convertBlocks(blocks: readonly McplContentBlock[], provenance: string, serverId: string): ContentBlock[];
|
|
20
21
|
//# sourceMappingURL=convert-block.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-block.d.ts","sourceRoot":"","sources":["../../../src/mcpl/convert-block.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"convert-block.d.ts","sourceRoot":"","sources":["../../../src/mcpl/convert-block.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAaxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGnD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAiFxG;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CAGvH"}
|
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
* for pushed events, channel messages and context injections alike, so a rule
|
|
4
4
|
* about a malformed block holds on all three.
|
|
5
5
|
*/
|
|
6
|
+
import { NOTICE_TAG } from '../notice-tags.js';
|
|
6
7
|
import { AUDIO_NO_DATA_TEXT, AUDIO_NO_MEDIA_TYPE_TEXT, IMAGE_NO_DATA_TEXT, IMAGE_NO_MEDIA_TYPE_TEXT, INLINE_WITHHELD_TEXT, classifyBlock, isInlineContradiction, referenceStubOrNull, unknownBlockText, } from './references.js';
|
|
7
8
|
import { NON_STRING_TEXT_PLACEHOLDER } from './visible-content.js';
|
|
9
|
+
import { markNoticeOpenings } from '../supplied-text.js';
|
|
8
10
|
/**
|
|
9
11
|
* Convert a single MCPL wire-format content block to a membrane ContentBlock.
|
|
10
12
|
* It takes any block but null or undefined without throwing (those two throw,
|
|
@@ -35,7 +37,7 @@ export function convertBlock(block, provenance, serverId) {
|
|
|
35
37
|
// is a claim, one the reference rejects included, as classifyBlock
|
|
36
38
|
// and isInlineContradiction read it: a falsy one such as 0, false
|
|
37
39
|
// or '' stubs too, rather than sending the URI as the image's source.
|
|
38
|
-
return { type: 'text', text: referenceStubOrNull(block, provenance, serverId) ??
|
|
40
|
+
return { type: 'text', text: referenceStubOrNull(block, provenance, serverId) ?? `[${NOTICE_TAG.reference}]` };
|
|
39
41
|
}
|
|
40
42
|
if (isFilledString(block.data) && isFilledString(block.mimeType)) {
|
|
41
43
|
return {
|
|
@@ -60,7 +62,7 @@ export function convertBlock(block, provenance, serverId) {
|
|
|
60
62
|
// RFC-005 uri-form media with a disposition claim, a falsy one
|
|
61
63
|
// included, as for an image (above): stub, do not hand the URI to
|
|
62
64
|
// the provider or inline it.
|
|
63
|
-
return { type: 'text', text: referenceStubOrNull(block, provenance, serverId) ??
|
|
65
|
+
return { type: 'text', text: referenceStubOrNull(block, provenance, serverId) ?? `[${NOTICE_TAG.reference}]` };
|
|
64
66
|
}
|
|
65
67
|
if (isFilledString(block.data) && isFilledString(block.mimeType)) {
|
|
66
68
|
return {
|
|
@@ -78,13 +80,13 @@ export function convertBlock(block, provenance, serverId) {
|
|
|
78
80
|
}
|
|
79
81
|
// RFC-005: reference blocks become bounded stubs — never raw URIs
|
|
80
82
|
// (a signed URL is a bearer credential that looks like a location).
|
|
81
|
-
return { type: 'text', text: referenceStubOrNull(block, provenance, serverId) ??
|
|
83
|
+
return { type: 'text', text: referenceStubOrNull(block, provenance, serverId) ?? `[${NOTICE_TAG.reference}]` };
|
|
82
84
|
}
|
|
83
85
|
default: {
|
|
84
86
|
// MCP's link to a resource isn't one of MCPL's own blocks, but a server
|
|
85
87
|
// can send one, and RFC-005 §8.1 makes it a reference, shown as one.
|
|
86
88
|
if (block.type === 'resource_link') {
|
|
87
|
-
return { type: 'text', text: referenceStubOrNull(block, provenance, serverId) ??
|
|
89
|
+
return { type: 'text', text: referenceStubOrNull(block, provenance, serverId) ?? `[${NOTICE_TAG.reference}]` };
|
|
88
90
|
}
|
|
89
91
|
// Unknown wire block types previously fell off the exhaustive switch
|
|
90
92
|
// and propagated `undefined` into ContentBlock[]. Fail visibly. A type
|
|
@@ -94,6 +96,16 @@ export function convertBlock(block, provenance, serverId) {
|
|
|
94
96
|
}
|
|
95
97
|
}
|
|
96
98
|
}
|
|
99
|
+
export function convertBlocks(blocks, provenance, serverId) {
|
|
100
|
+
const converted = blocks.map((block) => convertBlock(block, provenance, serverId));
|
|
101
|
+
return markNoticeOpenings(converted, (index) => sendersText(blocks[index]));
|
|
102
|
+
}
|
|
103
|
+
function sendersText(block) {
|
|
104
|
+
if (block?.type === 'text')
|
|
105
|
+
return typeof block.text === 'string';
|
|
106
|
+
const c = classifyBlock(block);
|
|
107
|
+
return c.kind === 'embedded' && c.contents.kind === 'block' && c.contents.block.type === 'text';
|
|
108
|
+
}
|
|
97
109
|
/** A string with something in it: the only data, mimeType or uri a block's
|
|
98
110
|
* source is built from, and the only uri that makes it a reference. Anything
|
|
99
111
|
* else a sender puts there leaves the block without it, so conversion never
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-block.js","sourceRoot":"","sources":["../../../src/mcpl/convert-block.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"convert-block.js","sourceRoot":"","sources":["../../../src/mcpl/convert-block.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-orchestrator.d.ts","sourceRoot":"","sources":["../../../src/mcpl/hook-orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"hook-orchestrator.d.ts","sourceRoot":"","sources":["../../../src/mcpl/hook-orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,KAAK,EAGV,qBAAqB,EAErB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AA8DlE,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,SAAS,CAAS;IAC1B,0EAA0E;IAC1E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,oGAAoG;IACpG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IAEpD,YAAY,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAG7E;IAED;;;;OAIG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;;;;;;;;;OAWG;IACG,eAAe,CACnB,MAAM,EAAE,qBAAqB,EAC7B,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,qBAAqB,CAAC,UAAU,CAAC,GACpE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAqB7B;IAED;;;;;;OAMG;IACH,aAAa,CAAC,MAAM,EAAE,wBAAwB,GAAG,IAAI,CASpD;YAMa,qBAAqB;IAqGnC;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IAgBrB;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;CAY3B"}
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
* - Parallel fan-out with per-server timeouts
|
|
13
13
|
* - Loop prevention: rejects inference/request while inside a hook
|
|
14
14
|
*/
|
|
15
|
-
import {
|
|
15
|
+
import { convertBlocks } from './convert-block.js';
|
|
16
|
+
import { markedText } from '../supplied-text.js';
|
|
16
17
|
import { CapabilityGrant } from './capability-grant.js';
|
|
17
18
|
import { logDetail, logValue } from './log-value.js';
|
|
18
19
|
/** Timeout for beforeInference per server (fail-open). */
|
|
@@ -43,9 +44,9 @@ function withTimeout(promise, ms, label) {
|
|
|
43
44
|
*/
|
|
44
45
|
function convertContent(content, serverId) {
|
|
45
46
|
if (typeof content === 'string') {
|
|
46
|
-
return [{ type: 'text', text: content }];
|
|
47
|
+
return [{ type: 'text', text: markedText(content) }];
|
|
47
48
|
}
|
|
48
|
-
return content
|
|
49
|
+
return convertBlocks(content, 'attachment on context injection', serverId);
|
|
49
50
|
}
|
|
50
51
|
/**
|
|
51
52
|
* Convert an MCPL wire-format context injection, from the server `serverId`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-orchestrator.js","sourceRoot":"","sources":["../../../src/mcpl/hook-orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"hook-orchestrator.js","sourceRoot":"","sources":["../../../src/mcpl/hook-orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -138,24 +138,42 @@ export declare function canonicalJson(value: unknown): string;
|
|
|
138
138
|
* The version identity of a delivered body (agreed with the receipts lane,
|
|
139
139
|
* room-220 #46752–#47210): SHA-256 hex of `canonicalJson([blocks])` over the
|
|
140
140
|
* ContentBlock[] the framework stores for the body — after MCPL conversion,
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
141
|
+
* which marks the server's text at the framework's notice openings
|
|
142
|
+
* (supplied-text.ts), before any host decoration is added and before storage
|
|
143
|
+
* shards it — with
|
|
144
|
+
* each block as the store keeps it, which context-manager's `blockAsStored`
|
|
145
|
+
* gives. So a body hashes alike as delivered, as handed to storage, and as
|
|
146
|
+
* read back unsharded from the store with its blobs resolved, except one
|
|
147
|
+
* whose blocks the store changes together: when it mends a `tool_use` whose
|
|
148
|
+
* input isn't an object, it also releases a raw replay form (`rawXml`,
|
|
149
|
+
* `rawItem`) that the message's other blocks share, which no one block's
|
|
150
|
+
* stored form shows. A body an MCPL lane stamps is never one. A block the
|
|
151
|
+
* store refuses on write, a `blob_ref` among them, is digested as given. The
|
|
152
|
+
* one-element array keeps the framing an undecorated, unsharded stored copy
|
|
153
|
+
* has always hashed to, so a stamped copy and an older copy of the same body
|
|
154
|
+
* share a version where the store keeps the body as it did then.
|
|
155
|
+
*
|
|
156
|
+
* A digest is a digest under the context-manager release that computed it: a
|
|
157
|
+
* release that changes what the store keeps, such as its set of image
|
|
158
|
+
* signatures, changes the digest of a body it touches.
|
|
147
159
|
*
|
|
148
160
|
* Ingestion stamps it as `metadata.sourceBodyDigest`, and the same function
|
|
149
161
|
* over exactly the blocks handed to storage (decorations included) as
|
|
150
162
|
* `metadata.storedBodyDigest`, on both MCPL lanes. Both live outside the
|
|
151
163
|
* frozen admission envelope: they describe the body actually delivered (a
|
|
152
164
|
* materialization, a correction), not the admission. Neither proves later
|
|
153
|
-
* presence or completeness
|
|
165
|
+
* presence or completeness. An unsharded stored copy that no longer hashes
|
|
154
166
|
* to its storedBodyDigest was changed after delivery (editMessage keeps
|
|
155
|
-
* metadata)
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
*
|
|
167
|
+
* metadata), or holds blocks the store changes together, or its digest was
|
|
168
|
+
* taken under a release that kept some block of it differently: a
|
|
169
|
+
* context-manager release that changed a stored form, or an agent-framework
|
|
170
|
+
* release from 0.24.0 up to the one that brought in blockAsStored, which
|
|
171
|
+
* took stored forms from a copy of the store's transform. Digests already
|
|
172
|
+
* stamped are never recomputed. A body the store shards carries the whole
|
|
173
|
+
* body's two digests on every shard, and no shard hashes to them. Check a
|
|
174
|
+
* copy read back with its blobs resolved (getAllMessages, getMessage, or
|
|
175
|
+
* getMessageWindow without `resolveBlobs: false`): a blob reference never
|
|
176
|
+
* matches.
|
|
159
177
|
*
|
|
160
178
|
* Exported from the package root, so a consumer checks a copy against either
|
|
161
179
|
* field with this same function rather than a copy of it.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbound-source.d.ts","sourceRoot":"","sources":["../../../src/mcpl/inbound-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;
|
|
1
|
+
{"version":3,"file":"inbound-source.d.ts","sourceRoot":"","sources":["../../../src/mcpl/inbound-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH;;;;+CAI+C;AAC/C,MAAM,MAAM,WAAW,GAAG,mBAAmB,GAAG,YAAY,CAAC;AAE7D,oDAAoD;AACpD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,6DAA6D;IAC7D,IAAI,EAAE,WAAW,CAAC;IAClB,oDAAoD;IACpD,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAC;IACjB;;qFAEiF;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB;gFAC4E;IAC5E,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,uEAAuE;IACvE,YAAY,CAAC,EAAE,IAAI,CAAC;CACrB;AAED,mFAAmF;AACnF,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,YAAY,CAAC,EAAE,IAAI,CAAC;CACrB;AAED,2EAA2E;AAC3E,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;AAEhG;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB;IACxC,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;CAC9C;AAED,yCAAyC;AACzC,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAMlD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAwB9E;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAMzE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUpD;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAEnE"}
|
|
@@ -21,6 +21,8 @@
|
|
|
21
21
|
* key: `eventId` is present only when the producer supplied one.
|
|
22
22
|
*/
|
|
23
23
|
import { createHash } from 'node:crypto';
|
|
24
|
+
import { blockAsStored, MalformedContentError } from '@animalabs/context-manager';
|
|
25
|
+
import { logDetail, logValue } from './log-value.js';
|
|
24
26
|
/** Metadata key the framework stamps. */
|
|
25
27
|
export const INBOUND_SOURCE_KEY = 'inboundSource';
|
|
26
28
|
const isText = (v) => typeof v === 'string' && v.length > 0;
|
|
@@ -117,92 +119,63 @@ export function canonicalJson(value) {
|
|
|
117
119
|
return JSON.stringify(value) ?? 'null';
|
|
118
120
|
}
|
|
119
121
|
/**
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
* 'base64', data, mediaType } }` and nothing else, its data re-encoded from
|
|
124
|
-
* the decoded bytes, and an image's media type taken from its bytes'
|
|
125
|
-
* signature where they have one. Any other block comes back as it was given,
|
|
126
|
-
* except a store-internal `blob_ref` from an unresolved read, which resolves
|
|
127
|
-
* to inline media by default. It is digested as given here, so an unresolved
|
|
128
|
-
* read and its resolved form differ. Context-manager refuses caller-supplied
|
|
129
|
-
* blob_ref writes; the MCPL lanes never store one.
|
|
122
|
+
* blockAsStored throws a `MalformedContentError` for a block the store
|
|
123
|
+
* refuses on write, a caller-supplied `blob_ref` among them. Such a block
|
|
124
|
+
* has no stored form, and whatever is thrown, it is digested as given.
|
|
130
125
|
*/
|
|
131
126
|
function storedBlock(block) {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
? media.source?.type !== 'url'
|
|
135
|
-
: media?.type === 'document' || media?.type === 'audio' || media?.type === 'video';
|
|
136
|
-
const source = media?.source;
|
|
137
|
-
if (!blob || typeof source?.data !== 'string')
|
|
138
|
-
return block;
|
|
139
|
-
const data = canonicalBase64(source.data);
|
|
140
|
-
const mediaType = media.type === 'image'
|
|
141
|
-
? sniffRasterImageMediaType(Buffer.from(data.slice(0, 32), 'base64')) ?? source.mediaType
|
|
142
|
-
: source.mediaType;
|
|
143
|
-
return { type: media.type, source: { type: 'base64', data, mediaType } };
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Base64 as the store writes it back from the decoded bytes: padded, with no
|
|
147
|
-
* whitespace, the standard alphabet and zero unused bits. Data already in
|
|
148
|
-
* that form, as every stored copy's is, is returned without decoding it all.
|
|
149
|
-
*/
|
|
150
|
-
function canonicalBase64(data) {
|
|
151
|
-
if (data.length % 4 === 0 && /^[A-Za-z0-9+/]*={0,2}$/.test(data)) {
|
|
152
|
-
const last = data.slice(-4);
|
|
153
|
-
if (Buffer.from(last, 'base64').toString('base64') === last)
|
|
154
|
-
return data;
|
|
127
|
+
try {
|
|
128
|
+
return blockAsStored(block);
|
|
155
129
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
function sniffRasterImageMediaType(bytes) {
|
|
164
|
-
if (bytes.length >= 8 &&
|
|
165
|
-
bytes[0] === 0x89 && bytes[1] === 0x50 && bytes[2] === 0x4e && bytes[3] === 0x47 &&
|
|
166
|
-
bytes[4] === 0x0d && bytes[5] === 0x0a && bytes[6] === 0x1a && bytes[7] === 0x0a) {
|
|
167
|
-
return 'image/png';
|
|
168
|
-
}
|
|
169
|
-
if (bytes.length >= 3 && bytes[0] === 0xff && bytes[1] === 0xd8 && bytes[2] === 0xff) {
|
|
170
|
-
return 'image/jpeg';
|
|
171
|
-
}
|
|
172
|
-
if (bytes.length >= 6) {
|
|
173
|
-
const signature = Buffer.from(bytes.subarray(0, 6)).toString('ascii');
|
|
174
|
-
if (signature === 'GIF87a' || signature === 'GIF89a')
|
|
175
|
-
return 'image/gif';
|
|
176
|
-
}
|
|
177
|
-
if (bytes.length >= 12 &&
|
|
178
|
-
Buffer.from(bytes.subarray(0, 4)).toString('ascii') === 'RIFF' &&
|
|
179
|
-
Buffer.from(bytes.subarray(8, 12)).toString('ascii') === 'WEBP') {
|
|
180
|
-
return 'image/webp';
|
|
130
|
+
catch (err) {
|
|
131
|
+
if (!(err instanceof MalformedContentError)) {
|
|
132
|
+
const { name, message } = (err ?? {});
|
|
133
|
+
console.error(`[stored-digest-as-given] error=${logValue(typeof name === 'string' ? name : typeof err)}: ` +
|
|
134
|
+
logDetail(typeof message === 'string' ? message : ''));
|
|
135
|
+
}
|
|
136
|
+
return block;
|
|
181
137
|
}
|
|
182
|
-
return null;
|
|
183
138
|
}
|
|
184
139
|
/**
|
|
185
140
|
* The version identity of a delivered body (agreed with the receipts lane,
|
|
186
141
|
* room-220 #46752–#47210): SHA-256 hex of `canonicalJson([blocks])` over the
|
|
187
142
|
* ContentBlock[] the framework stores for the body — after MCPL conversion,
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
*
|
|
143
|
+
* which marks the server's text at the framework's notice openings
|
|
144
|
+
* (supplied-text.ts), before any host decoration is added and before storage
|
|
145
|
+
* shards it — with
|
|
146
|
+
* each block as the store keeps it, which context-manager's `blockAsStored`
|
|
147
|
+
* gives. So a body hashes alike as delivered, as handed to storage, and as
|
|
148
|
+
* read back unsharded from the store with its blobs resolved, except one
|
|
149
|
+
* whose blocks the store changes together: when it mends a `tool_use` whose
|
|
150
|
+
* input isn't an object, it also releases a raw replay form (`rawXml`,
|
|
151
|
+
* `rawItem`) that the message's other blocks share, which no one block's
|
|
152
|
+
* stored form shows. A body an MCPL lane stamps is never one. A block the
|
|
153
|
+
* store refuses on write, a `blob_ref` among them, is digested as given. The
|
|
154
|
+
* one-element array keeps the framing an undecorated, unsharded stored copy
|
|
155
|
+
* has always hashed to, so a stamped copy and an older copy of the same body
|
|
156
|
+
* share a version where the store keeps the body as it did then.
|
|
157
|
+
*
|
|
158
|
+
* A digest is a digest under the context-manager release that computed it: a
|
|
159
|
+
* release that changes what the store keeps, such as its set of image
|
|
160
|
+
* signatures, changes the digest of a body it touches.
|
|
194
161
|
*
|
|
195
162
|
* Ingestion stamps it as `metadata.sourceBodyDigest`, and the same function
|
|
196
163
|
* over exactly the blocks handed to storage (decorations included) as
|
|
197
164
|
* `metadata.storedBodyDigest`, on both MCPL lanes. Both live outside the
|
|
198
165
|
* frozen admission envelope: they describe the body actually delivered (a
|
|
199
166
|
* materialization, a correction), not the admission. Neither proves later
|
|
200
|
-
* presence or completeness
|
|
167
|
+
* presence or completeness. An unsharded stored copy that no longer hashes
|
|
201
168
|
* to its storedBodyDigest was changed after delivery (editMessage keeps
|
|
202
|
-
* metadata)
|
|
203
|
-
*
|
|
204
|
-
*
|
|
205
|
-
*
|
|
169
|
+
* metadata), or holds blocks the store changes together, or its digest was
|
|
170
|
+
* taken under a release that kept some block of it differently: a
|
|
171
|
+
* context-manager release that changed a stored form, or an agent-framework
|
|
172
|
+
* release from 0.24.0 up to the one that brought in blockAsStored, which
|
|
173
|
+
* took stored forms from a copy of the store's transform. Digests already
|
|
174
|
+
* stamped are never recomputed. A body the store shards carries the whole
|
|
175
|
+
* body's two digests on every shard, and no shard hashes to them. Check a
|
|
176
|
+
* copy read back with its blobs resolved (getAllMessages, getMessage, or
|
|
177
|
+
* getMessageWindow without `resolveBlobs: false`): a blob reference never
|
|
178
|
+
* matches.
|
|
206
179
|
*
|
|
207
180
|
* Exported from the package root, so a consumer checks a copy against either
|
|
208
181
|
* field with this same function rather than a copy of it.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbound-source.js","sourceRoot":"","sources":["../../../src/mcpl/inbound-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"inbound-source.js","sourceRoot":"","sources":["../../../src/mcpl/inbound-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modern-connection.d.ts","sourceRoot":"","sources":["../../../src/mcpl/modern-connection.ts"],"names":[],"mappings":"AAgDA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAUL,KAAK,cAAc,EAMpB,MAAM,8BAA8B,CAAC;AAKtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAatE;yEACyE;AACzE,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AA6LD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,QAAQ,GAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAmC,GAC/D,MAAM,CAKR;
|
|
1
|
+
{"version":3,"file":"modern-connection.d.ts","sourceRoot":"","sources":["../../../src/mcpl/modern-connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,7 +50,7 @@ import { EventEmitter } from 'node:events';
|
|
|
50
50
|
import { Client, InsufficientScopeError, SdkError, SdkErrorCode, SdkHttpError, StreamableHTTPClientTransport, UnsupportedProtocolVersionError, parseJSONRPCMessage, } from '@modelcontextprotocol/client';
|
|
51
51
|
import { StdioTransport } from './transport.js';
|
|
52
52
|
import { McplProtocolVersionError, McplRequestError, McplUnreapedLaunchError } from './server-connection.js';
|
|
53
|
-
import { LEGACY_MCP_PROTOCOL_VERSION, MAX_TIMER_MS, MODERN_MCP_PROTOCOL_VERSION, checkServerConfig, describeCredentialError, maskedError, noteDialSent, redactServerText, redactedData, serverTextRedactor } from './protocol-family.js';
|
|
53
|
+
import { LEGACY_MCP_PROTOCOL_VERSION, MAX_TIMER_MS, MODERN_MCP_PROTOCOL_VERSION, checkServerConfig, describeCredentialError, logDroppedLine, maskedError, noteDialSent, redactServerText, redactedData, serverTextRedactor } from './protocol-family.js';
|
|
54
54
|
import { boundedForLog } from './errors.js';
|
|
55
55
|
import { logDetail, logValue, logValueRedacted, loggedCode } from './log-value.js';
|
|
56
56
|
const DEFAULT_REQUEST_TIMEOUT_MS = 60_000;
|
|
@@ -245,8 +245,9 @@ export function malformedLineDiagnostic(config, text, error, recorded = serverTe
|
|
|
245
245
|
}
|
|
246
246
|
/**
|
|
247
247
|
* SDK `Transport` over Connectome's stdio spawner. Framing is the same
|
|
248
|
-
* newline-delimited JSON-RPC as legacy. Lines that are not JSON are
|
|
249
|
-
*
|
|
248
|
+
* newline-delimited JSON-RPC as legacy. Lines that are not JSON are dropped,
|
|
249
|
+
* and the first three on a connection that aren't blank are logged by their
|
|
250
|
+
* length, as the legacy engine does. Because this is a custom transport, the
|
|
250
251
|
* SDK runs `server/discover` on this very process instead of starting a
|
|
251
252
|
* throwaway copy, and cancels with `notifications/cancelled`, which is the
|
|
252
253
|
* stdio binding's mechanism.
|
|
@@ -280,15 +281,18 @@ class SpawnerStdioTransport {
|
|
|
280
281
|
const line = await this.spawning;
|
|
281
282
|
this.line = line;
|
|
282
283
|
line.on('line', (text) => {
|
|
283
|
-
// A line that isn't JSON is
|
|
284
|
-
//
|
|
285
|
-
//
|
|
286
|
-
//
|
|
284
|
+
// A line that isn't JSON is dropped, and the first three on a
|
|
285
|
+
// connection that aren't blank are logged by their length, as the
|
|
286
|
+
// legacy engine does. A line that is JSON but not a JSON-RPC message
|
|
287
|
+
// (`null`, an array, a bare value) is a diagnostic. It must never reach
|
|
288
|
+
// a handler that assumes the shape: thrown from this callback, it would
|
|
289
|
+
// end the host.
|
|
287
290
|
let parsed;
|
|
288
291
|
try {
|
|
289
292
|
parsed = JSON.parse(text);
|
|
290
293
|
}
|
|
291
294
|
catch {
|
|
295
|
+
logDroppedLine(this.config.id, text, 'unparsed', line);
|
|
292
296
|
return;
|
|
293
297
|
}
|
|
294
298
|
let message;
|