@graphrefly/graphrefly 0.19.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +20 -3
  2. package/dist/{chunk-JC2SN46B.js → chunk-2UDLYZHT.js} +3 -3
  3. package/dist/{chunk-YXR3WW3Q.js → chunk-4MQ2J6IG.js} +4 -4
  4. package/dist/{chunk-YXR3WW3Q.js.map → chunk-4MQ2J6IG.js.map} +1 -1
  5. package/dist/{chunk-XUOY3YKN.js → chunk-7IGHIFTT.js} +2 -2
  6. package/dist/{chunk-AHRKWMNI.js → chunk-DOSLSFKL.js} +3 -3
  7. package/dist/{chunk-BER7UYLM.js → chunk-ECN37NVS.js} +161 -199
  8. package/dist/chunk-ECN37NVS.js.map +1 -0
  9. package/dist/{chunk-YLR5JUJZ.js → chunk-G66H6ZRK.js} +3 -3
  10. package/dist/{chunk-IRZAGZUB.js → chunk-VOQFK7YN.js} +26 -2
  11. package/dist/chunk-VOQFK7YN.js.map +1 -0
  12. package/dist/{chunk-OO5QOAXI.js → chunk-XWBVAO2R.js} +22 -9
  13. package/dist/chunk-XWBVAO2R.js.map +1 -0
  14. package/dist/{chunk-UW77D7SP.js → chunk-ZTCDY5NQ.js} +3 -3
  15. package/dist/compat/nestjs/index.cjs +15 -6
  16. package/dist/compat/nestjs/index.cjs.map +1 -1
  17. package/dist/compat/nestjs/index.js +7 -7
  18. package/dist/core/index.cjs +3 -3
  19. package/dist/core/index.cjs.map +1 -1
  20. package/dist/core/index.d.cts +1 -1
  21. package/dist/core/index.d.ts +1 -1
  22. package/dist/core/index.js +3 -3
  23. package/dist/extra/index.cjs +183 -199
  24. package/dist/extra/index.cjs.map +1 -1
  25. package/dist/extra/index.d.cts +1 -1
  26. package/dist/extra/index.d.ts +1 -1
  27. package/dist/extra/index.js +7 -3
  28. package/dist/graph/index.cjs +1 -1
  29. package/dist/graph/index.cjs.map +1 -1
  30. package/dist/graph/index.js +4 -4
  31. package/dist/{index-CvKzv0AW.d.ts → index-BHfg_Ez3.d.ts} +1 -1
  32. package/dist/{index-BBUYZfJ1.d.cts → index-Bc_diYYJ.d.cts} +1 -1
  33. package/dist/{index-BnkMgNNa.d.ts → index-DuN3bhtm.d.ts} +47 -2
  34. package/dist/{index-Bjh5C1Tp.d.cts → index-SFzE_KTa.d.cts} +47 -2
  35. package/dist/index.cjs +463 -281
  36. package/dist/index.cjs.map +1 -1
  37. package/dist/index.d.cts +275 -10
  38. package/dist/index.d.ts +275 -10
  39. package/dist/index.js +284 -90
  40. package/dist/index.js.map +1 -1
  41. package/dist/patterns/reactive-layout/index.cjs +1 -1
  42. package/dist/patterns/reactive-layout/index.cjs.map +1 -1
  43. package/dist/patterns/reactive-layout/index.js +4 -4
  44. package/package.json +3 -2
  45. package/dist/chunk-BER7UYLM.js.map +0 -1
  46. package/dist/chunk-IRZAGZUB.js.map +0 -1
  47. package/dist/chunk-OO5QOAXI.js.map +0 -1
  48. /package/dist/{chunk-JC2SN46B.js.map → chunk-2UDLYZHT.js.map} +0 -0
  49. /package/dist/{chunk-XUOY3YKN.js.map → chunk-7IGHIFTT.js.map} +0 -0
  50. /package/dist/{chunk-AHRKWMNI.js.map → chunk-DOSLSFKL.js.map} +0 -0
  51. /package/dist/{chunk-YLR5JUJZ.js.map → chunk-G66H6ZRK.js.map} +0 -0
  52. /package/dist/{chunk-UW77D7SP.js.map → chunk-ZTCDY5NQ.js.map} +0 -0
package/dist/index.d.cts CHANGED
@@ -4,10 +4,10 @@ import { i as index$b, c as cqrs } from './index-BjtlNirP.cjs';
4
4
  import { Ref, WatchSource } from 'vue';
5
5
  import { G as Graph, a as GraphOptions, b as GraphAutoCheckpointHandle, A as AutoCheckpointAdapter, c as GraphAutoCheckpointOptions, d as GraphProfileResult, e as GraphProfileOptions } from './graph-KsTe57nI.cjs';
6
6
  export { D as DescribeFilter, f as GRAPH_META_SEGMENT, g as GraphActorOptions, h as GraphCheckpointRecord, i as GraphDescribeOptions, j as GraphDescribeOutput, k as GraphDiagramDirection, l as GraphDiagramOptions, m as GraphDiffChange, n as GraphDiffResult, o as GraphDumpOptions, p as GraphFactoryContext, q as GraphNodeFactory, r as GraphObserveAll, s as GraphObserveOne, t as GraphPersistSnapshot, N as NodeProfile, O as ObserveDetail, u as ObserveEvent, v as ObserveOptions, w as ObserveResult, x as ObserveTheme, y as ObserveThemeName, R as ReachableDirection, z as ReachableOptions, T as TraceEntry, B as graphProfile, C as reachable } from './graph-KsTe57nI.cjs';
