@indexnetwork/protocol 1.9.0 → 1.10.0-rc.157.1

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 (49) hide show
  1. package/dist/opportunity/opportunity.graph.d.ts +52 -1
  2. package/dist/opportunity/opportunity.graph.d.ts.map +1 -1
  3. package/dist/opportunity/opportunity.graph.js +135 -6
  4. package/dist/opportunity/opportunity.graph.js.map +1 -1
  5. package/dist/opportunity/opportunity.presenter.d.ts +1 -1
  6. package/dist/opportunity/opportunity.presenter.d.ts.map +1 -1
  7. package/dist/opportunity/opportunity.presenter.js +45 -0
  8. package/dist/opportunity/opportunity.presenter.js.map +1 -1
  9. package/dist/opportunity/opportunity.state.d.ts +15 -2
  10. package/dist/opportunity/opportunity.state.d.ts.map +1 -1
  11. package/dist/opportunity/opportunity.state.js +5 -0
  12. package/dist/opportunity/opportunity.state.js.map +1 -1
  13. package/dist/opportunity/opportunity.utils.d.ts.map +1 -1
  14. package/dist/opportunity/opportunity.utils.js +4 -0
  15. package/dist/opportunity/opportunity.utils.js.map +1 -1
  16. package/dist/premise/premise.analyzer.d.ts.map +1 -1
  17. package/dist/premise/premise.analyzer.js +1 -1
  18. package/dist/premise/premise.analyzer.js.map +1 -1
  19. package/dist/premise/premise.indexer.d.ts.map +1 -1
  20. package/dist/premise/premise.indexer.js +1 -1
  21. package/dist/premise/premise.indexer.js.map +1 -1
  22. package/dist/premise/premise.tools.d.ts.map +1 -1
  23. package/dist/premise/premise.tools.js +32 -4
  24. package/dist/premise/premise.tools.js.map +1 -1
  25. package/dist/profile/profile.graph.d.ts +22 -5
  26. package/dist/profile/profile.graph.d.ts.map +1 -1
  27. package/dist/profile/profile.graph.js +46 -2
  28. package/dist/profile/profile.graph.js.map +1 -1
  29. package/dist/profile/profile.state.d.ts +7 -1
  30. package/dist/profile/profile.state.d.ts.map +1 -1
  31. package/dist/profile/profile.state.js +9 -0
  32. package/dist/profile/profile.state.js.map +1 -1
  33. package/dist/shared/agent/tool.factory.d.ts.map +1 -1
  34. package/dist/shared/agent/tool.factory.js +1 -0
  35. package/dist/shared/agent/tool.factory.js.map +1 -1
  36. package/dist/shared/agent/tool.helpers.d.ts +12 -0
  37. package/dist/shared/agent/tool.helpers.d.ts.map +1 -1
  38. package/dist/shared/agent/tool.helpers.js.map +1 -1
  39. package/dist/shared/hyde/hyde.strategies.d.ts +1 -1
  40. package/dist/shared/hyde/hyde.strategies.d.ts.map +1 -1
  41. package/dist/shared/hyde/hyde.strategies.js +6 -0
  42. package/dist/shared/hyde/hyde.strategies.js.map +1 -1
  43. package/dist/shared/hyde/lens.inferrer.d.ts +1 -1
  44. package/dist/shared/hyde/lens.inferrer.d.ts.map +1 -1
  45. package/dist/shared/interfaces/database.interface.d.ts +21 -3
  46. package/dist/shared/interfaces/database.interface.d.ts.map +1 -1
  47. package/dist/shared/interfaces/embedder.interface.d.ts +1 -1
  48. package/dist/shared/interfaces/embedder.interface.d.ts.map +1 -1
  49. package/package.json +1 -1
