{"version":3,"file":"extension.cjs","names":["namespaceKey","openProjectionSubscription"],"sources":["../../../src/stream/projections/extension.ts"],"sourcesContent":["/**\n * Namespace-scoped `custom:<name>` projection (stream extension).\n *\n * Opens a `custom` subscription and filters named events client-side.\n * The store retains the most-recent payload for the requested\n * transformer. Consumers that want the entire event history should use\n * the raw channel projection instead.\n */\nimport type { ProjectionSpec, ProjectionRuntime } from \"../types.js\";\nimport type { Event } from \"@langchain/protocol\";\nimport { namespaceKey } from \"../namespace.js\";\nimport { openProjectionSubscription } from \"./runtime.js\";\n\nexport function extensionProjection<T = unknown>(\n  name: string,\n  namespace: readonly string[]\n): ProjectionSpec<T | undefined> {\n  const ns = [...namespace];\n  const key = `extension|${name}|${namespaceKey(ns)}`;\n\n  return {\n    key,\n    namespace: ns,\n    initial: undefined,\n    open({ thread, store }): ProjectionRuntime {\n      return openProjectionSubscription({\n        thread,\n        channels: [`custom:${name}`],\n        namespace: ns,\n        resumeOnPause: true,\n        onEvent(event: Event) {\n          const data = event.params.data as\n            | {\n                name?: unknown;\n                payload?: unknown;\n              }\n            | undefined;\n          const payload =\n            data?.payload != null &&\n            typeof data.payload === \"object\" &&\n            \"name\" in data.payload\n              ? (data.payload as { name?: unknown; payload?: unknown })\n              : data;\n          if (payload?.name !== name) return;\n          store.setValue(payload.payload as T);\n        },\n      });\n    },\n  };\n}\n"],"mappings":";;;AAaA,SAAgB,oBACd,MACA,WAC+B;CAC/B,MAAM,KAAK,CAAC,GAAG,UAAU;AAGzB,QAAO;EACL,KAHU,aAAa,KAAK,GAAGA,kBAAAA,aAAa,GAAG;EAI/C,WAAW;EACX,SAAS,KAAA;EACT,KAAK,EAAE,QAAQ,SAA4B;AACzC,UAAOC,gBAAAA,2BAA2B;IAChC;IACA,UAAU,CAAC,UAAU,OAAO;IAC5B,WAAW;IACX,eAAe;IACf,QAAQ,OAAc;KACpB,MAAM,OAAO,MAAM,OAAO;KAM1B,MAAM,UACJ,MAAM,WAAW,QACjB,OAAO,KAAK,YAAY,YACxB,UAAU,KAAK,UACV,KAAK,UACN;AACN,SAAI,SAAS,SAAS,KAAM;AAC5B,WAAM,SAAS,QAAQ,QAAa;;IAEvC,CAAC;;EAEL"}