7
- import { N as NodeFn } from './index-BBUYZfJ1.cjs';
8
- export { B as BridgeOptions, D as DEFAULT_DOWN, a as DownStrategy, b as DynGet, c as DynamicNodeFn, d as DynamicNodeImpl, e as DynamicNodeOptions, P as PipeOperator, R as ResettableTimer, f as batch, g as bridge, i as core, h as derived, j as downWithBatch, k as dynamicNode, l as effect, m as isBatching, n as monotonicNs, o as node, p as partitionForBatch, q as pipe, r as producer, s as state, w as wallClockNs } from './index-BBUYZfJ1.cjs';
9
- import { N as NodeInput, D as DistillBundle, E as Extraction } from './index-Bjh5C1Tp.cjs';
10
- export { A as AdapterHandlers, a as AsyncSourceOpts, B as BackoffPreset, b as BackoffStrategy, c as BatchMessage, d as BridgeMessage, e as BufferedSinkHandle, C as CSVRow, f as CacheEvictionPolicy, g as CacheTier, h as CascadingCache, i as CascadingCacheOptions, j as CheckpointAdapter, k as CheckpointToRedisOptions, l as CheckpointToS3Options, m as CircuitBreaker, n as CircuitBreakerOptions, o as CircuitOpenError, p as CircuitState, q as ClickHouseClientLike, r as ClickHouseInsertClientLike, s as ClickHouseRow, t as CronSchedule, u as DictCheckpointAdapter, v as DistillOptions, w as DrizzleQueryLike, x as ErrorMessage, y as EventTargetLike, z as ExponentialBackoffOptions, F as FSEvent, G as FSEventType, H as FileCheckpointAdapter, I as FileWriterLike, J as FromCSVOptions, K as FromClickHouseWatchOptions, L as FromCronOptions, M as FromDrizzleOptions, O as FromFSWatchOptions, P as FromGitHookOptions, Q as FromHTTPOptions, R as FromKafkaOptions, S as FromKyselyOptions, T as FromMCPOptions, U as FromNATSOptions, V as FromNDJSONOptions, W as FromOTelOptions, X as FromPrismaOptions, Y as FromPrometheusOptions, Z as FromPulsarOptions, _ as FromRabbitMQOptions, $ as FromRedisStreamOptions, a0 as FromSqliteOptions, a1 as FromStatsDOptions, a2 as FromSyslogOptions, a3 as GitEvent, a4 as GitHookType, a5 as HTTPBundle, a6 as IndexRow, a7 as IndexedDbCheckpointSpec, a8 as InitMessage, a9 as JitterMode, aa as KafkaConsumerLike, ab as KafkaMessage, ac as KafkaProducerLike, ad as KyselyQueryLike, ae as LokiClientLike, af as LokiStream, ag as MCPClientLike, ah as MemoryCheckpointAdapter, ai as MergeMapOptions, aj as MongoCollectionLike, ak as NATSClientLike, al as NATSMessage, am as NATSSubscriptionLike, an as NS_PER_MS, ao as NS_PER_SEC, ap as OTelBundle, aq as OTelLog, ar as OTelMetric, as as OTelRegister, at as OTelSpan, au as PostgresClientLike, av as PrismaModelLike, aw as PrometheusMetric, ax as PubSubHub, ay as PulsarConsumerLike, az as PulsarMessage, aA as PulsarProducerLike, aB as RabbitMQChannelLike, aC as RabbitMQMessage, aD as ReactiveIndexBundle, aE as ReactiveIndexOptions, aF as ReactiveListBundle, aG as ReactiveListOptions, aH as ReactiveLogBundle, aI as ReactiveLogOptions, aJ as ReactiveMapBundle, aK as ReactiveMapOptions, aL as ReadyMessage, aM as RedisCheckpointClientLike, aN as RedisClientLike, aO as RedisStreamEntry, aP as RetryOptions, aQ as S3ClientLike, aR as SignalMessage, aS as SinkHandle, aT as SinkTransportError, aU as SqliteCheckpointAdapter, aV as SqliteDbLike, aW as StatsDMetric, aX as StatsDRegister, aY as StatusValue, aZ as SyslogMessage, a_ as SyslogRegister, a$ as TapObserver, b0 as TempoClientLike, b1 as ThrottleOptions, b2 as TieredStorage, b3 as TieredStorageOptions, b4 as TimeoutError, b5 as ToCSVOptions, b6 as ToClickHouseOptions, b7 as ToFileOptions, b8 as ToKafkaOptions, b9 as ToLokiOptions, ba as ToMongoOptions, bb as ToNATSOptions, bc as ToPostgresOptions, bd as ToPulsarOptions, be as ToRabbitMQOptions, bf as ToRedisStreamOptions, bg as ToS3Options, bh as ToSSEOptions, bi as ToSqliteOptions, bj as ToTempoOptions, bk as ToWebSocketOptions, bl as ToWebSocketTransportError, bm as TokenBucket, bn as ValueMessage, bo as VerifiableBundle, bp as VerifiableOptions, bq as VerifyValue, br as WatermarkController, bs as WatermarkOptions, bt as WebSocketLike, bu as WebSocketMessageEventLike, bv as WebSocketRegister, bw as WebhookRegister, bx as WithBreakerBundle, by as WithStatusBundle, bz as WorkerBridge, bA as WorkerBridgeOptions, bB as WorkerSelfHandle, bC as WorkerSelfOptions, bD as WorkerTransport, bE as audit, bF as buffer, bG as bufferCount, bH as bufferTime, bI as cache, bJ as cached, bK as cascadingCache, bL as catchError, bM as checkpointNodeValue, bN as checkpointToRedis, bO as checkpointToS3, bP as circuitBreaker, bQ as combine, bR as combineLatest, bS as concat, bT as concatMap, bU as constant, bV as createTransport, bW as createWatermarkController, bX as debounce, bY as debounceTime, bZ as decorrelatedJitter, b_ as delay, b$ as deserializeError, c0 as distill, c1 as distinctUntilChanged, c2 as elementAt, c3 as empty, c4 as escapeRegexChar, c5 as exhaustMap, c6 as exponential, c7 as extra, c8 as fallback, c9 as fibonacci, ca as filter, cb as find, cc as first, cd as firstValueFrom, ce as firstWhere, cf as flatMap, cg as forEach, ch as fromAny, ci as fromAsyncIter, cj as fromCSV, ck as fromClickHouseWatch, cl as fromCron, cm as fromDrizzle, cn as fromEvent, co as fromFSWatch, cp as fromGitHook, cq as fromHTTP, cr as fromIDBRequest, cs as fromIDBTransaction, ct as fromIter, cu as fromKafka, cv as fromKysely, cw as fromMCP, cx as fromNATS, cy as fromNDJSON, cz as fromOTel, cA as fromPrisma, cB as fromPrometheus, cC as fromPromise, cD as fromPulsar, cE as fromRabbitMQ, cF as fromRedisStream, cG as fromSqlite, cH as fromStatsD, cI as fromSyslog, cJ as fromTimer, cK as fromWebSocket, cL as fromWebhook, cM as globToRegExp, cN as interval, cO as last, cP as linear, cQ as logSlice, cR as lru, cS as map, cT as matchesAnyPattern, cU as matchesCron, cV as merge, cW as mergeMap, cX as nameToSignal, cY as never, cZ as of, c_ as pairwise, c$ as parseCron, d0 as parsePrometheusText, d1 as parseStatsD, d2 as parseSyslog, d3 as pausable, d4 as pubsub, d5 as race, d6 as rateLimiter, d7 as reactiveIndex, d8 as reactiveList, d9 as reactiveLog, da as reactiveMap, db as reduce, dc as repeat, dd as replay, de as rescue, df as resolveBackoffPreset, dg as restoreGraphCheckpoint, dh as restoreGraphCheckpointIndexedDb, di as retry, dj as sample, dk as saveGraphCheckpoint, dl as saveGraphCheckpointIndexedDb, dm as scan, dn as serializeError, dp as share, dq as shareReplay, dr as signalToName, ds as skip, dt as switchMap, du as take, dv as takeUntil, dw as takeWhile, dx as tap, dy as throttle, dz as throttleTime, dA as throwError, dB as tieredStorage, dC as timeout, dD as toArray, dE as toCSV, dF as toClickHouse, dG as toFile, dH as toKafka, dI as toLoki, dJ as toMongo, dK as toNATS, dL as toPostgres, dM as toPulsar, dN as toRabbitMQ, dO as toRedisStream, dP as toS3, dQ as toSSE, dR as toSqlite, dS as toTempo, dT as toWebSocket, dU as tokenBucket, dV as tokenTracker, dW as valve, dX as verifiable, dY as window, dZ as windowCount, d_ as windowTime, d$ as withBreaker, e0 as withLatestFrom, e1 as withMaxAttempts, e2 as withStatus, e3 as workerBridge, e4 as workerSelf, e5 as zip } from './index-Bjh5C1Tp.cjs';
7
+ import { N as NodeFn } from './index-Bc_diYYJ.cjs';
8
+ export { B as BridgeOptions, D as DEFAULT_DOWN, a as DownStrategy, b as DynGet, c as DynamicNodeFn, d as DynamicNodeImpl, e as DynamicNodeOptions, P as PipeOperator, R as ResettableTimer, f as batch, g as bridge, i as core, h as derived, j as downWithBatch, k as dynamicNode, l as effect, m as isBatching, n as monotonicNs, o as node, p as partitionForBatch, q as pipe, r as producer, s as state, w as wallClockNs } from './index-Bc_diYYJ.cjs';
9
+ import { N as NodeInput, D as DistillBundle, E as Extraction } from './index-SFzE_KTa.cjs';
10
+ export { A as AdapterHandlers, a as AsyncSourceOpts, B as BackoffPreset, b as BackoffStrategy, c as BatchMessage, d as BridgeMessage, e as BufferedSinkHandle, C as CSVRow, f as CacheEvictionPolicy, g as CacheTier, h as CascadingCache, i as CascadingCacheOptions, j as CheckpointAdapter, k as CheckpointToRedisOptions, l as CheckpointToS3Options, m as CircuitBreaker, n as CircuitBreakerOptions, o as CircuitOpenError, p as CircuitState, q as ClickHouseClientLike, r as ClickHouseInsertClientLike, s as ClickHouseRow, t as CronSchedule, u as DictCheckpointAdapter, v as DistillOptions, w as DrizzleQueryLike, x as ErrorMessage, y as EventTargetLike, z as ExponentialBackoffOptions, F as FSEvent, G as FSEventType, H as FileCheckpointAdapter, I as FileWriterLike, J as FromCSVOptions, K as FromClickHouseWatchOptions, L as FromCronOptions, M as FromDrizzleOptions, O as FromFSWatchOptions, P as FromGitHookOptions, Q as FromHTTPOptions, R as FromKafkaOptions, S as FromKyselyOptions, T as FromMCPOptions, U as FromNATSOptions, V as FromNDJSONOptions, W as FromOTelOptions, X as FromPrismaOptions, Y as FromPrometheusOptions, Z as FromPulsarOptions, _ as FromRabbitMQOptions, $ as FromRedisStreamOptions, a0 as FromSqliteOptions, a1 as FromStatsDOptions, a2 as FromSyslogOptions, a3 as GitEvent, a4 as GitHookType, a5 as HTTPBundle, a6 as IndexRow, a7 as IndexedDbCheckpointSpec, a8 as InitMessage, a9 as JitterMode, aa as KafkaConsumerLike, ab as KafkaMessage, ac as KafkaProducerLike, ad as KyselyQueryLike, ae as LokiClientLike, af as LokiStream, ag as MCPClientLike, ah as MemoryCheckpointAdapter, ai as MergeMapOptions, aj as MongoCollectionLike, ak as NATSClientLike, al as NATSMessage, am as NATSSubscriptionLike, an as NS_PER_MS, ao as NS_PER_SEC, ap as OTelBundle, aq as OTelLog, ar as OTelMetric, as as OTelRegister, at as OTelSpan, au as PostgresClientLike, av as PrismaModelLike, aw as PrometheusMetric, ax as PubSubHub, ay as PulsarConsumerLike, az as PulsarMessage, aA as PulsarProducerLike, aB as RabbitMQChannelLike, aC as RabbitMQMessage, aD as ReactiveCounterBundle, aE as ReactiveIndexBundle, aF as ReactiveIndexOptions, aG as ReactiveListBundle, aH as ReactiveListOptions, aI as ReactiveLogBundle, aJ as ReactiveLogOptions, aK as ReactiveMapBundle, aL as ReactiveMapOptions, aM as ReadyMessage, aN as RedisCheckpointClientLike, aO as RedisClientLike, aP as RedisStreamEntry, aQ as RetryOptions, aR as S3ClientLike, aS as SignalMessage, aT as SinkHandle, aU as SinkTransportError, aV as SqliteCheckpointAdapter, aW as SqliteDbLike, aX as StatsDMetric, aY as StatsDRegister, aZ as StatusValue, a_ as SyslogMessage, a$ as SyslogRegister, b0 as TapObserver, b1 as TempoClientLike, b2 as ThrottleOptions, b3 as TieredStorage, b4 as TieredStorageOptions, b5 as TimeoutError, b6 as ToCSVOptions, b7 as ToClickHouseOptions, b8 as ToFileOptions, b9 as ToKafkaOptions, ba as ToLokiOptions, bb as ToMongoOptions, bc as ToNATSOptions, bd as ToPostgresOptions, be as ToPulsarOptions, bf as ToRabbitMQOptions, bg as ToRedisStreamOptions, bh as ToS3Options, bi as ToSSEOptions, bj as ToSqliteOptions, bk as ToTempoOptions, bl as ToWebSocketOptions, bm as ToWebSocketTransportError, bn as TokenBucket, bo as ValueMessage, bp as VerifiableBundle, bq as VerifiableOptions, br as VerifyValue, bs as WatermarkController, bt as WatermarkOptions, bu as WebSocketLike, bv as WebSocketMessageEventLike, bw as WebSocketRegister, bx as WebhookRegister, by as WithBreakerBundle, bz as WithStatusBundle, bA as WorkerBridge, bB as WorkerBridgeOptions, bC as WorkerSelfHandle, bD as WorkerSelfOptions, bE as WorkerTransport, bF as audit, bG as buffer, bH as bufferCount, bI as bufferTime, bJ as cache, bK as cached, bL as cascadingCache, bM as catchError, bN as checkpointNodeValue, bO as checkpointToRedis, bP as checkpointToS3, bQ as circuitBreaker, bR as combine, bS as combineLatest, bT as concat, bU as concatMap, bV as constant, bW as createTransport, bX as createWatermarkController, bY as debounce, bZ as debounceTime, b_ as decorrelatedJitter, b$ as delay, c0 as deserializeError, c1 as distill, c2 as distinctUntilChanged, c3 as elementAt, c4 as empty, c5 as escapeRegexChar, c6 as exhaustMap, c7 as exponential, c8 as extra, c9 as fallback, ca as fibonacci, cb as filter, cc as find, cd as first, ce as firstValueFrom, cf as firstWhere, cg as flatMap, ch as forEach, ci as fromAny, cj as fromAsyncIter, ck as fromCSV, cl as fromClickHouseWatch, cm as fromCron, cn as fromDrizzle, co as fromEvent, cp as fromFSWatch, cq as fromGitHook, cr as fromHTTP, cs as fromIDBRequest, ct as fromIDBTransaction, cu as fromIter, cv as fromKafka, cw as fromKysely, cx as fromMCP, cy as fromNATS, cz as fromNDJSON, cA as fromOTel, cB as fromPrisma, cC as fromPrometheus, cD as fromPromise, cE as fromPulsar, cF as fromRabbitMQ, cG as fromRedisStream, cH as fromSqlite, cI as fromStatsD, cJ as fromSyslog, cK as fromTimer, cL as fromWebSocket, cM as fromWebhook, cN as globToRegExp, cO as interval, cP as keepalive, cQ as last, cR as linear, cS as logSlice, cT as lru, cU as map, cV as matchesAnyPattern, cW as matchesCron, cX as merge, cY as mergeMap, cZ as nameToSignal, c_ as never, c$ as of, d0 as pairwise, d1 as parseCron, d2 as parsePrometheusText, d3 as parseStatsD, d4 as parseSyslog, d5 as pausable, d6 as pubsub, d7 as race, d8 as rateLimiter, d9 as reactiveCounter, da as reactiveIndex, db as reactiveList, dc as reactiveLog, dd as reactiveMap, de as reduce, df as repeat, dg as replay, dh as rescue, di as resolveBackoffPreset, dj as restoreGraphCheckpoint, dk as restoreGraphCheckpointIndexedDb, dl as retry, dm as sample, dn as saveGraphCheckpoint, dp as saveGraphCheckpointIndexedDb, dq as scan, dr as serializeError, ds as share, dt as shareReplay, du as signalToName, dv as skip, dw as switchMap, dx as take, dy as takeUntil, dz as takeWhile, dA as tap, dB as throttle, dC as throttleTime, dD as throwError, dE as tieredStorage, dF as timeout, dG as toArray, dH as toCSV, dI as toClickHouse, dJ as toFile, dK as toKafka, dL as toLoki, dM as toMongo, dN as toNATS, dO as toPostgres, dP as toPulsar, dQ as toRabbitMQ, dR as toRedisStream, dS as toS3, dT as toSSE, dU as toSqlite, dV as toTempo, dW as toWebSocket, dX as tokenBucket, dY as tokenTracker, dZ as valve, d_ as verifiable, d$ as window, e0 as windowCount, e1 as windowTime, e2 as withBreaker, e3 as withLatestFrom, e4 as withMaxAttempts, e5 as withStatus, e6 as workerBridge, e7 as workerSelf, e8 as zip } from './index-SFzE_KTa.cjs';
11
11
  export { D as DeltaCheckpoint, E as EvictedSubgraphInfo, a as EvictionPolicy, G as GraphCodec, J as JsonCodec, L as LazyGraphCodec, W as WALEntry, c as createDagCborCodec, b as createDagCborZstdCodec, i as graph, n as negotiateCodec, r as replayWAL, s as sizeof } from './index-UudxGnzc.cjs';