@@ -88,7 +88,7 @@ export declare class OpportunityGraphFactory {
88
88
  hydeEmbeddings: Record<string, number[]>;
89
89
  lenses?: Array<{
90
90
  label: string;
91
- corpus: 'profiles' | 'intents';
91
+ corpus: 'profiles' | 'intents' | 'premises';
92
92
  }>;
93
93
  hydeDocuments?: Record<string, {
94
94
  hydeText?: string;
@@ -137,6 +137,10 @@ export declare class OpportunityGraphFactory {
137
137
  discoverySource: "profile" | "intent";
138
138
  resolvedTriggerIntentId: Id<"intents"> | undefined;
139
139
  sourceProfile: SourceProfileData | null;
140
+ sourcePremises: {
141
+ premiseId: Id<"premises">;
142
+ embedding: number[];
143
+ }[];
140
144
  resolvedIntentInIndex: boolean;
141
145
  createIntentSuggested: boolean;
142
146
  suggestedIntentDescription: string | undefined;
@@ -219,6 +223,13 @@ export declare class OpportunityGraphFactory {
219
223
  discoverySource?: "profile" | "intent" | import("@langchain/langgraph").OverwriteValue<"profile" | "intent"> | undefined;
220
224
  resolvedTriggerIntentId?: Id<"intents"> | import("@langchain/langgraph").OverwriteValue<Id<"intents"> | undefined> | undefined;
221
225
  sourceProfile?: SourceProfileData | import("@langchain/langgraph").OverwriteValue<SourceProfileData | null> | null | undefined;
226
+ sourcePremises?: {
227
+ premiseId: Id<"premises">;
228
+ embedding: number[];
229
+ }[] | import("@langchain/langgraph").OverwriteValue<{
230
+ premiseId: Id<"premises">;
231
+ embedding: number[];
232
+ }[]> | undefined;
222
233
  resolvedIntentInIndex?: boolean | import("@langchain/langgraph").OverwriteValue<boolean> | undefined;
223
234
  createIntentSuggested?: boolean | import("@langchain/langgraph").OverwriteValue<boolean> | undefined;
224
235
  suggestedIntentDescription?: string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined;
@@ -336,6 +347,16 @@ export declare class OpportunityGraphFactory {
336
347
  discoverySource: import("@langchain/langgraph").BaseChannel<"profile" | "intent", "profile" | "intent" | import("@langchain/langgraph").OverwriteValue<"profile" | "intent">, unknown>;
337
348
  resolvedTriggerIntentId: import("@langchain/langgraph").BaseChannel<Id<"intents"> | undefined, Id<"intents"> | import("@langchain/langgraph").OverwriteValue<Id<"intents"> | undefined> | undefined, unknown>;
338
349
  sourceProfile: import("@langchain/langgraph").BaseChannel<SourceProfileData | null, SourceProfileData | import("@langchain/langgraph").OverwriteValue<SourceProfileData | null> | null, unknown>;
350
+ sourcePremises: import("@langchain/langgraph").BaseChannel<{
351
+ premiseId: Id<"premises">;
352
+ embedding: number[];
353
+ }[], {
354
+ premiseId: Id<"premises">;
355
+ embedding: number[];
356
+ }[] | import("@langchain/langgraph").OverwriteValue<{
357
+ premiseId: Id<"premises">;
358
+ embedding: number[];
359
+ }[]>, unknown>;
339
360
  resolvedIntentInIndex: import("@langchain/langgraph").BaseChannel<boolean, boolean | import("@langchain/langgraph").OverwriteValue<boolean>, unknown>;
340
361
  createIntentSuggested: import("@langchain/langgraph").BaseChannel<boolean, boolean | import("@langchain/langgraph").OverwriteValue<boolean>, unknown>;
341
362
  suggestedIntentDescription: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
@@ -483,6 +504,16 @@ export declare class OpportunityGraphFactory {
483
504
  discoverySource: import("@langchain/langgraph").BaseChannel<"profile" | "intent", "profile" | "intent" | import("@langchain/langgraph").OverwriteValue<"profile" | "intent">, unknown>;
484
505
  resolvedTriggerIntentId: import("@langchain/langgraph").BaseChannel<Id<"intents"> | undefined, Id<"intents"> | import("@langchain/langgraph").OverwriteValue<Id<"intents"> | undefined> | undefined, unknown>;
485
506
  sourceProfile: import("@langchain/langgraph").BaseChannel<SourceProfileData | null, SourceProfileData | import("@langchain/langgraph").OverwriteValue<SourceProfileData | null> | null, unknown>;
507
+ sourcePremises: import("@langchain/langgraph").BaseChannel<{
508
+ premiseId: Id<"premises">;
509
+ embedding: number[];
510
+ }[], {
511
+ premiseId: Id<"premises">;
512
+ embedding: number[];
513
+ }[] | import("@langchain/langgraph").OverwriteValue<{
514
+ premiseId: Id<"premises">;
515
+ embedding: number[];
516
+ }[]>, unknown>;
486
517
  resolvedIntentInIndex: import("@langchain/langgraph").BaseChannel<boolean, boolean | import("@langchain/langgraph").OverwriteValue<boolean>, unknown>;
487
518
  createIntentSuggested: import("@langchain/langgraph").BaseChannel<boolean, boolean | import("@langchain/langgraph").OverwriteValue<boolean>, unknown>;
488
519
  suggestedIntentDescription: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
@@ -631,6 +662,16 @@ export declare class OpportunityGraphFactory {
631
662
  discoverySource: import("@langchain/langgraph").BaseChannel<"profile" | "intent", "profile" | "intent" | import("@langchain/langgraph").OverwriteValue<"profile" | "intent">, unknown>;
632
663
  resolvedTriggerIntentId: import("@langchain/langgraph").BaseChannel<Id<"intents"> | undefined, Id<"intents"> | import("@langchain/langgraph").OverwriteValue<Id<"intents"> | undefined> | undefined, unknown>;
633
664
  sourceProfile: import("@langchain/langgraph").BaseChannel<SourceProfileData | null, SourceProfileData | import("@langchain/langgraph").OverwriteValue<SourceProfileData | null> | null, unknown>;
665
+ sourcePremises: import("@langchain/langgraph").BaseChannel<{
666
+ premiseId: Id<"premises">;
667
+ embedding: number[];
668
+ }[], {
669
+ premiseId: Id<"premises">;
670
+ embedding: number[];
671
+ }[] | import("@langchain/langgraph").OverwriteValue<{
672
+ premiseId: Id<"premises">;
673
+ embedding: number[];
674
+ }[]>, unknown>;
634
675
  resolvedIntentInIndex: import("@langchain/langgraph").BaseChannel<boolean, boolean | import("@langchain/langgraph").OverwriteValue<boolean>, unknown>;
635
676
  createIntentSuggested: import("@langchain/langgraph").BaseChannel<boolean, boolean | import("@langchain/langgraph").OverwriteValue<boolean>, unknown>;
636
677
  suggestedIntentDescription: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
@@ -1010,6 +1051,16 @@ export declare class OpportunityGraphFactory {
1010
1051
  discoverySource: import("@langchain/langgraph").BaseChannel<"profile" | "intent", "profile" | "intent" | import("@langchain/langgraph").OverwriteValue<"profile" | "intent">, unknown>;
1011
1052
  resolvedTriggerIntentId: import("@langchain/langgraph").BaseChannel<Id<"intents"> | undefined, Id<"intents"> | import("@langchain/langgraph").OverwriteValue<Id<"intents"> | undefined> | undefined, unknown>;
1012
1053
  sourceProfile: import("@langchain/langgraph").BaseChannel<SourceProfileData | null, SourceProfileData | import("@langchain/langgraph").OverwriteValue<SourceProfileData | null> | null, unknown>;
1054
+ sourcePremises: import("@langchain/langgraph").BaseChannel<{
1055
+ premiseId: Id<"premises">;
1056
+ embedding: number[];
1057
+ }[], {
1058
+ premiseId: Id<"premises">;
1059
+ embedding: number[];
1060
+ }[] | import("@langchain/langgraph").OverwriteValue<{
1061
+ premiseId: Id<"premises">;
1062
+ embedding: number[];
1063
+ }[]>, unknown>;
1013
1064
  resolvedIntentInIndex: import("@langchain/langgraph").BaseChannel<boolean, boolean | import("@langchain/langgraph").OverwriteValue<boolean>, unknown>;
1014
1065
  createIntentSuggested: import("@langchain/langgraph").BaseChannel<boolean, boolean | import("@langchain/langgraph").OverwriteValue<boolean>, unknown>;
1015
1066
  suggestedIntentDescription: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"opportunity.graph.d.ts","sourceRoot":"","sources":["../../src/opportunity/opportunity.graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opportunity.graph.d.ts","sourceRoot":"","sources":["../../src/opportunity/opportunity.graph.ts"],"names":[],"mappings":"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"}
@@ -174,9 +174,10 @@ export class OpportunityGraphFactory {
174
174
  };
175
175
  }
176
176
  const discoveryUserId = state.onBehalfOfUserId ?? state.userId;
177
- const [intents, profile] = await Promise.all([
177
+ const [intents, profile, userPremises] = await Promise.all([
178
178
  this.database.getActiveIntents(discoveryUserId),
179
179
  this.database.getProfile(discoveryUserId),
180
+ this.database.getPremisesForUser(discoveryUserId, 'ACTIVE'),
180
181
  ]);
181
182
  const indexedIntents = intents.map((intent) => ({
182
183
  intentId: intent.id,
@@ -192,13 +193,20 @@ export class OpportunityGraphFactory {
192
193
  attributes: profile.attributes ?? undefined,
193
194
  }
194
195
  : null;
196
+ const sourcePremises = (userPremises ?? [])
197
+ .filter(p => p.embedding && p.embedding.length > 0)
198
+ .map(p => ({
199
+ premiseId: p.id,
200
+ embedding: p.embedding,
201
+ }));
195
202
  return {
196
203
  userNetworks: userNetworkIds,
197
204
  indexedIntents,
198
205
  sourceProfile,
206
+ sourcePremises,
199
207
  trace: [{
200
208
  node: "prep",
201
- detail: `${userNetworkIds.length} network(s), ${intents.length} intent(s), ${profile ? 'profile loaded' : 'no profile'}`,
209
+ detail: `${userNetworkIds.length} network(s), ${intents.length} intent(s), ${sourcePremises.length} premise(s), ${profile ? 'profile loaded' : 'no profile'}`,
202
210
  }],
203
211
  };
204
212
  }, { context: { userId: state.userId }, logOutput: true }).catch((error) => {
@@ -696,12 +704,30 @@ export class OpportunityGraphFactory {
696
704
  merged: merged.length,
697
705
  },
698
706
  });
699
- return { candidates: filterByTarget(merged), trace: traceEntries };
707
+ const premiseCands = await runPremiseDiscovery();
708
+ const withPremises = mergePremiseCandidates(merged, premiseCands);
709
+ if (premiseCands.length > 0) {
710
+ traceEntries.push({ node: "discovery", detail: `+ Premise search → ${premiseCands.length} candidate(s), merged to ${withPremises.length}` });
711
+ }
712
+ return { candidates: filterByTarget(withPremises), trace: traceEntries };
713
+ }
714
+ const premiseCands = await runPremiseDiscovery();
715
+ const withPremises = mergePremiseCandidates(queryCandidates, premiseCands);
716
+ if (premiseCands.length > 0) {
717
+ traceEntries.push({ node: "discovery", detail: `+ Premise search → ${premiseCands.length} candidate(s), merged to ${withPremises.length}` });
700
718
  }
701
- return { candidates: filterByTarget(queryCandidates), trace: traceEntries };
719
+ return { candidates: filterByTarget(withPremises), trace: traceEntries };
702
720
  }
703
721
  // No search query - use profile embedding directly (mirror-only)
704
722
  if (!vector || vector.length === 0) {
723
+ // Still attempt premise-based discovery even without a profile vector
724
+ const premiseCands = await runPremiseDiscovery();
725
+ if (premiseCands.length > 0) {
726
+ return {
727
+ candidates: filterByTarget(premiseCands),
728
+ trace: [{ node: "discovery", detail: `No profile vector; premise search → ${premiseCands.length} candidate(s)` }],
729
+ };
730
+ }
705
731
  return { candidates: [] };
706
732
  }
707
733
  const allCandidates = [];
@@ -799,8 +825,13 @@ export class OpportunityGraphFactory {
799
825
  },
800
826
  });
801
827
  }
828
+ const premiseCands = await runPremiseDiscovery();
829
+ const withPremises = mergePremiseCandidates(candidates, premiseCands);
830
+ if (premiseCands.length > 0) {
831
+ traceEntries.push({ node: "discovery", detail: `+ Premise search → ${premiseCands.length} candidate(s), merged to ${withPremises.length}` });
832
+ }
802
833
  return {
803
- candidates: filterByTarget(candidates),
834
+ candidates: filterByTarget(withPremises),
804
835
  trace: traceEntries,
805
836
  };
806
837
  }
@@ -892,12 +923,85 @@ export class OpportunityGraphFactory {
892
923
  }
893
924
  return Array.from(byKey.values());
894
925
  }
926
+ /**
927
+ * Premise-to-premise discovery (path D).
928
+ * Searches for other users' premises similar to the discoverer's premises,
929
+ * scoped to target networks. Additive — merges into existing candidates.
930
+ */
931
+ async function runPremiseDiscovery() {
932
+ if (!state.sourcePremises?.length)
933
+ return [];
934
+ const targetNetworkIds = state.targetNetworks.map(t => t.networkId);
935
+ if (targetNetworkIds.length === 0)
936
+ return [];
937
+ logger.verbose('[Graph:Discovery] runPremiseDiscovery start', {
938
+ premiseCount: state.sourcePremises.length,
939
+ targetNetworks: targetNetworkIds.length,
940
+ });
941
+ const searchResults = await Promise.all(state.sourcePremises.map(sp => self.database.searchPremisesBySimilarity({
942
+ embedding: sp.embedding,
943
+ networkIds: targetNetworkIds,
944
+ excludeUserId: discoveryUserId,
945
+ limit: 20,
946
+ })));
947
+ const premiseCandidates = [];
948
+ for (const results of searchResults) {
949
+ for (const r of results) {
950
+ premiseCandidates.push({
951
+ candidateUserId: r.userId,
952
+ candidatePremiseId: r.premiseId,
953
+ networkId: r.networkId,
954
+ similarity: typeof r.similarity === 'number' ? r.similarity : parseFloat(String(r.similarity)),
955
+ lens: 'premise_match',
956
+ candidatePayload: r.assertionText ?? '',
957
+ discoverySource: 'premise-similarity',
958
+ });
959
+ }
960
+ }
961
+ // Dedup by userId + premiseId + networkId (a premise can appear in multiple networks)
962
+ const byKey = new Map();
963
+ for (const c of premiseCandidates) {
964
+ const key = `${c.candidateUserId}:${c.candidatePremiseId ?? 'none'}:${c.networkId}`;
965
+ if (!byKey.has(key) || c.similarity > (byKey.get(key)?.similarity ?? 0)) {
966
+ byKey.set(key, c);
967
+ }
968
+ }
969
+ const deduped = Array.from(byKey.values());
970
+ logger.verbose('[Graph:Discovery] runPremiseDiscovery complete', {
971
+ rawCount: premiseCandidates.length,
972
+ dedupedCount: deduped.length,
973
+ });
974
+ return deduped;
975
+ }
976
+ /**
977
+ * Merge premise candidates into an existing candidate list.
978
+ * Deduplicates by userId + networkId + discoverySource + entityId.
979
+ */
980
+ function mergePremiseCandidates(existing, premise) {
981
+ if (premise.length === 0)
982
+ return existing;
983
+ const merged = new Map();
984
+ for (const c of [...existing, ...premise]) {
985
+ const key = `${c.candidateUserId}:${c.networkId}:${c.discoverySource}:${c.candidateIntentId ?? c.candidatePremiseId ?? 'none'}`;
986
+ if (!merged.has(key) || c.similarity > (merged.get(key)?.similarity ?? 0)) {
987
+ merged.set(key, c);
988
+ }
989
+ }
990
+ return Array.from(merged.values());
991
+ }
895
992
  const resolvedIntent = state.resolvedTriggerIntentId
896
993
  ? state.indexedIntents.find((i) => i.intentId === state.resolvedTriggerIntentId)
897
994
  : state.indexedIntents[0];
898
995
  const searchText = state.searchQuery ?? resolvedIntent?.payload ?? '';
899
996
  if (!searchText) {
900
997
  logger.warn('[Graph:Discovery] No search text available for intent path');
998
+ const premiseCands = await runPremiseDiscovery();
999
+ if (premiseCands.length > 0) {
1000
+ return {
1001
+ candidates: filterByTarget(premiseCands),
1002
+ trace: [{ node: "discovery", detail: `No search text; premise search → ${premiseCands.length} candidate(s)` }],
1003
+ };
1004
+ }
901
1005
  return { candidates: [] };
902
1006
  }
903
1007
  const discovererContext = buildDiscovererContext(state.sourceProfile, state.indexedIntents);
@@ -914,6 +1018,14 @@ export class OpportunityGraphFactory {
914
1018
  const hydeEmbeddings = hydeResult.hydeEmbeddings;
915
1019
  const lenses = hydeResult.lenses ?? [];
916
1020
  if (!hydeEmbeddings || Object.keys(hydeEmbeddings).length === 0) {
1021
+ const premiseCands = await runPremiseDiscovery();
1022
+ if (premiseCands.length > 0) {
1023
+ return {
1024
+ hydeEmbeddings: {},
1025
+ candidates: filterByTarget(premiseCands),
1026
+ trace: [{ node: "discovery", detail: `No HyDE embeddings; premise search → ${premiseCands.length} candidate(s)` }],
1027
+ };
1028
+ }
917
1029
  return { hydeEmbeddings: {}, candidates: [] };
918
1030
  }
919
1031
  const lensMap = new Map(lenses.map(l => [l.label, l]));
@@ -1039,9 +1151,14 @@ export class OpportunityGraphFactory {
1039
1151
  },
1040
1152
  });
1041
1153
  }
1154
+ const premiseCands = await runPremiseDiscovery();
1155
+ const withPremises = mergePremiseCandidates(candidates, premiseCands);
1156
+ if (premiseCands.length > 0) {
1157
+ traceEntries.push({ node: "discovery", detail: `+ Premise search → ${premiseCands.length} candidate(s), merged to ${withPremises.length}` });
1158
+ }
1042
1159
  return {
1043
1160
  hydeEmbeddings: hydeEmbeddings,
1044
- candidates: filterByTarget(candidates),
1161
+ candidates: filterByTarget(withPremises),
1045
1162
  trace: traceEntries,
1046
1163
  };
1047
1164
  }
