Found by a layer-map audit (2026-08-22). The OLD coordination layer gives analysts real trace access: registry lenses get a rehydrated TraceAnalysisStore (workerTraceAnalysisStore(evidence, blobs), coordination.ts:1416) and agent analysts get the span JSON inlined into their task (coordination.ts:1126-1137). The NEW engine is strictly weaker: an analyzes edge folds only the ref (fold.ts copies settle.traceRef) and consumeWave renders it as the literal string trace of <node>: <hash> into the task envelope — no blobs.get, no store, for agents and scripts alike. scriptKind declares effects: [] and codemode grants only caller-declared operations, so no engine node can read trace bytes at all.
Direction, not built yet (deliberately — scope before machinery): either (a) a traceStore host effect a kind may declare, resolved by the scheduler from the run's blob store via the existing sanctioned reader workerTraceAnalysisStore, or (b) analyzes-edge span inlining to match the old layer's agent-analyst behaviour. (a) is the grain: effects are the engine's extension seam, and the reader already exists.
Acceptance: a script node bound by an analyzes edge can count the source's tool spans in a test, offline.
Found by a layer-map audit (2026-08-22). The OLD coordination layer gives analysts real trace access: registry lenses get a rehydrated
TraceAnalysisStore(workerTraceAnalysisStore(evidence, blobs), coordination.ts:1416) and agent analysts get the span JSON inlined into their task (coordination.ts:1126-1137). The NEW engine is strictly weaker: an analyzes edge folds only the ref (fold.tscopiessettle.traceRef) andconsumeWaverenders it as the literal stringtrace of <node>: <hash>into the task envelope — noblobs.get, no store, for agents and scripts alike.scriptKinddeclareseffects: []and codemode grants only caller-declared operations, so no engine node can read trace bytes at all.Direction, not built yet (deliberately — scope before machinery): either (a) a
traceStorehost effect a kind may declare, resolved by the scheduler from the run's blob store via the existing sanctioned readerworkerTraceAnalysisStore, or (b) analyzes-edge span inlining to match the old layer's agent-analyst behaviour. (a) is the grain: effects are the engine's extension seam, and the reader already exists.Acceptance: a script node bound by an analyzes edge can count the source's tool spans in a test, offline.