12
12
  import { M as MeasurementAdapter, i as index$c } from './index-VHA43cGP.cjs';
13
13
  export { T as ToObservableOptions, t as toObservable } from './observable-C8Kx_O6k.cjs';
@@ -1127,6 +1127,54 @@ type CostMeterOptions = {
1127
1127
  * output exceeds budget mid-generation.
1128
1128
  */
1129
1129
  declare function costMeterExtractor(streamTopic: TopicGraph<StreamChunk>, opts?: CostMeterOptions): Node<CostMeterReading>;
1130
+ /** Options for {@link redactor}. */
1131
+ type RedactorOptions = {
1132
+ name?: string;
1133
+ };
1134
+ /**
1135
+ * Stream extractor that replaces matched patterns in the accumulated text.
1136
+ *
1137
+ * Returns a derived node emitting a sanitized `StreamChunk` on every chunk:
1138
+ * `accumulated` and `token` have matched substrings replaced by `replaceFn`.
1139
+ * The default `replaceFn` replaces with `"[REDACTED]"`.
1140
+ *
1141
+ * Compose with `contentGate` for in-flight safety pipelines.
1142
+ *
1143
+ * @param streamTopic - Streaming topic to monitor.
1144
+ * @param patterns - Array of RegExps to match against accumulated text.
1145
+ * @param replaceFn - Replacement producer (default: always `"[REDACTED]"`).
1146
+ */
1147
+ declare function redactor(streamTopic: TopicGraph<StreamChunk>, patterns: RegExp[], replaceFn?: (match: string, pattern: RegExp) => string, opts?: RedactorOptions): Node<StreamChunk>;
1148
+ /** Content safety decision. */
1149
+ type ContentDecision = "allow" | "block" | "review";
1150
+ /** Options for {@link contentGate}. */
1151
+ type ContentGateOptions = {
1152
+ /**
1153
+ * Hard-block threshold multiplier (default 1.5).
1154
+ * Scores above `threshold * hardMultiplier` emit `"block"`.
1155
+ * Scores between `threshold` and that emit `"review"`.
1156
+ */
1157
+ hardMultiplier?: number;
1158
+ name?: string;
1159
+ };
1160
+ /**
1161
+ * Derived node that classifies accumulated stream text as `"allow"`,
1162
+ * `"review"`, or `"block"` based on a classifier score.
1163
+ *
1164
+ * Emits a three-way decision on every new chunk:
1165
+ * - `"allow"` — score below `threshold`
1166
+ * - `"review"` — score in `[threshold, threshold × hardMultiplier)`
1167
+ * - `"block"` — score at or above `threshold × hardMultiplier`
1168
+ *
1169
+ * Wire the output into a `valve` (automatic) or `gate` (human approval).
1170
+ * This node does not itself control flow — it just classifies.
1171
+ *
1172
+ * @param streamTopic - Streaming topic to classify.
1173
+ * @param classifier - `(accumulated: string) => number` scoring function, or
1174
+ * a `Node<number>` for live scores.
1175
+ * @param threshold - Score at which output becomes "review" or "block".
1176
+ */
1177
+ declare function contentGate(streamTopic: TopicGraph<StreamChunk>, classifier: ((accumulated: string) => number) | Node<number>, threshold: number, opts?: ContentGateOptions): Node<ContentDecision>;
1130
1178
  type GatedStreamOptions = StreamingPromptNodeOptions & {
1131
1179
  /** Gate options (maxPending, startOpen). */
1132
1180
  gate?: Omit<GateOptions, "meta">;
@@ -1630,6 +1678,8 @@ type ai_ChatMessage = ChatMessage;
1630
1678
  type ai_ChatStreamGraph = ChatStreamGraph;
1631
1679
  declare const ai_ChatStreamGraph: typeof ChatStreamGraph;
1632
1680
  type ai_ChatStreamOptions = ChatStreamOptions;
1681
+ type ai_ContentDecision = ContentDecision;
1682
+ type ai_ContentGateOptions = ContentGateOptions;
1633
1683
  type ai_CostMeterOptions = CostMeterOptions;
1634
1684
  type ai_CostMeterReading = CostMeterReading;
1635
1685
  type ai_ExtractedToolCall = ExtractedToolCall;
@@ -1653,6 +1703,7 @@ type ai_MemoryTiersBundle<TMem> = MemoryTiersBundle<TMem>;
1653
1703
  type ai_MemoryTiersOptions<TMem> = MemoryTiersOptions<TMem>;
1654
1704
  type ai_OpenAIToolSchema = OpenAIToolSchema;
1655
1705
  type ai_PromptNodeOptions = PromptNodeOptions;
1706
+ type ai_RedactorOptions = RedactorOptions;
1656
1707
  type ai_RetrievalEntry<TMem> = RetrievalEntry<TMem>;
1657
1708
  type ai_RetrievalPipelineOptions<TMem> = RetrievalPipelineOptions<TMem>;
1658
1709
  type ai_RetrievalQuery = RetrievalQuery;
@@ -1673,6 +1724,7 @@ declare const ai_admissionFilter3D: typeof admissionFilter3D;
1673
1724
  declare const ai_agentLoop: typeof agentLoop;
1674
1725
  declare const ai_agentMemory: typeof agentMemory;
1675
1726
  declare const ai_chatStream: typeof chatStream;
1727
+ declare const ai_contentGate: typeof contentGate;
1676
1728
  declare const ai_costMeterExtractor: typeof costMeterExtractor;
1677
1729
  declare const ai_fromLLM: typeof fromLLM;
1678
1730
  declare const ai_gatedStream: typeof gatedStream;
@@ -1683,6 +1735,7 @@ declare const ai_knobsAsTools: typeof knobsAsTools;
1683
1735
  declare const ai_llmConsolidator: typeof llmConsolidator;
1684
1736
  declare const ai_llmExtractor: typeof llmExtractor;
1685
1737
  declare const ai_promptNode: typeof promptNode;
1738
+ declare const ai_redactor: typeof redactor;
1686
1739
  declare const ai_streamExtractor: typeof streamExtractor;
1687
1740
  declare const ai_streamingPromptNode: typeof streamingPromptNode;
1688
1741
  declare const ai_suggestStrategy: typeof suggestStrategy;
@@ -1691,7 +1744,7 @@ declare const ai_toolCallExtractor: typeof toolCallExtractor;
1691
1744
  declare const ai_toolRegistry: typeof toolRegistry;
1692
1745
  declare const ai_validateGraphDef: typeof validateGraphDef;
1693
1746
  declare namespace ai {
1694
- export { type ai_AdmissionScore3DOptions as AdmissionScore3DOptions, type ai_AdmissionScores as AdmissionScores, ai_AgentLoopGraph as AgentLoopGraph, type ai_AgentLoopOptions as AgentLoopOptions, type ai_AgentLoopStatus as AgentLoopStatus, type ai_AgentMemoryGraph as AgentMemoryGraph, type ai_AgentMemoryOptions as AgentMemoryOptions, type ai_ChatMessage as ChatMessage, ai_ChatStreamGraph as ChatStreamGraph, type ai_ChatStreamOptions as ChatStreamOptions, type ai_CostMeterOptions as CostMeterOptions, type ai_CostMeterReading as CostMeterReading, type ai_ExtractedToolCall as ExtractedToolCall, type ai_FromLLMOptions as FromLLMOptions, type ai_GatedStreamHandle as GatedStreamHandle, type ai_GatedStreamOptions as GatedStreamOptions, type ai_GaugesAsContextOptions as GaugesAsContextOptions, type ai_GraphDefValidation as GraphDefValidation, type ai_GraphFromSpecOptions as GraphFromSpecOptions, type ai_KeywordFlag as KeywordFlag, type ai_KeywordFlagExtractorOptions as KeywordFlagExtractorOptions, type ai_KnobsAsToolsResult as KnobsAsToolsResult, type ai_LLMAdapter as LLMAdapter, type ai_LLMConsolidatorOptions as LLMConsolidatorOptions, type ai_LLMExtractorOptions as LLMExtractorOptions, type ai_LLMInvokeOptions as LLMInvokeOptions, type ai_LLMResponse as LLMResponse, type ai_McpToolSchema as McpToolSchema, type ai_MemoryTier as MemoryTier, type ai_MemoryTiersBundle as MemoryTiersBundle, type ai_MemoryTiersOptions as MemoryTiersOptions, type ai_OpenAIToolSchema as OpenAIToolSchema, type ai_PromptNodeOptions as PromptNodeOptions, type ai_RetrievalEntry as RetrievalEntry, type ai_RetrievalPipelineOptions as RetrievalPipelineOptions, type ai_RetrievalQuery as RetrievalQuery, type ai_RetrievalTrace as RetrievalTrace, type ai_StrategyOperation as StrategyOperation, type ai_StrategyPlan as StrategyPlan, type ai_StreamChunk as StreamChunk, type ai_StreamingPromptNodeHandle as StreamingPromptNodeHandle, type ai_StreamingPromptNodeOptions as StreamingPromptNodeOptions, type ai_SuggestStrategyOptions as SuggestStrategyOptions, type ai_SystemPromptHandle as SystemPromptHandle, type ai_ToolCall as ToolCall, type ai_ToolDefinition as ToolDefinition, ai_ToolRegistryGraph as ToolRegistryGraph, type ai_ToolRegistryOptions as ToolRegistryOptions, ai_admissionFilter3D as admissionFilter3D, ai_agentLoop as agentLoop, ai_agentMemory as agentMemory, ai_chatStream as chatStream, ai_costMeterExtractor as costMeterExtractor, ai_fromLLM as fromLLM, ai_gatedStream as gatedStream, ai_gaugesAsContext as gaugesAsContext, ai_graphFromSpec as graphFromSpec, ai_keywordFlagExtractor as keywordFlagExtractor, ai_knobsAsTools as knobsAsTools, ai_llmConsolidator as llmConsolidator, ai_llmExtractor as llmExtractor, ai_promptNode as promptNode, ai_streamExtractor as streamExtractor, ai_streamingPromptNode as streamingPromptNode, ai_suggestStrategy as suggestStrategy, ai_systemPromptBuilder as systemPromptBuilder, ai_toolCallExtractor as toolCallExtractor, ai_toolRegistry as toolRegistry, ai_validateGraphDef as validateGraphDef };
1747
+ export { type ai_AdmissionScore3DOptions as AdmissionScore3DOptions, type ai_AdmissionScores as AdmissionScores, ai_AgentLoopGraph as AgentLoopGraph, type ai_AgentLoopOptions as AgentLoopOptions, type ai_AgentLoopStatus as AgentLoopStatus, type ai_AgentMemoryGraph as AgentMemoryGraph, type ai_AgentMemoryOptions as AgentMemoryOptions, type ai_ChatMessage as ChatMessage, ai_ChatStreamGraph as ChatStreamGraph, type ai_ChatStreamOptions as ChatStreamOptions, type ai_ContentDecision as ContentDecision, type ai_ContentGateOptions as ContentGateOptions, type ai_CostMeterOptions as CostMeterOptions, type ai_CostMeterReading as CostMeterReading, type ai_ExtractedToolCall as ExtractedToolCall, type ai_FromLLMOptions as FromLLMOptions, type ai_GatedStreamHandle as GatedStreamHandle, type ai_GatedStreamOptions as GatedStreamOptions, type ai_GaugesAsContextOptions as GaugesAsContextOptions, type ai_GraphDefValidation as GraphDefValidation, type ai_GraphFromSpecOptions as GraphFromSpecOptions, type ai_KeywordFlag as KeywordFlag, type ai_KeywordFlagExtractorOptions as KeywordFlagExtractorOptions, type ai_KnobsAsToolsResult as KnobsAsToolsResult, type ai_LLMAdapter as LLMAdapter, type ai_LLMConsolidatorOptions as LLMConsolidatorOptions, type ai_LLMExtractorOptions as LLMExtractorOptions, type ai_LLMInvokeOptions as LLMInvokeOptions, type ai_LLMResponse as LLMResponse, type ai_McpToolSchema as McpToolSchema, type ai_MemoryTier as MemoryTier, type ai_MemoryTiersBundle as MemoryTiersBundle, type ai_MemoryTiersOptions as MemoryTiersOptions, type ai_OpenAIToolSchema as OpenAIToolSchema, type ai_PromptNodeOptions as PromptNodeOptions, type ai_RedactorOptions as RedactorOptions, type ai_RetrievalEntry as RetrievalEntry, type ai_RetrievalPipelineOptions as RetrievalPipelineOptions, type ai_RetrievalQuery as RetrievalQuery, type ai_RetrievalTrace as RetrievalTrace, type ai_StrategyOperation as StrategyOperation, type ai_StrategyPlan as StrategyPlan, type ai_StreamChunk as StreamChunk, type ai_StreamingPromptNodeHandle as StreamingPromptNodeHandle, type ai_StreamingPromptNodeOptions as StreamingPromptNodeOptions, type ai_SuggestStrategyOptions as SuggestStrategyOptions, type ai_SystemPromptHandle as SystemPromptHandle, type ai_ToolCall as ToolCall, type ai_ToolDefinition as ToolDefinition, ai_ToolRegistryGraph as ToolRegistryGraph, type ai_ToolRegistryOptions as ToolRegistryOptions, ai_admissionFilter3D as admissionFilter3D, ai_agentLoop as agentLoop, ai_agentMemory as agentMemory, ai_chatStream as chatStream, ai_contentGate as contentGate, ai_costMeterExtractor as costMeterExtractor, ai_fromLLM as fromLLM, ai_gatedStream as gatedStream, ai_gaugesAsContext as gaugesAsContext, ai_graphFromSpec as graphFromSpec, ai_keywordFlagExtractor as keywordFlagExtractor, ai_knobsAsTools as knobsAsTools, ai_llmConsolidator as llmConsolidator, ai_llmExtractor as llmExtractor, ai_promptNode as promptNode, ai_redactor as redactor, ai_streamExtractor as streamExtractor, ai_streamingPromptNode as streamingPromptNode, ai_suggestStrategy as suggestStrategy, ai_systemPromptBuilder as systemPromptBuilder, ai_toolCallExtractor as toolCallExtractor, ai_toolRegistry as toolRegistry, ai_validateGraphDef as validateGraphDef };
1695
1748
  }
1696
1749
 
1697
1750
  /**
@@ -2474,14 +2527,38 @@ interface HarnessLoopOptions {
2474
2527
  }
2475
2528
 
2476
2529
  /**
2477
- * Eval→intake bridge (roadmap §9.0).
2530
+ * Harness bridge factories (roadmap §9.0).
2478
2531
  *
2479
- * Effect node that parses eval results into IntakeItem[] and publishes
2480
- * to an intake TopicGraph. Produces per-criterion findings, not per-task scores.
2532
+ * Intake bridges, eval source wrapper, before/after comparison,
2533
+ * affected-task filter, code-change bridge, and notification effect.
2534
+ * All are compositions of existing primitives — no new abstractions.
2481
2535
  *
2482
2536
  * @module
2483
2537
  */
2484
2538
 
2539
+ /** Options for {@link createIntakeBridge}. */
2540
+ interface IntakeBridgeOptions {
2541
+ /** Name for the effect node (default "intake-bridge"). */
2542
+ name?: string;
2543
+ }
2544
+ /**
2545
+ * Generic source→intake bridge factory.
2546
+ *
2547
+ * Watches a source node for new values, passes each through a user-supplied
2548
+ * `parser` that produces zero or more `IntakeItem`s, and publishes them to
2549
+ * the given intake topic.
2550
+ *
2551
+ * This is the generalized pattern behind {@link evalIntakeBridge}. Use it for
2552
+ * CI results, test failures, Slack messages, monitoring alerts, or any domain
2553
+ * where structured results should flow into a harness loop.
2554
+ *
2555
+ * @param source - Reactive node emitting domain-specific data.
2556
+ * @param intakeTopic - TopicGraph to publish IntakeItem entries to.
2557
+ * @param parser - Converts source data into IntakeItem[]. Return empty array to skip.
2558
+ * @param opts - Optional configuration.
2559
+ * @returns The effect node (for lifecycle management).
2560
+ */
2561
+ declare function createIntakeBridge<T>(source: Node<T>, intakeTopic: TopicGraph<IntakeItem>, parser: (value: T) => IntakeItem[], opts?: IntakeBridgeOptions): Node<unknown>;
2485
2562
  /**
2486
2563
  * Minimal eval result shape accepted by the bridge.
2487
2564
  *
@@ -2522,6 +2599,135 @@ interface EvalIntakeBridgeOptions {
2522
2599
  * @returns The effect node (for lifecycle management).
2523
2600
  */
2524
2601
  declare function evalIntakeBridge(evalSource: Node<EvalResult | EvalResult[]>, intakeTopic: TopicGraph<IntakeItem>, opts?: EvalIntakeBridgeOptions): Node<unknown>;
2602
+ /**
2603
+ * Wrap any eval runner as a reactive producer node.
2604
+ *
2605
+ * When `trigger` emits, calls `runner()` and emits the result downstream.
2606
+ * Uses `switchMap` + `fromAny` — the async boundary stays in the source
2607
+ * layer (spec §5.10). A new trigger cancels any in-flight run.
2608
+ *
2609
+ * ```ts
2610
+ * const trigger = state(0); // bump to trigger a new run
2611
+ * const results = evalSource(trigger, () => runEvals(config));
2612
+ * results.subscribe(msgs => { ... });
2613
+ * trigger.down([[DATA, 1]]); // fires the runner
2614
+ * ```
2615
+ *
2616
+ * @param trigger - Any node; each new DATA emission fires the runner.
2617
+ * @param runner - Returns an EvalResult (or promise of one).
2618
+ */
2619
+ declare function evalSource<T extends EvalResult>(trigger: Node<unknown>, runner: () => T | Promise<T>): Node<T>;
2620
+ /** Per-task delta produced by {@link beforeAfterCompare}. */
2621
+ interface EvalTaskDelta {
2622
+ taskId: string;
2623
+ before: boolean;
2624
+ after: boolean;
2625
+ /** Score-level diff (after − before), undefined if no scores present. */
2626
+ scoreDiff?: number;
2627
+ }
2628
+ /** Output of {@link beforeAfterCompare}. */
2629
+ interface EvalDelta {
2630
+ /** Task IDs that newly fail in `after` (were passing in `before`). */
2631
+ newFailures: string[];
2632
+ /** Task IDs that now pass in `after` (were failing in `before`). */
2633
+ resolved: string[];
2634
+ /** Full per-task breakdown. */
2635
+ taskDeltas: EvalTaskDelta[];
2636
+ /** True when net resolutions > net failures. */
2637
+ overallImproved: boolean;
2638
+ }
2639
+ /**
2640
+ * Derived node that computes before/after eval deltas.
2641
+ *
2642
+ * Pure computation: no LLM, no async. Compares per-task validity and
2643
+ * pass counts between two `EvalResult` snapshots.
2644
+ *
2645
+ * @param before - Node holding the baseline eval result.
2646
+ * @param after - Node holding the new eval result.
2647
+ */
2648
+ declare function beforeAfterCompare(before: Node<EvalResult>, after: Node<EvalResult>): Node<EvalDelta>;
2649
+ /**
2650
+ * Derived node that selects which eval task IDs to re-run.
2651
+ *
2652
+ * Collects `affectsEvalTasks` from all triaged items, deduplicates, then
2653
+ * optionally intersects with `fullTaskSet`. Returns a sorted array of IDs.
2654
+ *
2655
+ * Use this to avoid re-running the full eval suite after each fix: only the
2656
+ * tasks that the triaged items claim to affect are returned.
2657
+ *
2658
+ * @param issues - Node holding the current list of triaged items.
2659
+ * @param fullTaskSet - Optional node (or plain array) of all known task IDs.
2660
+ * When provided, output is the intersection.
2661
+ */
2662
+ declare function affectedTaskFilter(issues: Node<readonly TriagedItem[]>, fullTaskSet?: Node<readonly string[]> | readonly string[]): Node<string[]>;
2663
+ /** A single lint error emitted by a CI tool. */
2664
+ interface LintError {
2665
+ file: string;
2666
+ line: number;
2667
+ col: number;
2668
+ rule: string;
2669
+ message: string;
2670
+ }
2671
+ /** A single test failure emitted by a test runner. */
2672
+ interface TestFailure {
2673
+ testId: string;
2674
+ file: string;
2675
+ message: string;
2676
+ }
2677
+ /** Structured code-change / CI event. */
2678
+ interface CodeChange {
2679
+ /** Files touched by the change. */
2680
+ files: string[];
2681
+ lintErrors?: LintError[];
2682
+ testFailures?: TestFailure[];
2683
+ }
2684
+ /** Options for {@link codeChangeBridge}. */
2685
+ interface CodeChangeBridgeOptions {
2686
+ /** Name for the effect node (default "code-change-bridge"). */
2687
+ name?: string;
2688
+ /** Default severity for generated IntakeItems (default "high"). */
2689
+ defaultSeverity?: Severity;
2690
+ }
2691
+ /**
2692
+ * Intake bridge for code-change / CI events.
2693
+ *
2694
+ * Watches a source node for `CodeChange` events and publishes one
2695
+ * `IntakeItem` per lint error and per test failure to the intake topic.
2696
+ * Pass a custom `parser` to override the default mapping.
2697
+ *
2698
+ * @param source - Node emitting CodeChange events.
2699
+ * @param intakeTopic - TopicGraph to publish IntakeItem entries to.
2700
+ * @param parser - Optional custom parser (overrides default).
2701
+ * @param opts - Optional configuration.
2702
+ */
2703
+ declare function codeChangeBridge(source: Node<CodeChange>, intakeTopic: TopicGraph<IntakeItem>, parser?: (change: CodeChange) => IntakeItem[], opts?: CodeChangeBridgeOptions): Node<unknown>;
2704
+ /** Transport function for {@link notifyEffect}. Sync or async. */
2705
+ type NotifyTransport<T> = (item: T) => void | Promise<void>;
2706
+ /** Options for {@link notifyEffect}. */
2707
+ interface NotifyEffectOptions {
2708
+ /** Name for the effect node (default "notify-effect"). */
2709
+ name?: string;
2710
+ }
2711
+ /**
2712
+ * Effect node that sends each new topic entry to an external channel.
2713
+ *
2714
+ * The `transport` function is called for every item published to `topic`.
2715
+ * Async transports are bridged via `fromAny` (spec §5.10 compliant).
2716
+ *
2717
+ * Typical use: Slack webhook, GitHub PR comment, email notification, etc.
2718
+ * The factory provides reactive wiring; the transport supplies domain logic.
2719
+ *
2720
+ * ```ts
2721
+ * notifyEffect(alertQueue, async (item) => {
2722
+ * await fetch(SLACK_WEBHOOK, { method: 'POST', body: JSON.stringify({ text: item.summary }) });
2723
+ * });
2724
+ * ```
2725
+ *
2726
+ * @param topic - TopicGraph whose latest entry triggers the notification.
2727
+ * @param transport - Called with each new item. May return a Promise.
2728
+ * @param opts - Optional configuration.
2729
+ */
2730
+ declare function notifyEffect<T>(topic: TopicGraph<T>, transport: NotifyTransport<T>, opts?: NotifyEffectOptions): Node<unknown>;
2525
2731
 
2526
2732
  /**
2527
2733
  * Strategy model and priority scoring (roadmap §9.0).
@@ -2735,14 +2941,18 @@ declare function harnessTrace(harness: HarnessGraph, opts?: HarnessTraceOptions)
2735
2941
  * @module
2736
2942
  */
2737
2943
 
2944
+ type index$1_CodeChange = CodeChange;
2945
+ type index$1_CodeChangeBridgeOptions = CodeChangeBridgeOptions;
2738
2946
  declare const index$1_DEFAULT_DECAY_RATE: typeof DEFAULT_DECAY_RATE;
2739
2947
  declare const index$1_DEFAULT_QUEUE_CONFIGS: typeof DEFAULT_QUEUE_CONFIGS;
2740
2948
  declare const index$1_DEFAULT_SEVERITY_WEIGHTS: typeof DEFAULT_SEVERITY_WEIGHTS;
2741
2949
  type index$1_ErrorClass = ErrorClass;
2742
2950
  type index$1_ErrorClassifier = ErrorClassifier;
2951
+ type index$1_EvalDelta = EvalDelta;
2743
2952
  type index$1_EvalIntakeBridgeOptions = EvalIntakeBridgeOptions;
2744
2953
  type index$1_EvalJudgeScore = EvalJudgeScore;
2745
2954
  type index$1_EvalResult = EvalResult;
2955
+ type index$1_EvalTaskDelta = EvalTaskDelta;
2746
2956
  type index$1_EvalTaskResult = EvalTaskResult;
2747
2957
  type index$1_ExecuteOutput = ExecuteOutput;
2748
2958
  type index$1_ExecutionResult = ExecutionResult;
@@ -2752,9 +2962,13 @@ type index$1_HarnessLoopOptions = HarnessLoopOptions;
2752
2962
  type index$1_HarnessProfileResult = HarnessProfileResult;
2753
2963
  type index$1_HarnessTraceHandle = HarnessTraceHandle;
2754
2964
  type index$1_HarnessTraceOptions = HarnessTraceOptions;
2965
+ type index$1_IntakeBridgeOptions = IntakeBridgeOptions;
2755
2966
  type index$1_IntakeItem = IntakeItem;
2756
2967
  type index$1_IntakeSource = IntakeSource;
2757
2968
  type index$1_Intervention = Intervention;
2969
+ type index$1_LintError = LintError;
2970
+ type index$1_NotifyEffectOptions = NotifyEffectOptions;
2971
+ type index$1_NotifyTransport<T> = NotifyTransport<T>;
2758
2972
  type index$1_PrioritySignals = PrioritySignals;
2759
2973
  declare const index$1_QUEUE_NAMES: typeof QUEUE_NAMES;
2760
2974
  type index$1_QueueConfig = QueueConfig;
@@ -2765,21 +2979,28 @@ type index$1_StrategyEntry = StrategyEntry;
2765
2979
  type index$1_StrategyKey = StrategyKey;
2766
2980
  type index$1_StrategyModelBundle = StrategyModelBundle;
2767
2981
  type index$1_StrategySnapshot = StrategySnapshot;
2982
+ type index$1_TestFailure = TestFailure;
2768
2983
  type index$1_TraceDetail = TraceDetail;
2769
2984
  type index$1_TraceEvent = TraceEvent;
2770
2985
  type index$1_TraceEventType = TraceEventType;
2771
2986
  type index$1_TriagedItem = TriagedItem;
2772
2987
  type index$1_VerifyResult = VerifyResult;
2988
+ declare const index$1_affectedTaskFilter: typeof affectedTaskFilter;
2989
+ declare const index$1_beforeAfterCompare: typeof beforeAfterCompare;
2990
+ declare const index$1_codeChangeBridge: typeof codeChangeBridge;
2991
+ declare const index$1_createIntakeBridge: typeof createIntakeBridge;
2773
2992
  declare const index$1_defaultErrorClassifier: typeof defaultErrorClassifier;
2774
2993
  declare const index$1_evalIntakeBridge: typeof evalIntakeBridge;
2994
+ declare const index$1_evalSource: typeof evalSource;
2775
2995
  declare const index$1_harnessLoop: typeof harnessLoop;
2776
2996
  declare const index$1_harnessProfile: typeof harnessProfile;
2777
2997
  declare const index$1_harnessTrace: typeof harnessTrace;
2998
+ declare const index$1_notifyEffect: typeof notifyEffect;
2778
2999
  declare const index$1_priorityScore: typeof priorityScore;
2779
3000
  declare const index$1_strategyKey: typeof strategyKey;
2780
3001
  declare const index$1_strategyModel: typeof strategyModel;
2781
3002
  declare namespace index$1 {
2782
- export { index$1_DEFAULT_DECAY_RATE as DEFAULT_DECAY_RATE, index$1_DEFAULT_QUEUE_CONFIGS as DEFAULT_QUEUE_CONFIGS, index$1_DEFAULT_SEVERITY_WEIGHTS as DEFAULT_SEVERITY_WEIGHTS, type index$1_ErrorClass as ErrorClass, type index$1_ErrorClassifier as ErrorClassifier, type index$1_EvalIntakeBridgeOptions as EvalIntakeBridgeOptions, type index$1_EvalJudgeScore as EvalJudgeScore, type index$1_EvalResult as EvalResult, type index$1_EvalTaskResult as EvalTaskResult, type index$1_ExecuteOutput as ExecuteOutput, type index$1_ExecutionResult as ExecutionResult, index$1_HarnessGraph as HarnessGraph, type index$1_HarnessLoopOptions as HarnessLoopOptions, type index$1_HarnessProfileResult as HarnessProfileResult, type index$1_HarnessTraceHandle as HarnessTraceHandle, type index$1_HarnessTraceOptions as HarnessTraceOptions, type index$1_IntakeItem as IntakeItem, type index$1_IntakeSource as IntakeSource, type index$1_Intervention as Intervention, type index$1_PrioritySignals as PrioritySignals, index$1_QUEUE_NAMES as QUEUE_NAMES, type index$1_QueueConfig as QueueConfig, type index$1_QueueRoute as QueueRoute, type index$1_RootCause as RootCause, type index$1_Severity as Severity, type index$1_StrategyEntry as StrategyEntry, type index$1_StrategyKey as StrategyKey, type index$1_StrategyModelBundle as StrategyModelBundle, type index$1_StrategySnapshot as StrategySnapshot, type index$1_TraceDetail as TraceDetail, type index$1_TraceEvent as TraceEvent, type index$1_TraceEventType as TraceEventType, type index$1_TriagedItem as TriagedItem, type index$1_VerifyResult as VerifyResult, index$1_defaultErrorClassifier as defaultErrorClassifier, index$1_evalIntakeBridge as evalIntakeBridge, index$1_harnessLoop as harnessLoop, index$1_harnessProfile as harnessProfile, index$1_harnessTrace as harnessTrace, index$1_priorityScore as priorityScore, index$1_strategyKey as strategyKey, index$1_strategyModel as strategyModel };
3003
+ export { type index$1_CodeChange as CodeChange, type index$1_CodeChangeBridgeOptions as CodeChangeBridgeOptions, index$1_DEFAULT_DECAY_RATE as DEFAULT_DECAY_RATE, index$1_DEFAULT_QUEUE_CONFIGS as DEFAULT_QUEUE_CONFIGS, index$1_DEFAULT_SEVERITY_WEIGHTS as DEFAULT_SEVERITY_WEIGHTS, type index$1_ErrorClass as ErrorClass, type index$1_ErrorClassifier as ErrorClassifier, type index$1_EvalDelta as EvalDelta, type index$1_EvalIntakeBridgeOptions as EvalIntakeBridgeOptions, type index$1_EvalJudgeScore as EvalJudgeScore, type index$1_EvalResult as EvalResult, type index$1_EvalTaskDelta as EvalTaskDelta, type index$1_EvalTaskResult as EvalTaskResult, type index$1_ExecuteOutput as ExecuteOutput, type index$1_ExecutionResult as ExecutionResult, index$1_HarnessGraph as HarnessGraph, type index$1_HarnessLoopOptions as HarnessLoopOptions, type index$1_HarnessProfileResult as HarnessProfileResult, type index$1_HarnessTraceHandle as HarnessTraceHandle, type index$1_HarnessTraceOptions as HarnessTraceOptions, type index$1_IntakeBridgeOptions as IntakeBridgeOptions, type index$1_IntakeItem as IntakeItem, type index$1_IntakeSource as IntakeSource, type index$1_Intervention as Intervention, type index$1_LintError as LintError, type index$1_NotifyEffectOptions as NotifyEffectOptions, type index$1_NotifyTransport as NotifyTransport, type index$1_PrioritySignals as PrioritySignals, index$1_QUEUE_NAMES as QUEUE_NAMES, type index$1_QueueConfig as QueueConfig, type index$1_QueueRoute as QueueRoute, type index$1_RootCause as RootCause, type index$1_Severity as Severity, type index$1_StrategyEntry as StrategyEntry, type index$1_StrategyKey as StrategyKey, type index$1_StrategyModelBundle as StrategyModelBundle, type index$1_StrategySnapshot as StrategySnapshot, type index$1_TestFailure as TestFailure, type index$1_TraceDetail as TraceDetail, type index$1_TraceEvent as TraceEvent, type index$1_TraceEventType as TraceEventType, type index$1_TriagedItem as TriagedItem, type index$1_VerifyResult as VerifyResult, index$1_affectedTaskFilter as affectedTaskFilter, index$1_beforeAfterCompare as beforeAfterCompare, index$1_codeChangeBridge as codeChangeBridge, index$1_createIntakeBridge as createIntakeBridge, index$1_defaultErrorClassifier as defaultErrorClassifier, index$1_evalIntakeBridge as evalIntakeBridge, index$1_evalSource as evalSource, index$1_harnessLoop as harnessLoop, index$1_harnessProfile as harnessProfile, index$1_harnessTrace as harnessTrace, index$1_notifyEffect as notifyEffect, index$1_priorityScore as priorityScore, index$1_strategyKey as strategyKey, index$1_strategyModel as strategyModel };
2783
3004
  }
2784
3005
 
2785
3006
  /**
@@ -2937,9 +3158,52 @@ type ScorerOptions = Omit<NodeOptions, "describeKind" | "name" | "meta"> & {
2937
3158
  * @category patterns
2938
3159
  */
2939
3160
  declare function scorer(sources: ReadonlyArray<Node<number>>, weights: ReadonlyArray<Node<number>>, opts?: ScorerOptions): Node<ScoredItem<number[]>>;
3161
+ /** A single effectiveness record for an action×context pair. */
3162
+ type EffectivenessEntry = {
3163
+ readonly key: string;
3164
+ readonly attempts: number;
3165
+ readonly successes: number;
3166
+ readonly successRate: number;
3167
+ };
3168
+ /** Snapshot shape for the effectiveness tracker node. */
3169
+ type EffectivenessSnapshot = ReadonlyMap<string, EffectivenessEntry>;
3170
+ /** Bundle returned by {@link effectivenessTracker}. */
3171
+ interface EffectivenessTrackerBundle {
3172
+ /** Reactive node — current effectiveness map snapshot. */
3173
+ readonly node: Node<EffectivenessSnapshot>;
3174
+ /** Record a completed action (success or failure). */
3175
+ record(key: string, success: boolean): void;
3176
+ /** Look up effectiveness for a specific key. */
3177
+ lookup(key: string): EffectivenessEntry | undefined;
3178
+ /** Tear down internal keepalive subscriptions. */
3179
+ dispose(): void;
3180
+ }
3181
+ /** Options for {@link effectivenessTracker}. */
3182
+ type EffectivenessTrackerOptions = {
3183
+ /** Name for the reactive map (default "effectiveness-entries"). */
3184
+ name?: string;
3185
+ };
3186
+ /**
3187
+ * Generic action×context → success rate tracker.
3188
+ *
3189
+ * Generalized from the harness `strategyModel` pattern. Tracks attempts and
3190
+ * successes per string key, exposes a reactive snapshot node, and provides
3191
+ * `record()` / `lookup()` methods.
3192
+ *
3193
+ * Use cases: A/B testing, routing optimization, cache policy tuning, retry
3194
+ * strategy selection — any domain that tracks effectiveness per action.
3195
+ *
3196
+ * @param opts - Optional configuration.
3197
+ * @returns Bundle with reactive node, record(), lookup(), dispose().
3198
+ */
3199
+ declare function effectivenessTracker(opts?: EffectivenessTrackerOptions): EffectivenessTrackerBundle;
2940
3200
 
2941
3201
  type reduction_BudgetConstraint<T = unknown> = BudgetConstraint<T>;
2942
3202
  type reduction_BudgetGateOptions = BudgetGateOptions;
3203
+ type reduction_EffectivenessEntry = EffectivenessEntry;
3204
+ type reduction_EffectivenessSnapshot = EffectivenessSnapshot;
3205
+ type reduction_EffectivenessTrackerBundle = EffectivenessTrackerBundle;
3206
+ type reduction_EffectivenessTrackerOptions = EffectivenessTrackerOptions;
2943
3207
  type reduction_FeedbackOptions = FeedbackOptions;
2944
3208
  type reduction_FunnelOptions = FunnelOptions;
2945
3209
  type reduction_FunnelStage = FunnelStage;
@@ -2949,12 +3213,13 @@ type reduction_StepRef = StepRef;
2949
3213
  type reduction_StratifyOptions = StratifyOptions;
2950
3214
  type reduction_StratifyRule<T> = StratifyRule<T>;
2951
3215
  declare const reduction_budgetGate: typeof budgetGate;
3216
+ declare const reduction_effectivenessTracker: typeof effectivenessTracker;
2952
3217
  declare const reduction_feedback: typeof feedback;
2953
3218
  declare const reduction_funnel: typeof funnel;
2954
3219
  declare const reduction_scorer: typeof scorer;
2955
3220
  declare const reduction_stratify: typeof stratify;
2956
3221
  declare namespace reduction {
2957
- export { type reduction_BudgetConstraint as BudgetConstraint, type reduction_BudgetGateOptions as BudgetGateOptions, type reduction_FeedbackOptions as FeedbackOptions, type reduction_FunnelOptions as FunnelOptions, type reduction_FunnelStage as FunnelStage, type reduction_ScoredItem as ScoredItem, type reduction_ScorerOptions as ScorerOptions, type reduction_StepRef as StepRef, type reduction_StratifyOptions as StratifyOptions, type reduction_StratifyRule as StratifyRule, reduction_budgetGate as budgetGate, reduction_feedback as feedback, reduction_funnel as funnel, reduction_scorer as scorer, reduction_stratify as stratify };
3222
+ export { type reduction_BudgetConstraint as BudgetConstraint, type reduction_BudgetGateOptions as BudgetGateOptions, type reduction_EffectivenessEntry as EffectivenessEntry, type reduction_EffectivenessSnapshot as EffectivenessSnapshot, type reduction_EffectivenessTrackerBundle as EffectivenessTrackerBundle, type reduction_EffectivenessTrackerOptions as EffectivenessTrackerOptions, type reduction_FeedbackOptions as FeedbackOptions, type reduction_FunnelOptions as FunnelOptions, type reduction_FunnelStage as FunnelStage, type reduction_ScoredItem as ScoredItem, type reduction_ScorerOptions as ScorerOptions, type reduction_StepRef as StepRef, type reduction_StratifyOptions as StratifyOptions, type reduction_StratifyRule as StratifyRule, reduction_budgetGate as budgetGate, reduction_effectivenessTracker as effectivenessTracker, reduction_feedback as feedback, reduction_funnel as funnel, reduction_scorer as scorer, reduction_stratify as stratify };
2958
3223
  }
2959
3224
 
2960
3225
  /**