@@ -2326,11 +2443,23 @@ export class OpportunityGraphFactory {
2326
2443
  }
2327
2444
  else {
2328
2445
  // Discovery path: opportunity_graph source, no introducer, lifecycle guard for agent/patient.
2446
+ // Build premise lookup from discovery candidates for premise tracking.
2447
+ // When multiple premise candidates exist for the same user, keep the highest-similarity one.
2448
+ const premiseLookup = new Map();
2449
+ for (const c of state.candidates ?? []) {
2450
+ if (c.discoverySource === 'premise-similarity' && c.candidatePremiseId) {
2451
+ const existing = premiseLookup.get(c.candidateUserId);
2452
+ if (!existing || c.similarity > existing.similarity) {
2453
+ premiseLookup.set(c.candidateUserId, { premiseId: c.candidatePremiseId, similarity: c.similarity });
2454
+ }
2455
+ }
2456
+ }
2329
2457
  const evaluatorActors = evaluated.actors.map((a) => ({
2330
2458
  networkId: a.networkId ?? indexIdForActors,
2331
2459
  userId: a.userId,
2332
2460
  role: a.role,
2333
2461
  ...(a.intentId ? { intent: a.intentId } : {}),
2462
+ ...(premiseLookup.has(a.userId) ? { premise: premiseLookup.get(a.userId).premiseId } : {}),
2334
2463
  }));
2335
2464
  actors = evaluatorActors;
2336
2465
  const hasIntroducerActor = actors.some(a => a.role === 'introducer');