@indexnetwork/protocol 5.1.0-rc.367.1 → 5.2.1-rc.369.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 (68) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/enrichment/enrichment.generator.d.ts +3 -1
  3. package/dist/enrichment/enrichment.generator.d.ts.map +1 -1
  4. package/dist/enrichment/enrichment.generator.js +3 -3
  5. package/dist/enrichment/enrichment.generator.js.map +1 -1
  6. package/dist/index.d.ts +0 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +0 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/negotiation/negotiation.summarizer.d.ts +1 -1
  11. package/dist/negotiation/negotiation.summarizer.d.ts.map +1 -1
  12. package/dist/negotiation/negotiation.summarizer.js.map +1 -1
  13. package/dist/opportunity/discovery-question.helper.d.ts +1 -1
  14. package/dist/opportunity/discovery-question.helper.d.ts.map +1 -1
  15. package/dist/opportunity/discovery-question.helper.js.map +1 -1
  16. package/dist/opportunity/negotiation-summary.builder.d.ts +1 -1
  17. package/dist/opportunity/negotiation-summary.builder.d.ts.map +1 -1
  18. package/dist/opportunity/negotiation-summary.builder.js.map +1 -1
  19. package/dist/opportunity/opportunity.discover.js.map +1 -1
  20. package/dist/opportunity/opportunity.evaluator.d.ts +3 -0
  21. package/dist/opportunity/opportunity.evaluator.d.ts.map +1 -1
  22. package/dist/opportunity/opportunity.evaluator.js +4 -4
  23. package/dist/opportunity/opportunity.evaluator.js.map +1 -1
  24. package/dist/opportunity/opportunity.graph.d.ts +323 -15
  25. package/dist/opportunity/opportunity.graph.d.ts.map +1 -1
  26. package/dist/opportunity/opportunity.presenter.d.ts +6 -2
  27. package/dist/opportunity/opportunity.presenter.d.ts.map +1 -1
  28. package/dist/opportunity/opportunity.presenter.js +10 -8
  29. package/dist/opportunity/opportunity.presenter.js.map +1 -1
  30. package/dist/opportunity/opportunity.state.d.ts +68 -2
  31. package/dist/opportunity/opportunity.state.d.ts.map +1 -1
  32. package/dist/opportunity/opportunity.state.js.map +1 -1
  33. package/dist/premise/premise.analyzer.d.ts +3 -1
  34. package/dist/premise/premise.analyzer.d.ts.map +1 -1
  35. package/dist/premise/premise.analyzer.js +3 -3
  36. package/dist/premise/premise.analyzer.js.map +1 -1
  37. package/dist/premise/premise.decomposer.d.ts +3 -1
  38. package/dist/premise/premise.decomposer.d.ts.map +1 -1
  39. package/dist/premise/premise.decomposer.js +3 -3
  40. package/dist/premise/premise.decomposer.js.map +1 -1
  41. package/dist/questioner/questioner.discovery.prompt.d.ts +9 -0
  42. package/dist/questioner/questioner.discovery.prompt.d.ts.map +1 -0
  43. package/dist/{opportunity/question.prompt.js → questioner/questioner.discovery.prompt.js} +6 -7
  44. package/dist/questioner/questioner.discovery.prompt.js.map +1 -0
  45. package/dist/questioner/questioner.presets.js +2 -2
  46. package/dist/questioner/questioner.presets.js.map +1 -1
  47. package/dist/questioner/questioner.types.d.ts +2 -2
  48. package/dist/questioner/questioner.types.d.ts.map +1 -1
  49. package/dist/questioner/questioner.types.js.map +1 -1
  50. package/dist/shared/agent/model.config.d.ts +0 -5
  51. package/dist/shared/agent/model.config.d.ts.map +1 -1
  52. package/dist/shared/agent/model.config.js +0 -1
  53. package/dist/shared/agent/model.config.js.map +1 -1
  54. package/dist/shared/interfaces/negotiation-summary.interface.d.ts +1 -1
  55. package/dist/shared/interfaces/negotiation-summary.interface.d.ts.map +1 -1
  56. package/dist/shared/interfaces/negotiation-summary.interface.js.map +1 -1
  57. package/dist/shared/interfaces/question-generator.interface.d.ts +7 -5
  58. package/dist/shared/interfaces/question-generator.interface.d.ts.map +1 -1
  59. package/dist/shared/interfaces/question-generator.interface.js.map +1 -1
  60. package/dist/shared/schemas/discovery-question.schema.d.ts +2 -2
  61. package/package.json +1 -1
  62. package/dist/opportunity/question.generator.d.ts +0 -22
  63. package/dist/opportunity/question.generator.d.ts.map +0 -1
  64. package/dist/opportunity/question.generator.js +0 -147
  65. package/dist/opportunity/question.generator.js.map +0 -1
  66. package/dist/opportunity/question.prompt.d.ts +0 -102
  67. package/dist/opportunity/question.prompt.d.ts.map +0 -1
  68. package/dist/opportunity/question.prompt.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -25,6 +25,7 @@ See [STABILITY.md](./STABILITY.md) for the public-contract and tier definitions.
25
25
  - QUD-typed intent clarification (`missing_constituent`, `missing_constraint`, and `open_alternative_set`) across the live intent elaboration and Questioner flows, with internal detection metadata and exact-match eval coverage (IND-425).
26
26
 
27
27
  ### Changed
28
+ - Made matching, opportunity, premise, and profile eval retries, failures, timeouts, cancellations, and incomplete runs first-class attempt evidence; incomplete runs now persist diagnostics but never compare against or update baselines (IND-444).
28
29
  - Added the pool-question drift lifecycle: exact recipient+intent final freshness gates, shared inclusive `0.7` Jaccard admission, system-voided stale snapshots, durable MODE cadence suppression, intent-edit invalidation, and audit-preserved stale scoped adjustments excluded from ranking (IND-422).
29
30
  - Retargeted the HyDE evidence-v2 harness to background-only discovery: 75 saved-intent cases plus 15 independently authored user-context cases (90 cases/900 candidates), with private saved-intent -> internal `query` and user-context -> `context` graph-source provenance, production-shaped saved-intent discoverer context, source-specific non-gating diagnostics, and no direct-search cohort. The four counterbalanced paired runs, blinded independent human adjudication, hierarchical bootstrap intervals, eight fixed gates, and production agents remain unchanged; this changes eval evidence and documentation only (IND-426).
30
31
  - Marked atomically claimed, user-balanced and privacy-thresholded frame-centroid observation plus the privacy-thresholded non-causal yield proxy as shipped by IND-430, while explicitly leaving immutable per-discovery provenance and causal drift diagnosis as future work; protocol runtime behavior is unchanged.
@@ -34,6 +35,7 @@ See [STABILITY.md](./STABILITY.md) for the public-contract and tier definitions.
34
35
  - Included protocol documentation files in the published package tarball so README links remain available to package consumers.
35
36
 
36
37
  ### Fixed
38
+ - Forwarded per-attempt `AbortSignal`s through eval provider paths and hardened failure provenance against secret leakage, hostile rejection objects, classifier failures, and concurrent artifact writers (IND-444).
37
39
  - Aligned HyDE evidence scoring with the live background `0.30` cutoff, retained per-lens cosines for score/ranking revalidation, required report-stage parent recomputation, and prevented forced outputs from overwriting input evidence artifacts (IND-426).
38
40
  - Scoped pool-question adjustments to the exact answering recipient and selected intent, ignored legacy unscoped factors, and restricted Tier-0/newborn writes to exact trigger-intent provenance so shared opportunities cannot re-rank another viewer or intent.
39
41
  - Made trigger-intent discovery fail closed over current intent assignments, active owner memberships, and explicit caller scope; enforced active candidate membership across intent/premise/context retrieval plus pre-evaluation/pre-persistence rechecks and selected-intent Radar reads.
@@ -22,7 +22,9 @@ export declare class EnrichmentGenerator {
22
22
  private model;
23
23
  constructor();
24
24
  private toString;
25
- invoke(input: string): Promise<{
25
+ invoke(input: string, options?: {
26
+ signal?: AbortSignal;
27
+ }): Promise<{
26
28
  output: {
27
29
  identity: {
28
30
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"enrichment.generator.d.ts","sourceRoot":"/","sources":["enrichment/enrichment.generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAkB3B,QAAA,MAAM,cAAc;;;;;;;;;;;;;iBAalB,CAAC;AAEH,KAAK,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9C,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,WAAW,CAAuD;IACjF,OAAO,CAAC,KAAK,CAAkF;;IAQ/F,OAAO,CAAC,QAAQ;IAeH,MAAM,CAAC,KAAK,EAAE,MAAM;;;;;;;;;;;;;;;;;WAgBnB,MAAM;;;;;;;;;;;;;;;;;;;;;;;CAerB"}
1
+ {"version":3,"file":"enrichment.generator.d.ts","sourceRoot":"/","sources":["enrichment/enrichment.generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAkB3B,QAAA,MAAM,cAAc;;;;;;;;;;;;;iBAalB,CAAC;AAEH,KAAK,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9C,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,WAAW,CAAuD;IACjF,OAAO,CAAC,KAAK,CAAkF;;IAQ/F,OAAO,CAAC,QAAQ;IAeH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO;;;;;;;;;;;;;;;;;WAgB3D,MAAM;;;;;;;;;;;;;;;;;;;;;;;CAerB"}
@@ -57,13 +57,13 @@ export class EnrichmentGenerator {
57
57
  '## Skills', profile.attributes.skills.join(', ')
58
58
  ].join('\n');
59
59
  }
60
- async invoke(input) {
60
+ async invoke(input, options = {}) {
61
61
  logger.verbose("Received input", { inputLength: input?.length });
62
62
  const messages = [
63
63
  new SystemMessage(systemPrompt),
64
64
  new HumanMessage(`Here is the raw data:\n${input}`)
65
65
  ];
66
- const result = await invokeWithAbortSignal(this.model, messages);
66
+ const result = await invokeWithAbortSignal(this.model, messages, options.signal);
67
67
  const output = responseFormat.parse(result);
68
68
  const textToEmbed = this.toString(output);
69
69
  logger.verbose("Generated profile", {
@@ -88,7 +88,7 @@ export class EnrichmentGenerator {
88
88
  __decorate([
89
89
  Timed(),
90
90
  __metadata("design:type", Function),
91
- __metadata("design:paramtypes", [String]),
91
+ __metadata("design:paramtypes", [String, Object]),
92
92
  __metadata("design:returntype", Promise)
93
93
  ], EnrichmentGenerator.prototype, "invoke", null);
94
94
  //# sourceMappingURL=enrichment.generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enrichment.generator.js","sourceRoot":"/","sources":["enrichment/enrichment.generator.ts"],"names":[],"mappings":"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","sourcesContent":["import { HumanMessage, SystemMessage } from \"@langchain/core/messages\";\nimport { tool } from \"@langchain/core/tools\";\nimport { z } from \"zod/v4\";\nimport { protocolLogger } from \"../shared/observability/protocol.logger.js\";\nimport { Timed } from \"../shared/observability/performance.js\";\nimport { createStructuredModel } from \"../shared/agent/model.config.js\";\nimport { invokeWithAbortSignal } from \"../shared/agent/model-signal.js\";\n\nconst logger = protocolLogger(\"EnrichmentGenerator\");\n\nconst systemPrompt = `\n You are an expert profiler. Your task is to synthesize a structured User Profile from raw data or user requests.\n\n When given EXISTING PROFILE + USER REQUEST: Apply the request to the existing profile. Add, update, or remove skills and interests as the user asks. Preserve everything else. Output the full updated profile.\n\n When given raw data only: Infer name, bio, location, narrative.context, and extract skills and interests.\n\n PRIVACY: identity.bio and narrative.context are public-facing. Never include email addresses, phone numbers, physical addresses, government IDs, or other contact identifiers — even if they appear in the raw data. Describe the person professionally; do not embed ways to contact them.\n`;\n\nconst responseFormat = z.object({\n identity: z.object({\n name: z.string().describe(\"The user's full name\"),\n bio: z.string().describe(\"Professional summary (2-3 sentences) only; no email, phone, physical address, government ID, or other contact identifiers\"),\n location: z.string().describe(\"Inferred location (City, Country) or 'Remote'\"),\n }),\n narrative: z.object({\n context: z.string().describe(\"Rich narrative without email, phone, physical address, government ID, or other contact identifiers\"),\n }),\n attributes: z.object({\n interests: z.array(z.string()).describe(\"Inferred or explicit interests\"),\n skills: z.array(z.string()).describe(\"Professional skills\"),\n }),\n});\n\ntype Profile = z.infer<typeof responseFormat>;\nexport type GeneratedProfile = Profile & { userId: string };\n\nexport class EnrichmentGenerator {\n private static sharedModel: ReturnType<typeof createStructuredModel> | undefined;\n private model: { invoke(input: unknown, config?: { signal?: AbortSignal }): Promise<unknown> };\n\n constructor() {\n this.model = EnrichmentGenerator.sharedModel ??= createStructuredModel(\"profileGenerator\", responseFormat, {\n name: \"profile_generator\"\n });\n }\n\n private toString(profile: Profile): string {\n return [\n '# Identity',\n '## Name', profile.identity.name,\n '## Bio', profile.identity.bio,\n '## Location', profile.identity.location,\n '# Narrative',\n '## Context', profile.narrative.context,\n '# Attributes',\n '## Interests', profile.attributes.interests.join(', '),\n '## Skills', profile.attributes.skills.join(', ')\n ].join('\\n');\n }\n\n @Timed()\n public async invoke(input: string) {\n logger.verbose(\"Received input\", { inputLength: input?.length });\n const messages = [\n new SystemMessage(systemPrompt),\n new HumanMessage(`Here is the raw data:\\n${input}`)\n ];\n const result = await invokeWithAbortSignal(this.model, messages);\n const output = responseFormat.parse(result);\n const textToEmbed = this.toString(output);\n logger.verbose(\"Generated profile\", {\n skillsCount: output.attributes.skills.length,\n interestsCount: output.attributes.interests.length\n });\n return { output, textToEmbed };\n }\n\n public static asTool() {\n return tool(\n async (args: { input: string }) => {\n const profileGenerator = new EnrichmentGenerator();\n return await profileGenerator.invoke(args.input);\n },\n {\n name: 'profileGenerator',\n description: 'Profile Generator',\n schema: z.object({\n input: z.string().describe('Raw data scraped from the web (via Parallel.ai)'),\n })\n }\n );\n }\n}"]}
1
+ {"version":3,"file":"enrichment.generator.js","sourceRoot":"/","sources":["enrichment/enrichment.generator.ts"],"names":[],"mappings":"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","sourcesContent":["import { HumanMessage, SystemMessage } from \"@langchain/core/messages\";\nimport { tool } from \"@langchain/core/tools\";\nimport { z } from \"zod/v4\";\nimport { protocolLogger } from \"../shared/observability/protocol.logger.js\";\nimport { Timed } from \"../shared/observability/performance.js\";\nimport { createStructuredModel } from \"../shared/agent/model.config.js\";\nimport { invokeWithAbortSignal } from \"../shared/agent/model-signal.js\";\n\nconst logger = protocolLogger(\"EnrichmentGenerator\");\n\nconst systemPrompt = `\n You are an expert profiler. Your task is to synthesize a structured User Profile from raw data or user requests.\n\n When given EXISTING PROFILE + USER REQUEST: Apply the request to the existing profile. Add, update, or remove skills and interests as the user asks. Preserve everything else. Output the full updated profile.\n\n When given raw data only: Infer name, bio, location, narrative.context, and extract skills and interests.\n\n PRIVACY: identity.bio and narrative.context are public-facing. Never include email addresses, phone numbers, physical addresses, government IDs, or other contact identifiers — even if they appear in the raw data. Describe the person professionally; do not embed ways to contact them.\n`;\n\nconst responseFormat = z.object({\n identity: z.object({\n name: z.string().describe(\"The user's full name\"),\n bio: z.string().describe(\"Professional summary (2-3 sentences) only; no email, phone, physical address, government ID, or other contact identifiers\"),\n location: z.string().describe(\"Inferred location (City, Country) or 'Remote'\"),\n }),\n narrative: z.object({\n context: z.string().describe(\"Rich narrative without email, phone, physical address, government ID, or other contact identifiers\"),\n }),\n attributes: z.object({\n interests: z.array(z.string()).describe(\"Inferred or explicit interests\"),\n skills: z.array(z.string()).describe(\"Professional skills\"),\n }),\n});\n\ntype Profile = z.infer<typeof responseFormat>;\nexport type GeneratedProfile = Profile & { userId: string };\n\nexport class EnrichmentGenerator {\n private static sharedModel: ReturnType<typeof createStructuredModel> | undefined;\n private model: { invoke(input: unknown, config?: { signal?: AbortSignal }): Promise<unknown> };\n\n constructor() {\n this.model = EnrichmentGenerator.sharedModel ??= createStructuredModel(\"profileGenerator\", responseFormat, {\n name: \"profile_generator\"\n });\n }\n\n private toString(profile: Profile): string {\n return [\n '# Identity',\n '## Name', profile.identity.name,\n '## Bio', profile.identity.bio,\n '## Location', profile.identity.location,\n '# Narrative',\n '## Context', profile.narrative.context,\n '# Attributes',\n '## Interests', profile.attributes.interests.join(', '),\n '## Skills', profile.attributes.skills.join(', ')\n ].join('\\n');\n }\n\n @Timed()\n public async invoke(input: string, options: { signal?: AbortSignal } = {}) {\n logger.verbose(\"Received input\", { inputLength: input?.length });\n const messages = [\n new SystemMessage(systemPrompt),\n new HumanMessage(`Here is the raw data:\\n${input}`)\n ];\n const result = await invokeWithAbortSignal(this.model, messages, options.signal);\n const output = responseFormat.parse(result);\n const textToEmbed = this.toString(output);\n logger.verbose(\"Generated profile\", {\n skillsCount: output.attributes.skills.length,\n interestsCount: output.attributes.interests.length\n });\n return { output, textToEmbed };\n }\n\n public static asTool() {\n return tool(\n async (args: { input: string }) => {\n const profileGenerator = new EnrichmentGenerator();\n return await profileGenerator.invoke(args.input);\n },\n {\n name: 'profileGenerator',\n description: 'Profile Generator',\n schema: z.object({\n input: z.string().describe('Raw data scraped from the web (via Parallel.ai)'),\n })\n }\n );\n }\n}"]}
package/dist/index.d.ts CHANGED
@@ -158,7 +158,6 @@ export { OpportunityPresenter, gatherPresenterContext } from "./opportunity/oppo
158
158
  export { createOpportunityTools } from "./opportunity/opportunity.tools.js";
159
159
  export { createEnrichmentTools } from "./enrichment/enrichment.tools.js";
160
160
  export type { PresenterDatabase } from "./opportunity/opportunity.presenter.js";
161
- export { QuestionGenerator } from "./opportunity/question.generator.js";
162
161
  export { renderNetworkContext } from './shared/network/metadata.renderer.js';
163
162
  export { canUserSeeOpportunity, isActionableForViewer, validateOpportunityActors, classifyOpportunity, selectByComposition, selectDigestCandidates, DIGEST_REDELIVERY_COOLDOWN_DAYS, FEED_SOFT_TARGETS } from "./opportunity/opportunity.utils.js";
164
163
  export type { DigestDeliveredRow } from "./opportunity/opportunity.utils.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -98,7 +98,6 @@ export { OpportunityEvaluator } from "./opportunity/opportunity.evaluator.js";
98
98
  export { OpportunityPresenter, gatherPresenterContext } from "./opportunity/opportunity.presenter.js";
99
99
  export { createOpportunityTools } from "./opportunity/opportunity.tools.js";
100
100
  export { createEnrichmentTools } from "./enrichment/enrichment.tools.js";
101
- export { QuestionGenerator } from "./opportunity/question.generator.js";
102
101
  // ─── Support utilities ────────────────────────────────────────────────────────
103
102
  export { renderNetworkContext } from './shared/network/metadata.renderer.js';
104
103
  export { canUserSeeOpportunity, isActionableForViewer, validateOpportunityActors, classifyOpportunity, selectByComposition, selectDigestCandidates, DIGEST_REDELIVERY_COOLDOWN_DAYS, FEED_SOFT_TARGETS } from "./opportunity/opportunity.utils.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["index.ts"],"names":[],"mappings":"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","sourcesContent":["// =============================================================================\n// @indexnetwork/protocol — public API barrel\n//\n// This file is the ONLY supported entry point. Deep imports\n// (\"@indexnetwork/protocol/src/...\") are not part of the contract and may break\n// in any release. Every symbol is re-exported explicitly (no wildcards) so the\n// surface is reviewable and changes are intentional.\n//\n// Stability tiers are defined in STABILITY.md. In short:\n// • Stable — Interfaces, Graph factories, Agents, createChatTools,\n// the tool/runtime helpers, and shared schemas.\n// • Experimental — Sections marked @experimental below (advanced graph state\n// types and internal helpers); may change in a minor release.\n// =============================================================================\n\n// ─── Public API (recommended for external consumers) ──────────────────────────\n\nexport { createChatTools } from \"./shared/agent/tool.factory.js\";\nexport { getModelName } from \"./shared/agent/model.config.js\";\nexport type { ChatTools } from \"./shared/agent/tool.factory.js\";\nexport type { ModelConfig, ModelSettings } from \"./shared/agent/model.config.js\";\nexport type { ToolContext, ResolvedToolContext, ToolDeps, ProtocolDeps, RawToolDefinition, CompiledGraph } from \"./shared/agent/tool.helpers.js\";\nexport { ChatContextAccessError, resolveChatContext } from \"./shared/agent/tool.helpers.js\";\nexport {\n deriveAllowedNetworkIds,\n deriveDiscoveryNetworkIds,\n focusedNetworkId,\n focusedNetworkLabel,\n hasNetworkScope,\n scopeFromNetworkId,\n} from \"./shared/agent/tool.scope.js\";\nexport type { ToolScopeEnvelope, ToolScopeType, ScopeMembership, DeriveNetworkScopeInput } from \"./shared/agent/tool.scope.js\";\nexport { requestContext } from \"./shared/observability/request-context.js\";\nexport { setLoggerFactory } from \"./shared/observability/log.js\";\nexport type { LoggerWithSource as ProtocolLoggerWithSource } from \"./shared/observability/log.js\";\nexport { setTimingWrapper } from \"./shared/observability/performance.js\";\nexport { ToolRuntimeError, getToolTimeoutPolicy, invokeToolRuntime, toolRuntimeErrorToResult } from \"./shared/agent/tool.runtime.js\";\nexport type { ToolRuntimeErrorCode, ToolTimeoutClass, ToolTimeoutPolicy } from \"./shared/agent/tool.runtime.js\";\n\n// ─── Interfaces (implement these to wire up your infrastructure) ───────────────\n\nexport type { McpAuthResolver } from \"./shared/interfaces/auth.interface.js\";\nexport type { Cache, CacheOptions, HydeCache, OpportunityCache } from \"./shared/interfaces/cache.interface.js\";\nexport type { ChatSessionReader, ChatSessionDetail, ChatSessionSummary } from \"./shared/interfaces/chat-session.interface.js\";\nexport type { ChatSummaryReader } from \"./shared/interfaces/chat-summary.interface.js\";\nexport type { ChatMessageWriter } from \"./shared/interfaces/chat-message-writer.interface.js\";\nexport type { QuestionGeneratorReader } from \"./shared/interfaces/question-generator.interface.js\";\nexport type { QuestionerDatabase, PersistableQuestion, PersistedQuestion, QuestionFilters, ChatQuestionsHost, ChatQuestionAnswerOutcome } from \"./shared/interfaces/questioner.interface.js\";\nexport type { NegotiationSummaryReader } from \"./shared/interfaces/negotiation-summary.interface.js\";\nexport type { DiscoveryNegotiationDigest } from \"./shared/schemas/negotiation-digest.schema.js\";\nexport { NegotiationSummarizer, buildFallbackDigest } from \"./negotiation/negotiation.summarizer.js\";\nexport type { ContactServiceAdapter, ContactEntry, ContactImportResult, ContactInput, ContactResult, ContactSearchResult } from \"./shared/interfaces/contact.interface.js\";\nexport type {\n ChatGraphCompositeDatabase, UserDatabase, SystemDatabase, Database,\n OpportunityGraphDatabase, OpportunityControllerDatabase, OutcomeOutbox, HomeGraphDatabase,\n IntentGraphDatabase, IntentNetworkGraphDatabase, NetworkGraphDatabase, NetworkMembershipGraphDatabase,\n HydeGraphDatabase, EnrichmentGraphDatabase, PremiseGraphDatabase, NegotiationGraphDatabase,\n NegotiationQueries, NegotiationUserAnswer,\n Opportunity, OpportunityActor, OpportunityContext, OpportunityDetection, OpportunityInterpretation,\n OpportunityQueryOptions, OpportunitySignal, OpportunityStatus,\n ActiveIntent, CreatedIntent, CreateIntentData, UpdateIntentData, IntentRecord, SimilarIntent, SimilarIntentSearchOptions,\n IndexedIntentDetails, IndexMemberDetails, AssignmentNetworkMembership, NetworkAssignmentContext, NetworkMembership, OwnedIndex,\n CreateHydeDocumentData, HydeDocument, HydeSourceType, CreateOpportunityData,\n PremiseAnalysis, PremiseAssertion, PremiseProvenance, PremiseRecord, PremiseValidity,\n OnboardingPrivacyState, OnboardingProfileSeed, OnboardingState, PrivacyConsentDecision, PrivacyConsentSource,\n UpdateIndexSettingsData, UserRecord, UserSocial, ArchiveResult, Id,\n} from \"./shared/interfaces/database.interface.js\";\nexport type {\n Embedder, EmbeddingGenerator, EmbeddingGenerateOptions,\n VectorStore, VectorStoreOption, VectorSearchResult,\n HydeCandidate, HydeSearchOptions, LensEmbedding,\n} from \"./shared/interfaces/embedder.interface.js\";\nexport type { ProfileEnricher, EnrichmentRequest, EnrichmentResult } from \"./shared/interfaces/enrichment.interface.js\";\nexport type { IntegrationAdapter, IntegrationConnection, IntegrationSession, IntegrationSessionOptions, ToolActionResponse } from \"./shared/interfaces/integration.interface.js\";\nexport type { IntentGraphQueue } from \"./shared/interfaces/queue.interface.js\";\nexport type { Scraper, ExtractUrlContentOptions } from \"./shared/interfaces/scraper.interface.js\";\nexport type { DeliveryLedger, DeliveredOpportunityRow } from \"./shared/interfaces/delivery-ledger.interface.js\";\nexport type { MintConnectLink, ConnectLinkKind } from \"./shared/interfaces/connect-link.interface.js\";\nexport type {\n DiscoveryRunStore, DiscoveryRunQueue, DiscoveryRunInput, CreateDiscoveryRunInput,\n DiscoveryRunRecord, DiscoveryRunStatus,\n} from \"./shared/interfaces/discovery-run.interface.js\";\nexport type {\n EnrichmentRunStore, EnrichmentRunQueue, EnrichmentRunInput, CreateEnrichmentRunInput,\n UpdateUserEnrichmentRunInput, PreviewUserEnrichmentRunInput,\n EnrichmentRunRecord, EnrichmentRunStatus, EnrichmentRunOperation,\n} from \"./shared/interfaces/enrichment-run.interface.js\";\nexport type { NegotiationTimeoutQueue, AskUserExpiryPayload } from \"./shared/interfaces/negotiation-events.interface.js\";\nexport type { AgentDispatcher, AgentDispatchResult, NegotiationTurnPayload } from \"./shared/interfaces/agent-dispatcher.interface.js\";\nexport type { AgentRecord, AgentTransportRecord, AgentPermissionRecord, AgentWithRelations, CreateAgentInput, CreateTransportInput, GrantPermissionInput, AgentDatabase } from './shared/interfaces/agent.interface.js';\nexport { SYSTEM_AGENT_IDS } from './shared/interfaces/agent.interface.js';\n\n// ─── Shared schemas ───────────────────────────────────────────────────────────\n\nexport { ChatContextDigestSchema, type ChatContextDigest } from \"./shared/schemas/chat-context.schema.js\";\nexport { QuestionOptionSchema, QuestionSchema, UnderspecificationTypeSchema, QuestionStrategySchema, QuestionWithStrategySchema, QuestionGeneratorResponseSchema, QuestionPurposeSchema, QuestionModeSchema, QuestionDetectionSchema, QuestionPoolPushSchema, QuestionVoidedReasonSchema, QuestionPoolPushRequestStatusSchema, QuestionPoolPushRequestReasonSchema, QuestionActorSchema, QuestionAnswerSchema, type Question, type QuestionOption, type UnderspecificationType, type QuestionStrategy, type QuestionWithStrategy, type QuestionGeneratorResponse, type QuestionGenerationResult, type QuestionPurpose, type QuestionMode, type QuestionDetection, type QuestionPoolPush, type QuestionVoidedReason, type QuestionPoolPushRequestStatus, type QuestionPoolPushRequestReason, type QuestionActor, type QuestionAnswer } from \"./shared/schemas/question.schema.js\";\nexport type { PendingQuestionSummary } from \"./shared/schemas/pending-question.schema.js\";\nexport type { McpAuthInput } from \"./shared/schemas/mcp-auth.schema.js\";\nexport { UserIdentitySchema, type UserIdentity } from \"./shared/schemas/identity.schema.js\";\nexport type { DiscoverySourceProfile, DiscoverySummary, DiscoveryNegotiation, DiscoveryTurn, DiscoveryOutcome, DiscoveryQuestionInput, NegotiationRole } from \"./shared/schemas/discovery-question.schema.js\";\nexport { NetworkAssignmentResourceTypeSchema, NetworkAssignmentModeSchema, NetworkAssignmentScopeSchema, NetworkAssignmentPromptPresenceSchema, NetworkAssignmentPolicySchema, NetworkAssignmentRawScoresSchema, NetworkAssignmentMetadataSchema, OpportunityEvidenceKindSchema, OpportunityEvidenceSchema } from \"./shared/schemas/network-assignment.schema.js\";\nexport type { NetworkAssignmentResourceType, NetworkAssignmentMode, NetworkAssignmentScope, NetworkAssignmentPromptPresence, NetworkAssignmentPolicy, NetworkAssignmentRawScores, NetworkAssignmentMetadata, OpportunityEvidenceKind, OpportunityEvidence } from \"./shared/schemas/network-assignment.schema.js\";\nexport { DEFAULT_NETWORK_ASSIGNMENT_THRESHOLD, classifyPromptPresence, resolveAssignmentNetworkScope, buildNetworkAssignmentDecision, combineAssignmentScores } from \"./shared/assignment/network-assignment.policy.js\";\nexport type { PromptPresenceInput, ResolveAssignmentNetworkScopeArgs, AssignmentScopeMembership, BuildNetworkAssignmentDecisionArgs, NetworkAssignmentDecision } from \"./shared/assignment/network-assignment.policy.js\";\nexport { buildCandidateEvidence, withCandidateEvidence, mergeOpportunityEvidence, withMatchedStrategies, renderOpportunityEvidenceForPrompt } from \"./opportunity/opportunity.evidence.js\";\nexport type { EvidenceCandidateInput } from \"./opportunity/opportunity.evidence.js\";\n\n// ─── Intent clarification ─────────────────────────────────────────────────────\n\nexport { IntentClarifier, type IntentClarifierOutput } from \"./intent/intent.clarifier.js\";\n\n// ─── Graph factories ──────────────────────────────────────────────────────────\n\nexport { ChatGraphFactory } from \"./chat/chat.graph.js\";\nexport {\n ORCHESTRATOR_PERSONA,\n ORCHESTRATOR_PERSONA_ID,\n type ChatPersonaConfig,\n type ChatPersonaLoopBehaviors,\n} from \"./chat/chat.persona.js\";\nexport {\n NEGOTIATOR_PERSONA_ID,\n NEGOTIATOR_TOOL_NAMES,\n createNegotiatorPersona,\n createNegotiatorTools,\n filterNegotiatorTools,\n} from \"./chat/negotiator.persona.js\";\nexport { buildNegotiatorSystemContent, type NegotiatorPromptOptions } from \"./chat/negotiator.prompt.js\";\nexport { createNegotiatorMemoryTools } from \"./chat/negotiator.tools.js\";\nexport type {\n NegotiatorMemoryToolsHost,\n NegotiatorMemoryRememberInput,\n NegotiatorMemoryToolView,\n NegotiatorMemoryForgetResult,\n RememberableMemoryKind,\n} from \"./shared/interfaces/negotiator-memory.interface.js\";\nexport { HomeGraphFactory } from \"./opportunity/feed/feed.graph.js\";\nexport { HydeGraphFactory } from \"./shared/hyde/hyde.graph.js\";\nexport type { HydeGraphOptions, HydeLensInferrerLike, HydeGeneratorLike, HydeValidatorLike } from \"./shared/hyde/hyde.graph.js\";\nexport { getHydeGenerationMode, HYDE_FRAME_GENERATION_VERSION } from \"./shared/hyde/hyde.env.js\";\nexport type { HydeGenerationMode } from \"./shared/hyde/hyde.env.js\";\nexport { sanitizeHydeSourceFrame } from \"./shared/hyde/hyde.frame.js\";\nexport type { HydeSourceFrame, HydeFrameRole, HydeFrameHardConstraint, HydeFrameNamedEntity, HydeFrameVocabulary, HydeHardConstraintType, HydeNamedEntityType } from \"./shared/hyde/hyde.frame.js\";\nexport { HydeValidator } from \"./shared/hyde/hyde.validator.js\";\nexport type { HydeValidationInput, HydeValidationDocument, HydeValidationOutput, HydeValidationVerdict } from \"./shared/hyde/hyde.validator.js\";\nexport { NetworkGraphFactory } from \"./network/network.graph.js\";\nexport { NetworkMembershipGraphFactory } from \"./network/membership/membership.graph.js\";\nexport { IntentGraphFactory } from \"./intent/intent.graph.js\";\nexport { SemanticVerifier } from \"./intent/intent.verifier.js\";\nexport type { SemanticVerifierOutput } from \"./intent/intent.verifier.js\";\nexport { IntentNetworkGraphFactory } from \"./network/indexer/indexer.graph.js\";\nexport { MaintenanceGraphFactory } from \"./maintenance/maintenance.graph.js\";\nexport type { MaintenanceGraphDatabase, MaintenanceGraphCache, MaintenanceGraphQueue } from \"./maintenance/maintenance.graph.js\";\nexport { NegotiationGraphFactory, negotiateCandidates } from \"./negotiation/negotiation.graph.js\";\nexport { OpportunityGraphFactory } from \"./opportunity/opportunity.graph.js\";\nexport type { StampNewbornOpportunitiesFn, StampNewbornOpportunitiesInput } from \"./opportunity/opportunity.graph.js\";\nexport { EnrichmentGraphFactory } from \"./enrichment/enrichment.graph.js\";\nexport { PremiseGraphFactory } from \"./premise/premise.graph.js\";\n\n// ─── Agents ───────────────────────────────────────────────────────────────────\n\nexport { UserContextGenerator } from \"./context/context.generator.js\";\nexport type { UserContextInput, IncrementalContextInput, UserContextResult, GlobalContextInput, GlobalIncrementalContextInput } from \"./context/context.generator.js\";\nexport { ChatTitleGenerator } from \"./chat/chat.title.generator.js\";\nexport { ChatInterruptClassifier } from \"./chat/chat.interrupt.classifier.js\";\nexport type { ClassifyInterruptInput } from \"./chat/chat.interrupt.classifier.js\";\nexport { ChatSummarizer } from \"./chat/chat.summarizer.js\";\nexport type { ChatSummarizerInput, ChatSummarizerMessage } from \"./chat/chat.summarizer.js\";\nexport { HydeGenerator } from \"./shared/hyde/hyde.generator.js\";\nexport type { HydeGenerateInput, HydeGeneratorOutput } from \"./shared/hyde/hyde.generator.js\";\nexport { SuggestionGenerator } from \"./chat/chat.suggester.js\";\nexport type { SuggestionGeneratorInput } from \"./chat/chat.suggester.js\";\nexport { generateInviteMessage } from \"./contact/contact.inviter.js\";\nexport type { InviteInput, InviteOutput } from \"./contact/contact.inviter.js\";\nexport { IntentIndexer } from \"./intent/intent.indexer.js\";\nexport type { IntentIndexerOutput } from \"./intent/intent.indexer.js\";\nexport { PremiseAnalyzer } from \"./premise/premise.analyzer.js\";\nexport type { PremiseAnalyzerOutput } from \"./premise/premise.analyzer.js\";\nexport { PremiseDecomposer } from \"./premise/premise.decomposer.js\";\nexport type { PremiseDecomposerOutput, DecomposedPremise } from \"./premise/premise.decomposer.js\";\nexport { PremiseIndexer } from \"./premise/premise.indexer.js\";\nexport type { PremiseIndexerOutput } from \"./premise/premise.indexer.js\";\nexport { LensInferrer } from \"./shared/hyde/lens.inferrer.js\";\nexport type { Lens, LensInferenceInput, LensInferenceOutput, HydeTargetCorpus } from \"./shared/hyde/lens.inferrer.js\";\nexport { NegotiationInsightsGenerator } from \"./negotiation/insight.generator.js\";\nexport type { NegotiationDigest } from \"./negotiation/insight.generator.js\";\nexport { IndexNegotiator } from \"./negotiation/negotiation.agent.js\";\nexport { NegotiationScreener, configuredScreenMode, ScreenDecisionSchema, NEGOTIATION_SCREEN_MODES } from \"./negotiation/negotiation.screen.js\";\nexport type { ScreenDecision, ScreenDecisionRecord, NegotiationScreenMode, NegotiationScreenerInput } from \"./negotiation/negotiation.screen.js\";\nexport { NegotiationReflector, DistilledMemorySchema, ReflectionResultSchema, MAX_DISTILLED_MEMORIES, NEGOTIATOR_MEMORY_KINDS } from \"./negotiation/negotiation.reflect.js\";\nexport type { DistilledMemory, DistilledMemoryKind, ReflectionResult, ReflectionTranscriptEntry, NegotiationReflectionInput, ChatReflectionInput, NegotiationReflectJobData, ReflectEnqueueFn } from \"./negotiation/negotiation.reflect.js\";\nexport { renderNegotiatorMemorySection, renderNegotiatorChatMemorySection } from \"./negotiation/negotiation.memory.js\";\nexport type { NegotiatorMemoryEntry, NegotiatorMemoryQuery, NegotiatorMemoryScope, NegotiatorMemoryRetrieveFn } from \"./negotiation/negotiation.memory.js\";\nexport type { NegotiationAgentInput } from \"./negotiation/negotiation.agent.js\";\nexport { QuestionerAgent } from \"./questioner/questioner.agent.js\";\nexport type { QuestionerAgentConfig } from \"./questioner/questioner.agent.js\";\nexport type { QuestionerInput, UptakeQuestionerInput, QuestionerContext, QuestionerEnqueuePayload, QuestionerEnqueueFn, DiscoveryContext, IntentContext, ProfileContext, NegotiationContext, PostStallNegotiationContext, UptakeNegotiationContext, NegotiationInflightContext, ChatContext, PoolDiscoveryContext } from \"./questioner/questioner.types.js\";\nexport { getPreset } from \"./questioner/questioner.presets.js\";\nexport { QUD_UNDERSPECIFICATION_RULES } from \"./questioner/questioner.qud.js\";\nexport { isQuestionerEnabled, isDiscoveryQuestionsEnabled, isUptakeGuardEnabled, uptakeAuthorityThreshold, discoveryQuestionsInputMode, discoveryQuestionsTimeoutMs, chatQuestionWaitTimeoutMs } from \"./questioner/questioner.env.js\";\nexport type { QuestionerPreset } from \"./questioner/questioner.presets.js\";\nexport { PoolDiscriminatorMiner } from \"./opportunity/discriminator/discriminator.miner.js\";\nexport type { PoolDiscriminatorMinerConfig } from \"./opportunity/discriminator/discriminator.miner.js\";\nexport { PoolDiscriminatorAssigner, buildAssignmentPrompt, verifyAssignedAxis } from \"./opportunity/discriminator/discriminator.assigner.js\";\nexport type { PoolDiscriminatorAssignerConfig, PoolDiscriminatorAssignmentAxis, PoolDiscriminatorAssignmentInput, PoolDiscriminatorAssignedAxis, PoolDiscriminatorCandidateAssignment } from \"./opportunity/discriminator/discriminator.assigner.js\";\nexport { runPoolDiscriminatorShadow } from \"./opportunity/discriminator/discriminator.shadow.js\";\nexport type { DiscriminatorShadowInput } from \"./opportunity/discriminator/discriminator.shadow.js\";\nexport { scoreDiscriminator, computeNovelty, cosineSimilarity } from \"./opportunity/discriminator/discriminator.scorer.js\";\nexport { poolQuestionsMiningMode, poolQuestionsMode, poolQuestionsPushMode, poolQuestionsStampNewborn, POOL_DISCRIMINATOR_MIN_POOL_SIZE, POOL_DISCRIMINATOR_MAX_CANDIDATES, POOL_DISCRIMINATOR_MAX_PUBLIC_CONTEXT_CHARS, POOL_QUESTION_MIN_VOI, POOL_QUESTION_MIN_EVIDENCE_RATE, POOL_QUESTION_MAX_DISCRIMINATORS, POOL_QUESTION_MAX_PENDING_PER_INTENT, POOL_QUESTION_PUSH_BASE_VOI, POOL_QUESTION_PUSH_DISMISSAL_DECAY, POOL_QUESTION_PUSH_MIN_POOL_SIZE, POOL_QUESTION_PUSH_DAILY_CAP } from \"./opportunity/discriminator/discriminator.env.js\";\nexport type { PoolQuestionsMiningMode, PoolQuestionsMode, PoolQuestionsPushMode, PoolQuestionsRankingMode, PoolQuestionsStampNewbornMode } from \"./opportunity/discriminator/discriminator.env.js\";\nexport { poolQuestionsRanking, POOL_ADJUSTMENT_FACTOR_OTHER, POOL_ADJUSTMENT_FACTOR_UNKNOWN, POOL_ADJUSTMENT_FLOOR, POOL_RERUN_DEBOUNCE_MS } from \"./opportunity/discriminator/discriminator.env.js\";\nexport { buildPoolAdjustment, planPoolAdjustments, mergePoolAdjustment, readPoolAdjustments, readActivePoolAdjustments, poolAdjustmentMultiplier, adjustedConfidence, latestPoolDemotionDetail } from \"./opportunity/discriminator/discriminator.adjustments.js\";\nexport type { BuildPoolAdjustmentInput, PoolAdjustment, PoolAdjustmentPlanEntry, PoolAdjustmentProvenance, PoolAdjustmentSignal } from \"./opportunity/discriminator/discriminator.adjustments.js\";\nexport { synthesizePoolQuestion, selectQuestionDiscriminators, toQuestionDiscriminator, BOTH_MATTER_LABEL } from \"./opportunity/discriminator/discriminator.question.js\";\nexport { poolQuestionCycleKey, escapePoolPushMarkdown, buildPoolQuestionPushMessage, POOL_QUESTION_PUSH_TITLE_MAX_CHARS } from \"./opportunity/discriminator/discriminator.push.js\";\nexport type { SynthesizePoolQuestionInput, SynthesizedPoolQuestion } from \"./opportunity/discriminator/discriminator.question.js\";\nexport type { QuestionPoolAssignment, QuestionPoolDiscriminator, QuestionPoolSnapshot } from \"./shared/schemas/question.schema.js\";\nexport type { PoolCandidate, DiscriminatorMiningInput, MinedDiscriminator, ScoredDiscriminator, VerifiedAssignment, DiscriminatorShadowResult } from \"./opportunity/discriminator/discriminator.types.js\";\n\n// Lens C — negotiation-evidence questions (IND-433, shadow).\nexport { negotiationEvidenceQuestionsMode, NEGOTIATION_EVIDENCE_QUESTIONS_MODES, NEGOTIATION_EVIDENCE_MIN_DISTINCT_OPPORTUNITIES, NEGOTIATION_EVIDENCE_MAX_OPPORTUNITIES, NEGOTIATION_EVIDENCE_MAX_CONTENT_CHARS } from \"./opportunity/negotiation-evidence/negotiation-evidence.env.js\";\nexport type { NegotiationEvidenceQuestionsMode } from \"./opportunity/negotiation-evidence/negotiation-evidence.env.js\";\nexport { extractAllowlistedEvidence } from \"./opportunity/negotiation-evidence/negotiation-evidence.extractor.js\";\nexport type { ExtractionResult } from \"./opportunity/negotiation-evidence/negotiation-evidence.extractor.js\";\nexport { verifyHypotheses, evidenceSpanMatches } from \"./opportunity/negotiation-evidence/negotiation-evidence.verifier.js\";\nexport type { VerificationResult } from \"./opportunity/negotiation-evidence/negotiation-evidence.verifier.js\";\nexport { NegotiationEvidenceMiner, buildEvidencePrompt } from \"./opportunity/negotiation-evidence/negotiation-evidence.miner.js\";\nexport type { NegotiationEvidenceMinerConfig } from \"./opportunity/negotiation-evidence/negotiation-evidence.miner.js\";\nexport { runNegotiationEvidenceShadow } from \"./opportunity/negotiation-evidence/negotiation-evidence.shadow.js\";\nexport type { NegotiationEvidenceShadowInput } from \"./opportunity/negotiation-evidence/negotiation-evidence.shadow.js\";\nexport type { EvidenceKind, EvidenceSpeaker, AllowlistedEvidence, RawEvidenceTurn, RawEvidenceOutcome, RawEvidenceOwnerAnswer, RawEvidenceSegment, EvidenceMiningScope, HypothesisClaimType, ProposedSupportRef, MinedEvidenceHypothesis, VerifiedSupportRef, RetainedEvidenceHypothesis, NegotiationEvidenceTelemetry, NegotiationEvidenceShadowResult } from \"./opportunity/negotiation-evidence/negotiation-evidence.types.js\";\n\n// Lens B — outcome-question shadow (IND-434)\nexport { outcomeQuestionsMode, isOutcomeQuestionsActivated, OUTCOME_MIN_INDEPENDENT_SUPPORT, OUTCOME_MIN_COMPARED_SIDES, OUTCOME_MIN_INDEPENDENT_EXAMPLES, OUTCOME_MAX_CANDIDATES, OUTCOME_MAX_PUBLIC_CONTEXT_CHARS } from \"./opportunity/outcome/outcome.env.js\";\nexport type { OutcomeQuestionsMode } from \"./opportunity/outcome/outcome.env.js\";\nexport { joinOutcomeHypotheses } from \"./opportunity/outcome/outcome.hypotheses.js\";\nexport { runOutcomeShadow, deduplicateOutcomeExamples } from \"./opportunity/outcome/outcome.shadow.js\";\nexport type { OutcomeShadowInput } from \"./opportunity/outcome/outcome.shadow.js\";\nexport type { OutcomeLabel, OutcomeExample, OutcomeSideSupport, OutcomeHypothesis, OutcomeShadowResult, JoinOutcomeHypothesesInput } from \"./opportunity/outcome/outcome.types.js\";\nexport { OpportunityEvaluator } from \"./opportunity/opportunity.evaluator.js\";\nexport type { EvaluatorInput, OpportunityEvaluatorOptionsConstructor } from \"./opportunity/opportunity.evaluator.js\";\nexport { OpportunityPresenter, gatherPresenterContext } from \"./opportunity/opportunity.presenter.js\";\nexport { createOpportunityTools } from \"./opportunity/opportunity.tools.js\";\nexport { createEnrichmentTools } from \"./enrichment/enrichment.tools.js\";\nexport type { PresenterDatabase } from \"./opportunity/opportunity.presenter.js\";\nexport { QuestionGenerator } from \"./opportunity/question.generator.js\";\n\n// ─── Support utilities ────────────────────────────────────────────────────────\n\nexport { renderNetworkContext } from './shared/network/metadata.renderer.js';\nexport { canUserSeeOpportunity, isActionableForViewer, validateOpportunityActors, classifyOpportunity, selectByComposition, selectDigestCandidates, DIGEST_REDELIVERY_COOLDOWN_DAYS, FEED_SOFT_TARGETS } from \"./opportunity/opportunity.utils.js\";\nexport type { DigestDeliveredRow } from \"./opportunity/opportunity.utils.js\";\nexport { getPrimaryActionLabel } from \"./opportunity/opportunity.labels.js\";\nexport { computeFeedHealth } from \"./opportunity/feed/feed.health.js\";\nexport type { FeedHealthInput, FeedHealthResult } from \"./opportunity/feed/feed.health.js\";\nexport { selectContactsForDiscovery, shouldRunIntroducerDiscovery, runIntroducerDiscovery, MAX_CONTACTS_PER_CYCLE, MAX_CANDIDATES_PER_CONTACT, INTRODUCER_DISCOVERY_SOURCE } from \"./opportunity/opportunity.introducer.js\";\nexport type { IntroducerDiscoveryDatabase, IntroducerDiscoveryQueue, ContactWithIntents } from \"./opportunity/opportunity.introducer.js\";\nexport { persistOpportunities } from \"./opportunity/opportunity.persist.js\";\nexport { presentOpportunity } from \"./opportunity/opportunity.presentation.js\";\nexport type { UserInfo } from \"./opportunity/opportunity.presentation.js\";\nexport { stripUuids, stripIntroducerMentions, truncateAtBoundary } from \"./opportunity/opportunity.presentation.js\";\nexport { hasUnsupportedOpportunityClaim, stripUnsupportedOpportunityClaims } from \"./opportunity/opportunity.claim-safety.js\";\nexport { safeFallbackSummary, getSafePresentationOrSkip, SAFE_FALLBACK_MAX_CHARS, DEFAULT_FALLBACK_HEADLINE, DEFAULT_FALLBACK_ACTION, DEFAULT_EMPTY_FALLBACK_TEXT } from \"./opportunity/opportunity.safe-presentation.js\";\nexport type { SafeFallbackOptions, SafePresentation, SafePresentationOptions, SafePresentationSource } from \"./opportunity/opportunity.safe-presentation.js\";\nexport { buildApiChatCardPresentationCacheKey, buildDeliveryCardPresentationCacheKey, buildHomeCardPresentationCacheKey } from \"./opportunity/opportunity.presentation-cache.js\";\nexport { getOrCreateDeliveryCardBatch, DELIVERY_CARD_CACHE_TTL, type CachedDeliveryCard, type OpportunityWithContext } from \"./opportunity/delivery-card.cache.js\";\n\n// ─── Tools ────────────────────────────────────────────────────────────────────\n\nexport { createToolRegistry } from \"./shared/agent/tool.registry.js\";\nexport { createAgentTools } from './agent/agent.tools.js';\nexport { AMBIENT_PARK_WINDOW_MS } from './negotiation/negotiation.tools.js';\nexport { normalizeTelegramHandle } from './shared/utils/telegram-handle.js';\n\n// ─── MCP ──────────────────────────────────────────────────────────────────────\n\nexport { createMcpServer, buildMcpOnboardingMessage, ONBOARDING_ALLOWED } from \"./mcp/mcp.server.js\";\nexport type { ScopedDepsFactory } from \"./mcp/mcp.server.js\";\nexport { buildElicitationCreate, flattenChoice } from \"./mcp/elicitation.builder.js\";\nexport { dispatchElicitations } from \"./mcp/elicitation.dispatcher.js\";\nexport type { ElicitResultLike, ElicitInputFn, DispatchElicitationsParams } from \"./mcp/elicitation.dispatcher.js\";\n\n// ─── States (for advanced graph consumers) ────────────────────────────────────\n// @experimental — internal graph-state shapes; may change in a minor release.\n\nexport type { UserNegotiationContext, NegotiationTurn, NegotiationOutcome, SeedAssessment } from \"./shared/schemas/negotiation-state.schema.js\";\nexport { NEGOTIATION_ACTIONS, AskUserPayloadSchema } from \"./shared/schemas/negotiation-state.schema.js\";\nexport type { NegotiationAction, NegotiationSeat, NegotiationProtocolVersion, AskUserPayload } from \"./shared/schemas/negotiation-state.schema.js\";\nexport type { NegotiationGraphLike } from \"./negotiation/negotiation.state.js\";\n\n// ─── Negotiation seat rules (v2 client-advocate protocol) ───────────────────\n\nexport {\n InitiatorTurnSchema,\n CounterpartyTurnSchema,\n FinalInitiatorTurnSchema,\n FinalCounterpartyTurnSchema,\n InitiatorAskUserTurnSchema,\n CounterpartyAskUserTurnSchema,\n allowedActionsFor,\n turnSchemaFor,\n isTerminalAction,\n isRejectLikeAction,\n fallbackActionFor,\n rejectActionFor,\n readProtocolVersion,\n configuredProtocolVersion,\n configuredAskUserEnabled,\n askUserAnswerWindowMs,\n DEFAULT_ASK_USER_WINDOW_MS,\n ASK_USER_LOCK_SLACK_MS,\n resolveSeat,\n seatViolationMessage,\n} from \"./negotiation/negotiation.protocol.js\";\n\n// ─── Streamers ────────────────────────────────────────────────────────────────\n\nexport { ChatStreamer } from \"./chat/chat.streamer.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["index.ts"],"names":[],"mappings":"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","sourcesContent":["// =============================================================================\n// @indexnetwork/protocol — public API barrel\n//\n// This file is the ONLY supported entry point. Deep imports\n// (\"@indexnetwork/protocol/src/...\") are not part of the contract and may break\n// in any release. Every symbol is re-exported explicitly (no wildcards) so the\n// surface is reviewable and changes are intentional.\n//\n// Stability tiers are defined in STABILITY.md. In short:\n// • Stable — Interfaces, Graph factories, Agents, createChatTools,\n// the tool/runtime helpers, and shared schemas.\n// • Experimental — Sections marked @experimental below (advanced graph state\n// types and internal helpers); may change in a minor release.\n// =============================================================================\n\n// ─── Public API (recommended for external consumers) ──────────────────────────\n\nexport { createChatTools } from \"./shared/agent/tool.factory.js\";\nexport { getModelName } from \"./shared/agent/model.config.js\";\nexport type { ChatTools } from \"./shared/agent/tool.factory.js\";\nexport type { ModelConfig, ModelSettings } from \"./shared/agent/model.config.js\";\nexport type { ToolContext, ResolvedToolContext, ToolDeps, ProtocolDeps, RawToolDefinition, CompiledGraph } from \"./shared/agent/tool.helpers.js\";\nexport { ChatContextAccessError, resolveChatContext } from \"./shared/agent/tool.helpers.js\";\nexport {\n deriveAllowedNetworkIds,\n deriveDiscoveryNetworkIds,\n focusedNetworkId,\n focusedNetworkLabel,\n hasNetworkScope,\n scopeFromNetworkId,\n} from \"./shared/agent/tool.scope.js\";\nexport type { ToolScopeEnvelope, ToolScopeType, ScopeMembership, DeriveNetworkScopeInput } from \"./shared/agent/tool.scope.js\";\nexport { requestContext } from \"./shared/observability/request-context.js\";\nexport { setLoggerFactory } from \"./shared/observability/log.js\";\nexport type { LoggerWithSource as ProtocolLoggerWithSource } from \"./shared/observability/log.js\";\nexport { setTimingWrapper } from \"./shared/observability/performance.js\";\nexport { ToolRuntimeError, getToolTimeoutPolicy, invokeToolRuntime, toolRuntimeErrorToResult } from \"./shared/agent/tool.runtime.js\";\nexport type { ToolRuntimeErrorCode, ToolTimeoutClass, ToolTimeoutPolicy } from \"./shared/agent/tool.runtime.js\";\n\n// ─── Interfaces (implement these to wire up your infrastructure) ───────────────\n\nexport type { McpAuthResolver } from \"./shared/interfaces/auth.interface.js\";\nexport type { Cache, CacheOptions, HydeCache, OpportunityCache } from \"./shared/interfaces/cache.interface.js\";\nexport type { ChatSessionReader, ChatSessionDetail, ChatSessionSummary } from \"./shared/interfaces/chat-session.interface.js\";\nexport type { ChatSummaryReader } from \"./shared/interfaces/chat-summary.interface.js\";\nexport type { ChatMessageWriter } from \"./shared/interfaces/chat-message-writer.interface.js\";\nexport type { QuestionGeneratorReader } from \"./shared/interfaces/question-generator.interface.js\";\nexport type { QuestionerDatabase, PersistableQuestion, PersistedQuestion, QuestionFilters, ChatQuestionsHost, ChatQuestionAnswerOutcome } from \"./shared/interfaces/questioner.interface.js\";\nexport type { NegotiationSummaryReader } from \"./shared/interfaces/negotiation-summary.interface.js\";\nexport type { DiscoveryNegotiationDigest } from \"./shared/schemas/negotiation-digest.schema.js\";\nexport { NegotiationSummarizer, buildFallbackDigest } from \"./negotiation/negotiation.summarizer.js\";\nexport type { ContactServiceAdapter, ContactEntry, ContactImportResult, ContactInput, ContactResult, ContactSearchResult } from \"./shared/interfaces/contact.interface.js\";\nexport type {\n ChatGraphCompositeDatabase, UserDatabase, SystemDatabase, Database,\n OpportunityGraphDatabase, OpportunityControllerDatabase, OutcomeOutbox, HomeGraphDatabase,\n IntentGraphDatabase, IntentNetworkGraphDatabase, NetworkGraphDatabase, NetworkMembershipGraphDatabase,\n HydeGraphDatabase, EnrichmentGraphDatabase, PremiseGraphDatabase, NegotiationGraphDatabase,\n NegotiationQueries, NegotiationUserAnswer,\n Opportunity, OpportunityActor, OpportunityContext, OpportunityDetection, OpportunityInterpretation,\n OpportunityQueryOptions, OpportunitySignal, OpportunityStatus,\n ActiveIntent, CreatedIntent, CreateIntentData, UpdateIntentData, IntentRecord, SimilarIntent, SimilarIntentSearchOptions,\n IndexedIntentDetails, IndexMemberDetails, AssignmentNetworkMembership, NetworkAssignmentContext, NetworkMembership, OwnedIndex,\n CreateHydeDocumentData, HydeDocument, HydeSourceType, CreateOpportunityData,\n PremiseAnalysis, PremiseAssertion, PremiseProvenance, PremiseRecord, PremiseValidity,\n OnboardingPrivacyState, OnboardingProfileSeed, OnboardingState, PrivacyConsentDecision, PrivacyConsentSource,\n UpdateIndexSettingsData, UserRecord, UserSocial, ArchiveResult, Id,\n} from \"./shared/interfaces/database.interface.js\";\nexport type {\n Embedder, EmbeddingGenerator, EmbeddingGenerateOptions,\n VectorStore, VectorStoreOption, VectorSearchResult,\n HydeCandidate, HydeSearchOptions, LensEmbedding,\n} from \"./shared/interfaces/embedder.interface.js\";\nexport type { ProfileEnricher, EnrichmentRequest, EnrichmentResult } from \"./shared/interfaces/enrichment.interface.js\";\nexport type { IntegrationAdapter, IntegrationConnection, IntegrationSession, IntegrationSessionOptions, ToolActionResponse } from \"./shared/interfaces/integration.interface.js\";\nexport type { IntentGraphQueue } from \"./shared/interfaces/queue.interface.js\";\nexport type { Scraper, ExtractUrlContentOptions } from \"./shared/interfaces/scraper.interface.js\";\nexport type { DeliveryLedger, DeliveredOpportunityRow } from \"./shared/interfaces/delivery-ledger.interface.js\";\nexport type { MintConnectLink, ConnectLinkKind } from \"./shared/interfaces/connect-link.interface.js\";\nexport type {\n DiscoveryRunStore, DiscoveryRunQueue, DiscoveryRunInput, CreateDiscoveryRunInput,\n DiscoveryRunRecord, DiscoveryRunStatus,\n} from \"./shared/interfaces/discovery-run.interface.js\";\nexport type {\n EnrichmentRunStore, EnrichmentRunQueue, EnrichmentRunInput, CreateEnrichmentRunInput,\n UpdateUserEnrichmentRunInput, PreviewUserEnrichmentRunInput,\n EnrichmentRunRecord, EnrichmentRunStatus, EnrichmentRunOperation,\n} from \"./shared/interfaces/enrichment-run.interface.js\";\nexport type { NegotiationTimeoutQueue, AskUserExpiryPayload } from \"./shared/interfaces/negotiation-events.interface.js\";\nexport type { AgentDispatcher, AgentDispatchResult, NegotiationTurnPayload } from \"./shared/interfaces/agent-dispatcher.interface.js\";\nexport type { AgentRecord, AgentTransportRecord, AgentPermissionRecord, AgentWithRelations, CreateAgentInput, CreateTransportInput, GrantPermissionInput, AgentDatabase } from './shared/interfaces/agent.interface.js';\nexport { SYSTEM_AGENT_IDS } from './shared/interfaces/agent.interface.js';\n\n// ─── Shared schemas ───────────────────────────────────────────────────────────\n\nexport { ChatContextDigestSchema, type ChatContextDigest } from \"./shared/schemas/chat-context.schema.js\";\nexport { QuestionOptionSchema, QuestionSchema, UnderspecificationTypeSchema, QuestionStrategySchema, QuestionWithStrategySchema, QuestionGeneratorResponseSchema, QuestionPurposeSchema, QuestionModeSchema, QuestionDetectionSchema, QuestionPoolPushSchema, QuestionVoidedReasonSchema, QuestionPoolPushRequestStatusSchema, QuestionPoolPushRequestReasonSchema, QuestionActorSchema, QuestionAnswerSchema, type Question, type QuestionOption, type UnderspecificationType, type QuestionStrategy, type QuestionWithStrategy, type QuestionGeneratorResponse, type QuestionGenerationResult, type QuestionPurpose, type QuestionMode, type QuestionDetection, type QuestionPoolPush, type QuestionVoidedReason, type QuestionPoolPushRequestStatus, type QuestionPoolPushRequestReason, type QuestionActor, type QuestionAnswer } from \"./shared/schemas/question.schema.js\";\nexport type { PendingQuestionSummary } from \"./shared/schemas/pending-question.schema.js\";\nexport type { McpAuthInput } from \"./shared/schemas/mcp-auth.schema.js\";\nexport { UserIdentitySchema, type UserIdentity } from \"./shared/schemas/identity.schema.js\";\nexport type { DiscoverySourceProfile, DiscoverySummary, DiscoveryNegotiation, DiscoveryTurn, DiscoveryOutcome, DiscoveryQuestionInput, NegotiationRole } from \"./shared/schemas/discovery-question.schema.js\";\nexport { NetworkAssignmentResourceTypeSchema, NetworkAssignmentModeSchema, NetworkAssignmentScopeSchema, NetworkAssignmentPromptPresenceSchema, NetworkAssignmentPolicySchema, NetworkAssignmentRawScoresSchema, NetworkAssignmentMetadataSchema, OpportunityEvidenceKindSchema, OpportunityEvidenceSchema } from \"./shared/schemas/network-assignment.schema.js\";\nexport type { NetworkAssignmentResourceType, NetworkAssignmentMode, NetworkAssignmentScope, NetworkAssignmentPromptPresence, NetworkAssignmentPolicy, NetworkAssignmentRawScores, NetworkAssignmentMetadata, OpportunityEvidenceKind, OpportunityEvidence } from \"./shared/schemas/network-assignment.schema.js\";\nexport { DEFAULT_NETWORK_ASSIGNMENT_THRESHOLD, classifyPromptPresence, resolveAssignmentNetworkScope, buildNetworkAssignmentDecision, combineAssignmentScores } from \"./shared/assignment/network-assignment.policy.js\";\nexport type { PromptPresenceInput, ResolveAssignmentNetworkScopeArgs, AssignmentScopeMembership, BuildNetworkAssignmentDecisionArgs, NetworkAssignmentDecision } from \"./shared/assignment/network-assignment.policy.js\";\nexport { buildCandidateEvidence, withCandidateEvidence, mergeOpportunityEvidence, withMatchedStrategies, renderOpportunityEvidenceForPrompt } from \"./opportunity/opportunity.evidence.js\";\nexport type { EvidenceCandidateInput } from \"./opportunity/opportunity.evidence.js\";\n\n// ─── Intent clarification ─────────────────────────────────────────────────────\n\nexport { IntentClarifier, type IntentClarifierOutput } from \"./intent/intent.clarifier.js\";\n\n// ─── Graph factories ──────────────────────────────────────────────────────────\n\nexport { ChatGraphFactory } from \"./chat/chat.graph.js\";\nexport {\n ORCHESTRATOR_PERSONA,\n ORCHESTRATOR_PERSONA_ID,\n type ChatPersonaConfig,\n type ChatPersonaLoopBehaviors,\n} from \"./chat/chat.persona.js\";\nexport {\n NEGOTIATOR_PERSONA_ID,\n NEGOTIATOR_TOOL_NAMES,\n createNegotiatorPersona,\n createNegotiatorTools,\n filterNegotiatorTools,\n} from \"./chat/negotiator.persona.js\";\nexport { buildNegotiatorSystemContent, type NegotiatorPromptOptions } from \"./chat/negotiator.prompt.js\";\nexport { createNegotiatorMemoryTools } from \"./chat/negotiator.tools.js\";\nexport type {\n NegotiatorMemoryToolsHost,\n NegotiatorMemoryRememberInput,\n NegotiatorMemoryToolView,\n NegotiatorMemoryForgetResult,\n RememberableMemoryKind,\n} from \"./shared/interfaces/negotiator-memory.interface.js\";\nexport { HomeGraphFactory } from \"./opportunity/feed/feed.graph.js\";\nexport { HydeGraphFactory } from \"./shared/hyde/hyde.graph.js\";\nexport type { HydeGraphOptions, HydeLensInferrerLike, HydeGeneratorLike, HydeValidatorLike } from \"./shared/hyde/hyde.graph.js\";\nexport { getHydeGenerationMode, HYDE_FRAME_GENERATION_VERSION } from \"./shared/hyde/hyde.env.js\";\nexport type { HydeGenerationMode } from \"./shared/hyde/hyde.env.js\";\nexport { sanitizeHydeSourceFrame } from \"./shared/hyde/hyde.frame.js\";\nexport type { HydeSourceFrame, HydeFrameRole, HydeFrameHardConstraint, HydeFrameNamedEntity, HydeFrameVocabulary, HydeHardConstraintType, HydeNamedEntityType } from \"./shared/hyde/hyde.frame.js\";\nexport { HydeValidator } from \"./shared/hyde/hyde.validator.js\";\nexport type { HydeValidationInput, HydeValidationDocument, HydeValidationOutput, HydeValidationVerdict } from \"./shared/hyde/hyde.validator.js\";\nexport { NetworkGraphFactory } from \"./network/network.graph.js\";\nexport { NetworkMembershipGraphFactory } from \"./network/membership/membership.graph.js\";\nexport { IntentGraphFactory } from \"./intent/intent.graph.js\";\nexport { SemanticVerifier } from \"./intent/intent.verifier.js\";\nexport type { SemanticVerifierOutput } from \"./intent/intent.verifier.js\";\nexport { IntentNetworkGraphFactory } from \"./network/indexer/indexer.graph.js\";\nexport { MaintenanceGraphFactory } from \"./maintenance/maintenance.graph.js\";\nexport type { MaintenanceGraphDatabase, MaintenanceGraphCache, MaintenanceGraphQueue } from \"./maintenance/maintenance.graph.js\";\nexport { NegotiationGraphFactory, negotiateCandidates } from \"./negotiation/negotiation.graph.js\";\nexport { OpportunityGraphFactory } from \"./opportunity/opportunity.graph.js\";\nexport type { StampNewbornOpportunitiesFn, StampNewbornOpportunitiesInput } from \"./opportunity/opportunity.graph.js\";\nexport { EnrichmentGraphFactory } from \"./enrichment/enrichment.graph.js\";\nexport { PremiseGraphFactory } from \"./premise/premise.graph.js\";\n\n// ─── Agents ───────────────────────────────────────────────────────────────────\n\nexport { UserContextGenerator } from \"./context/context.generator.js\";\nexport type { UserContextInput, IncrementalContextInput, UserContextResult, GlobalContextInput, GlobalIncrementalContextInput } from \"./context/context.generator.js\";\nexport { ChatTitleGenerator } from \"./chat/chat.title.generator.js\";\nexport { ChatInterruptClassifier } from \"./chat/chat.interrupt.classifier.js\";\nexport type { ClassifyInterruptInput } from \"./chat/chat.interrupt.classifier.js\";\nexport { ChatSummarizer } from \"./chat/chat.summarizer.js\";\nexport type { ChatSummarizerInput, ChatSummarizerMessage } from \"./chat/chat.summarizer.js\";\nexport { HydeGenerator } from \"./shared/hyde/hyde.generator.js\";\nexport type { HydeGenerateInput, HydeGeneratorOutput } from \"./shared/hyde/hyde.generator.js\";\nexport { SuggestionGenerator } from \"./chat/chat.suggester.js\";\nexport type { SuggestionGeneratorInput } from \"./chat/chat.suggester.js\";\nexport { generateInviteMessage } from \"./contact/contact.inviter.js\";\nexport type { InviteInput, InviteOutput } from \"./contact/contact.inviter.js\";\nexport { IntentIndexer } from \"./intent/intent.indexer.js\";\nexport type { IntentIndexerOutput } from \"./intent/intent.indexer.js\";\nexport { PremiseAnalyzer } from \"./premise/premise.analyzer.js\";\nexport type { PremiseAnalyzerOutput } from \"./premise/premise.analyzer.js\";\nexport { PremiseDecomposer } from \"./premise/premise.decomposer.js\";\nexport type { PremiseDecomposerOutput, DecomposedPremise } from \"./premise/premise.decomposer.js\";\nexport { PremiseIndexer } from \"./premise/premise.indexer.js\";\nexport type { PremiseIndexerOutput } from \"./premise/premise.indexer.js\";\nexport { LensInferrer } from \"./shared/hyde/lens.inferrer.js\";\nexport type { Lens, LensInferenceInput, LensInferenceOutput, HydeTargetCorpus } from \"./shared/hyde/lens.inferrer.js\";\nexport { NegotiationInsightsGenerator } from \"./negotiation/insight.generator.js\";\nexport type { NegotiationDigest } from \"./negotiation/insight.generator.js\";\nexport { IndexNegotiator } from \"./negotiation/negotiation.agent.js\";\nexport { NegotiationScreener, configuredScreenMode, ScreenDecisionSchema, NEGOTIATION_SCREEN_MODES } from \"./negotiation/negotiation.screen.js\";\nexport type { ScreenDecision, ScreenDecisionRecord, NegotiationScreenMode, NegotiationScreenerInput } from \"./negotiation/negotiation.screen.js\";\nexport { NegotiationReflector, DistilledMemorySchema, ReflectionResultSchema, MAX_DISTILLED_MEMORIES, NEGOTIATOR_MEMORY_KINDS } from \"./negotiation/negotiation.reflect.js\";\nexport type { DistilledMemory, DistilledMemoryKind, ReflectionResult, ReflectionTranscriptEntry, NegotiationReflectionInput, ChatReflectionInput, NegotiationReflectJobData, ReflectEnqueueFn } from \"./negotiation/negotiation.reflect.js\";\nexport { renderNegotiatorMemorySection, renderNegotiatorChatMemorySection } from \"./negotiation/negotiation.memory.js\";\nexport type { NegotiatorMemoryEntry, NegotiatorMemoryQuery, NegotiatorMemoryScope, NegotiatorMemoryRetrieveFn } from \"./negotiation/negotiation.memory.js\";\nexport type { NegotiationAgentInput } from \"./negotiation/negotiation.agent.js\";\nexport { QuestionerAgent } from \"./questioner/questioner.agent.js\";\nexport type { QuestionerAgentConfig } from \"./questioner/questioner.agent.js\";\nexport type { QuestionerInput, UptakeQuestionerInput, QuestionerContext, QuestionerEnqueuePayload, QuestionerEnqueueFn, DiscoveryContext, IntentContext, ProfileContext, NegotiationContext, PostStallNegotiationContext, UptakeNegotiationContext, NegotiationInflightContext, ChatContext, PoolDiscoveryContext } from \"./questioner/questioner.types.js\";\nexport { getPreset } from \"./questioner/questioner.presets.js\";\nexport { QUD_UNDERSPECIFICATION_RULES } from \"./questioner/questioner.qud.js\";\nexport { isQuestionerEnabled, isDiscoveryQuestionsEnabled, isUptakeGuardEnabled, uptakeAuthorityThreshold, discoveryQuestionsInputMode, discoveryQuestionsTimeoutMs, chatQuestionWaitTimeoutMs } from \"./questioner/questioner.env.js\";\nexport type { QuestionerPreset } from \"./questioner/questioner.presets.js\";\nexport { PoolDiscriminatorMiner } from \"./opportunity/discriminator/discriminator.miner.js\";\nexport type { PoolDiscriminatorMinerConfig } from \"./opportunity/discriminator/discriminator.miner.js\";\nexport { PoolDiscriminatorAssigner, buildAssignmentPrompt, verifyAssignedAxis } from \"./opportunity/discriminator/discriminator.assigner.js\";\nexport type { PoolDiscriminatorAssignerConfig, PoolDiscriminatorAssignmentAxis, PoolDiscriminatorAssignmentInput, PoolDiscriminatorAssignedAxis, PoolDiscriminatorCandidateAssignment } from \"./opportunity/discriminator/discriminator.assigner.js\";\nexport { runPoolDiscriminatorShadow } from \"./opportunity/discriminator/discriminator.shadow.js\";\nexport type { DiscriminatorShadowInput } from \"./opportunity/discriminator/discriminator.shadow.js\";\nexport { scoreDiscriminator, computeNovelty, cosineSimilarity } from \"./opportunity/discriminator/discriminator.scorer.js\";\nexport { poolQuestionsMiningMode, poolQuestionsMode, poolQuestionsPushMode, poolQuestionsStampNewborn, POOL_DISCRIMINATOR_MIN_POOL_SIZE, POOL_DISCRIMINATOR_MAX_CANDIDATES, POOL_DISCRIMINATOR_MAX_PUBLIC_CONTEXT_CHARS, POOL_QUESTION_MIN_VOI, POOL_QUESTION_MIN_EVIDENCE_RATE, POOL_QUESTION_MAX_DISCRIMINATORS, POOL_QUESTION_MAX_PENDING_PER_INTENT, POOL_QUESTION_PUSH_BASE_VOI, POOL_QUESTION_PUSH_DISMISSAL_DECAY, POOL_QUESTION_PUSH_MIN_POOL_SIZE, POOL_QUESTION_PUSH_DAILY_CAP } from \"./opportunity/discriminator/discriminator.env.js\";\nexport type { PoolQuestionsMiningMode, PoolQuestionsMode, PoolQuestionsPushMode, PoolQuestionsRankingMode, PoolQuestionsStampNewbornMode } from \"./opportunity/discriminator/discriminator.env.js\";\nexport { poolQuestionsRanking, POOL_ADJUSTMENT_FACTOR_OTHER, POOL_ADJUSTMENT_FACTOR_UNKNOWN, POOL_ADJUSTMENT_FLOOR, POOL_RERUN_DEBOUNCE_MS } from \"./opportunity/discriminator/discriminator.env.js\";\nexport { buildPoolAdjustment, planPoolAdjustments, mergePoolAdjustment, readPoolAdjustments, readActivePoolAdjustments, poolAdjustmentMultiplier, adjustedConfidence, latestPoolDemotionDetail } from \"./opportunity/discriminator/discriminator.adjustments.js\";\nexport type { BuildPoolAdjustmentInput, PoolAdjustment, PoolAdjustmentPlanEntry, PoolAdjustmentProvenance, PoolAdjustmentSignal } from \"./opportunity/discriminator/discriminator.adjustments.js\";\nexport { synthesizePoolQuestion, selectQuestionDiscriminators, toQuestionDiscriminator, BOTH_MATTER_LABEL } from \"./opportunity/discriminator/discriminator.question.js\";\nexport { poolQuestionCycleKey, escapePoolPushMarkdown, buildPoolQuestionPushMessage, POOL_QUESTION_PUSH_TITLE_MAX_CHARS } from \"./opportunity/discriminator/discriminator.push.js\";\nexport type { SynthesizePoolQuestionInput, SynthesizedPoolQuestion } from \"./opportunity/discriminator/discriminator.question.js\";\nexport type { QuestionPoolAssignment, QuestionPoolDiscriminator, QuestionPoolSnapshot } from \"./shared/schemas/question.schema.js\";\nexport type { PoolCandidate, DiscriminatorMiningInput, MinedDiscriminator, ScoredDiscriminator, VerifiedAssignment, DiscriminatorShadowResult } from \"./opportunity/discriminator/discriminator.types.js\";\n\n// Lens C — negotiation-evidence questions (IND-433, shadow).\nexport { negotiationEvidenceQuestionsMode, NEGOTIATION_EVIDENCE_QUESTIONS_MODES, NEGOTIATION_EVIDENCE_MIN_DISTINCT_OPPORTUNITIES, NEGOTIATION_EVIDENCE_MAX_OPPORTUNITIES, NEGOTIATION_EVIDENCE_MAX_CONTENT_CHARS } from \"./opportunity/negotiation-evidence/negotiation-evidence.env.js\";\nexport type { NegotiationEvidenceQuestionsMode } from \"./opportunity/negotiation-evidence/negotiation-evidence.env.js\";\nexport { extractAllowlistedEvidence } from \"./opportunity/negotiation-evidence/negotiation-evidence.extractor.js\";\nexport type { ExtractionResult } from \"./opportunity/negotiation-evidence/negotiation-evidence.extractor.js\";\nexport { verifyHypotheses, evidenceSpanMatches } from \"./opportunity/negotiation-evidence/negotiation-evidence.verifier.js\";\nexport type { VerificationResult } from \"./opportunity/negotiation-evidence/negotiation-evidence.verifier.js\";\nexport { NegotiationEvidenceMiner, buildEvidencePrompt } from \"./opportunity/negotiation-evidence/negotiation-evidence.miner.js\";\nexport type { NegotiationEvidenceMinerConfig } from \"./opportunity/negotiation-evidence/negotiation-evidence.miner.js\";\nexport { runNegotiationEvidenceShadow } from \"./opportunity/negotiation-evidence/negotiation-evidence.shadow.js\";\nexport type { NegotiationEvidenceShadowInput } from \"./opportunity/negotiation-evidence/negotiation-evidence.shadow.js\";\nexport type { EvidenceKind, EvidenceSpeaker, AllowlistedEvidence, RawEvidenceTurn, RawEvidenceOutcome, RawEvidenceOwnerAnswer, RawEvidenceSegment, EvidenceMiningScope, HypothesisClaimType, ProposedSupportRef, MinedEvidenceHypothesis, VerifiedSupportRef, RetainedEvidenceHypothesis, NegotiationEvidenceTelemetry, NegotiationEvidenceShadowResult } from \"./opportunity/negotiation-evidence/negotiation-evidence.types.js\";\n\n// Lens B — outcome-question shadow (IND-434)\nexport { outcomeQuestionsMode, isOutcomeQuestionsActivated, OUTCOME_MIN_INDEPENDENT_SUPPORT, OUTCOME_MIN_COMPARED_SIDES, OUTCOME_MIN_INDEPENDENT_EXAMPLES, OUTCOME_MAX_CANDIDATES, OUTCOME_MAX_PUBLIC_CONTEXT_CHARS } from \"./opportunity/outcome/outcome.env.js\";\nexport type { OutcomeQuestionsMode } from \"./opportunity/outcome/outcome.env.js\";\nexport { joinOutcomeHypotheses } from \"./opportunity/outcome/outcome.hypotheses.js\";\nexport { runOutcomeShadow, deduplicateOutcomeExamples } from \"./opportunity/outcome/outcome.shadow.js\";\nexport type { OutcomeShadowInput } from \"./opportunity/outcome/outcome.shadow.js\";\nexport type { OutcomeLabel, OutcomeExample, OutcomeSideSupport, OutcomeHypothesis, OutcomeShadowResult, JoinOutcomeHypothesesInput } from \"./opportunity/outcome/outcome.types.js\";\nexport { OpportunityEvaluator } from \"./opportunity/opportunity.evaluator.js\";\nexport type { EvaluatorInput, OpportunityEvaluatorOptionsConstructor } from \"./opportunity/opportunity.evaluator.js\";\nexport { OpportunityPresenter, gatherPresenterContext } from \"./opportunity/opportunity.presenter.js\";\nexport { createOpportunityTools } from \"./opportunity/opportunity.tools.js\";\nexport { createEnrichmentTools } from \"./enrichment/enrichment.tools.js\";\nexport type { PresenterDatabase } from \"./opportunity/opportunity.presenter.js\";\n\n// ─── Support utilities ────────────────────────────────────────────────────────\n\nexport { renderNetworkContext } from './shared/network/metadata.renderer.js';\nexport { canUserSeeOpportunity, isActionableForViewer, validateOpportunityActors, classifyOpportunity, selectByComposition, selectDigestCandidates, DIGEST_REDELIVERY_COOLDOWN_DAYS, FEED_SOFT_TARGETS } from \"./opportunity/opportunity.utils.js\";\nexport type { DigestDeliveredRow } from \"./opportunity/opportunity.utils.js\";\nexport { getPrimaryActionLabel } from \"./opportunity/opportunity.labels.js\";\nexport { computeFeedHealth } from \"./opportunity/feed/feed.health.js\";\nexport type { FeedHealthInput, FeedHealthResult } from \"./opportunity/feed/feed.health.js\";\nexport { selectContactsForDiscovery, shouldRunIntroducerDiscovery, runIntroducerDiscovery, MAX_CONTACTS_PER_CYCLE, MAX_CANDIDATES_PER_CONTACT, INTRODUCER_DISCOVERY_SOURCE } from \"./opportunity/opportunity.introducer.js\";\nexport type { IntroducerDiscoveryDatabase, IntroducerDiscoveryQueue, ContactWithIntents } from \"./opportunity/opportunity.introducer.js\";\nexport { persistOpportunities } from \"./opportunity/opportunity.persist.js\";\nexport { presentOpportunity } from \"./opportunity/opportunity.presentation.js\";\nexport type { UserInfo } from \"./opportunity/opportunity.presentation.js\";\nexport { stripUuids, stripIntroducerMentions, truncateAtBoundary } from \"./opportunity/opportunity.presentation.js\";\nexport { hasUnsupportedOpportunityClaim, stripUnsupportedOpportunityClaims } from \"./opportunity/opportunity.claim-safety.js\";\nexport { safeFallbackSummary, getSafePresentationOrSkip, SAFE_FALLBACK_MAX_CHARS, DEFAULT_FALLBACK_HEADLINE, DEFAULT_FALLBACK_ACTION, DEFAULT_EMPTY_FALLBACK_TEXT } from \"./opportunity/opportunity.safe-presentation.js\";\nexport type { SafeFallbackOptions, SafePresentation, SafePresentationOptions, SafePresentationSource } from \"./opportunity/opportunity.safe-presentation.js\";\nexport { buildApiChatCardPresentationCacheKey, buildDeliveryCardPresentationCacheKey, buildHomeCardPresentationCacheKey } from \"./opportunity/opportunity.presentation-cache.js\";\nexport { getOrCreateDeliveryCardBatch, DELIVERY_CARD_CACHE_TTL, type CachedDeliveryCard, type OpportunityWithContext } from \"./opportunity/delivery-card.cache.js\";\n\n// ─── Tools ────────────────────────────────────────────────────────────────────\n\nexport { createToolRegistry } from \"./shared/agent/tool.registry.js\";\nexport { createAgentTools } from './agent/agent.tools.js';\nexport { AMBIENT_PARK_WINDOW_MS } from './negotiation/negotiation.tools.js';\nexport { normalizeTelegramHandle } from './shared/utils/telegram-handle.js';\n\n// ─── MCP ──────────────────────────────────────────────────────────────────────\n\nexport { createMcpServer, buildMcpOnboardingMessage, ONBOARDING_ALLOWED } from \"./mcp/mcp.server.js\";\nexport type { ScopedDepsFactory } from \"./mcp/mcp.server.js\";\nexport { buildElicitationCreate, flattenChoice } from \"./mcp/elicitation.builder.js\";\nexport { dispatchElicitations } from \"./mcp/elicitation.dispatcher.js\";\nexport type { ElicitResultLike, ElicitInputFn, DispatchElicitationsParams } from \"./mcp/elicitation.dispatcher.js\";\n\n// ─── States (for advanced graph consumers) ────────────────────────────────────\n// @experimental — internal graph-state shapes; may change in a minor release.\n\nexport type { UserNegotiationContext, NegotiationTurn, NegotiationOutcome, SeedAssessment } from \"./shared/schemas/negotiation-state.schema.js\";\nexport { NEGOTIATION_ACTIONS, AskUserPayloadSchema } from \"./shared/schemas/negotiation-state.schema.js\";\nexport type { NegotiationAction, NegotiationSeat, NegotiationProtocolVersion, AskUserPayload } from \"./shared/schemas/negotiation-state.schema.js\";\nexport type { NegotiationGraphLike } from \"./negotiation/negotiation.state.js\";\n\n// ─── Negotiation seat rules (v2 client-advocate protocol) ───────────────────\n\nexport {\n InitiatorTurnSchema,\n CounterpartyTurnSchema,\n FinalInitiatorTurnSchema,\n FinalCounterpartyTurnSchema,\n InitiatorAskUserTurnSchema,\n CounterpartyAskUserTurnSchema,\n allowedActionsFor,\n turnSchemaFor,\n isTerminalAction,\n isRejectLikeAction,\n fallbackActionFor,\n rejectActionFor,\n readProtocolVersion,\n configuredProtocolVersion,\n configuredAskUserEnabled,\n askUserAnswerWindowMs,\n DEFAULT_ASK_USER_WINDOW_MS,\n ASK_USER_LOCK_SLACK_MS,\n resolveSeat,\n seatViolationMessage,\n} from \"./negotiation/negotiation.protocol.js\";\n\n// ─── Streamers ────────────────────────────────────────────────────────────────\n\nexport { ChatStreamer } from \"./chat/chat.streamer.js\";\n"]}
@@ -10,7 +10,7 @@
10
10
  * the question-generator input at a fixed, predictable size.
11
11
  */
12
12
  import { type DiscoveryNegotiationDigest } from "../shared/schemas/negotiation-digest.schema.js";
13
- import type { DiscoveryNegotiation } from "../opportunity/question.prompt.js";
13
+ import type { DiscoveryNegotiation } from "../shared/schemas/discovery-question.schema.js";
14
14
  export declare class NegotiationSummarizer {
15
15
  private model;
16
16
  constructor();
@@ -1 +1 @@
1
- {"version":3,"file":"negotiation.summarizer.d.ts","sourceRoot":"/","sources":["negotiation/negotiation.summarizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EAAoC,KAAK,0BAA0B,EAAE,MAAM,gDAAgD,CAAC;AACnI,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAoC9E,qBAAa,qBAAqB;IAChC,OAAO,CAAC,KAAK,CAA2C;;IAQlD,SAAS,CACb,WAAW,EAAE,oBAAoB,EACjC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACjC,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC;CA8B9C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,oBAAoB,GAAG,0BAA0B,CAqBvF"}
1
+ {"version":3,"file":"negotiation.summarizer.d.ts","sourceRoot":"/","sources":["negotiation/negotiation.summarizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EAAoC,KAAK,0BAA0B,EAAE,MAAM,gDAAgD,CAAC;AACnI,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAoC3F,qBAAa,qBAAqB;IAChC,OAAO,CAAC,KAAK,CAA2C;;IAQlD,SAAS,CACb,WAAW,EAAE,oBAAoB,EACjC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACjC,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC;CA8B9C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,oBAAoB,GAAG,0BAA0B,CAqBvF"}
@@ -1 +1 @@
1
- {"version":3,"file":"negotiation.summarizer.js","sourceRoot":"/","sources":["negotiation/negotiation.summarizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,gCAAgC,EAAmC,MAAM,gDAAgD,CAAC;AAGnI,MAAM,MAAM,GAAG,cAAc,CAAC,uBAAuB,CAAC,CAAC;AAEvD,MAAM,aAAa,GAAG;;;;;;;;;;iHAU2F,CAAC;AAElH,SAAS,eAAe,CAAC,CAAuB;IAC9C,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK;SACtB,GAAG,CACF,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,CAAC,cAAc,CAAC,SAAS,cAAc,CAAC,CAAC,SAAS,EAAE,CAC3H;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO;QACL,qBAAqB,CAAC,CAAC,gBAAgB,EAAE;QACzC,iBAAiB,CAAC,CAAC,YAAY,EAAE;QACjC,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI;QAC5B,SAAS,IAAI,YAAY;QACzB,2BAA2B,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE;QACrD,sBAAsB,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE;QAC3C,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;KAC9D;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,OAAO,qBAAqB;IAGhC;QACE,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC,uBAAuB,EAAE,gCAAgC,EAAE;YAC5F,IAAI,EAAE,oBAAoB;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CACb,WAAiC,EACjC,OAAkC;QAElC,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,GAAY,CAAC;QACjB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,qBAAqB,CAC/B,IAAI,CAAC,KAAK,EACV,CAAC,IAAI,aAAa,CAAC,aAAa,CAAC,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAC1D,OAAO,EAAE,MAAM,CAChB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK,CAAC;YAClD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE;oBACrD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,CAAC;iBAChI,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE;oBACnD,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,gCAAgC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACnF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAuB;IACzD,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAChF,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,MAAM,UAAU,GACd,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAC1D,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS;QACrB,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,mBAAmB,WAAW,EAAE,CAAC;IACxD,OAAO;QACL,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;QAClD,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;QAC1C,WAAW;QACX,aAAa,EACX,WAAW,KAAK,gBAAgB;YAC9B,CAAC,CAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,CAAyD;YAC1F,CAAC,CAAC,IAAI;QACV,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;QACjC,cAAc,EACZ,QAAQ,EAAE,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,cAAc;YACtD,CAAC,CAAC,QAAQ,CAAC,cAAc;YACzB,CAAC,CAAC,IAAI;KACX,CAAC;AACJ,CAAC","sourcesContent":["/**\n * NegotiationSummarizer — pure LLM pass that compresses one DiscoveryNegotiation\n * (potentially several KB of turn reasoning + outcome reasoning) into a\n * DiscoveryNegotiationDigest (≤256 bytes structured). The digest is what the decision-\n * question generator consumes, replacing the raw negotiation blob.\n *\n * Why: a 10-candidate discovery turn used to produce a 60+ KB prompt for the\n * question generator, which stalled upstream Gemini/OpenRouter routes and\n * dropped the connection at ~3 minutes. Per-negotiation summarization caps\n * the question-generator input at a fixed, predictable size.\n */\n\nimport { HumanMessage, SystemMessage } from \"@langchain/core/messages\";\n\nimport { createStructuredModel } from \"../shared/agent/model.config.js\";\nimport { invokeWithAbortSignal } from \"../shared/agent/model-signal.js\";\nimport { protocolLogger } from \"../shared/observability/protocol.logger.js\";\nimport { DiscoveryNegotiationDigestSchema, type DiscoveryNegotiationDigest } from \"../shared/schemas/negotiation-digest.schema.js\";\nimport type { DiscoveryNegotiation } from \"../opportunity/question.prompt.js\";\n\nconst logger = protocolLogger(\"NegotiationSummarizer\");\n\nconst SYSTEM_PROMPT = `You summarize one negotiation between a seeker's agent and a candidate's agent into a structured digest for downstream decision-question generation.\n\nOutput requirements (ALL fields — set optional fields to null when not applicable):\n- counterpartyHint: copy the input field verbatim, truncated to ≤120 chars.\n- indexContext: copy the input field verbatim, truncated to ≤120 chars.\n- outcomeRole: \"opportunity\" when hasOpportunity=true, else \"no-opportunity\".\n- outcomeReason: when outcomeRole=\"no-opportunity\", set to \"turn_cap\" / \"timeout\" / \"screened_out\" if the input's reason matches; else \"rejected\" (if a turn explicitly rejected) or \"stalled\". When outcomeRole=\"opportunity\", set to null. \"screened_out\" means the seeker's own agent chose not to reach out before any turn was exchanged — never describe it as the candidate declining or stalling.\n- keyTake: ONE sentence (≤180 chars). Describe the decisive moment, the alignment gap, or the recurring signal — anything a question generator could use to formulate a clarifying question. NOT a generic outcome restatement. Anchor in a concrete detail from the negotiation if possible (a role mismatch, a missing input the candidate flagged, a pivot one party suggested).\n- suggestedRoles: when both parties agreed on roles (the last turn's suggestedRoles), copy them from input. Otherwise set to null.\n\nDo not include candidate identity, PII, names, or IDs. Reuse only counterpartyHint and indexContext as provided.`;\n\nfunction buildUserPrompt(n: DiscoveryNegotiation): string {\n const turnLines = n.turns\n .map(\n (t, i) =>\n `[${i + 1}] action=${t.action} roles=${t.suggestedRoles.ownUser}↔${t.suggestedRoles.otherUser} reasoning=${t.reasoning}`,\n )\n .join(\"\\n\");\n return [\n `counterpartyHint: ${n.counterpartyHint}`,\n `indexContext: ${n.indexContext}`,\n `turns (${n.turns.length}):`,\n turnLines || \"(no turns)\",\n `outcome.hasOpportunity: ${n.outcome.hasOpportunity}`,\n `outcome.reasoning: ${n.outcome.reasoning}`,\n n.outcome.reason ? `outcome.reason: ${n.outcome.reason}` : \"\",\n ]\n .filter(Boolean)\n .join(\"\\n\");\n}\n\nexport class NegotiationSummarizer {\n private model: ReturnType<typeof createStructuredModel>;\n\n constructor() {\n this.model = createStructuredModel(\"negotiationSummarizer\", DiscoveryNegotiationDigestSchema, {\n name: \"negotiation_digest\",\n });\n }\n\n async summarize(\n negotiation: DiscoveryNegotiation,\n options?: { signal?: AbortSignal },\n ): Promise<DiscoveryNegotiationDigest | null> {\n const user = buildUserPrompt(negotiation);\n let raw: unknown;\n try {\n raw = await invokeWithAbortSignal(\n this.model,\n [new SystemMessage(SYSTEM_PROMPT), new HumanMessage(user)],\n options?.signal,\n );\n } catch (err) {\n const aborted = options?.signal?.aborted ?? false;\n if (aborted) {\n logger.info(\"NegotiationSummarizer aborted by signal\", {\n reason: options?.signal?.reason instanceof Error ? options.signal.reason.message : String(options?.signal?.reason ?? \"unknown\"),\n });\n } else {\n logger.warn(\"NegotiationSummarizer LLM call failed\", {\n error: err instanceof Error ? err.message : String(err),\n });\n }\n return null;\n }\n\n const parsed = DiscoveryNegotiationDigestSchema.safeParse(raw);\n if (!parsed.success) {\n logger.warn(\"NegotiationSummarizer parse failed\", { error: parsed.error.message });\n return null;\n }\n return parsed.data;\n }\n}\n\n/**\n * Deterministic fallback when the LLM summarizer fails or isn't wired. Produces\n * a minimal but valid digest so the question generator still has *some* signal.\n */\nexport function buildFallbackDigest(n: DiscoveryNegotiation): DiscoveryNegotiationDigest {\n const outcomeRole = n.outcome.hasOpportunity ? \"opportunity\" : \"no-opportunity\";\n const lastTurn = n.turns[n.turns.length - 1];\n const keyTakeRaw =\n n.outcome.reasoning && n.outcome.reasoning.trim().length > 0\n ? n.outcome.reasoning\n : `${n.turns.length} turn(s); ended ${outcomeRole}`;\n return {\n counterpartyHint: n.counterpartyHint.slice(0, 120),\n indexContext: n.indexContext.slice(0, 120),\n outcomeRole,\n outcomeReason:\n outcomeRole === \"no-opportunity\"\n ? ((n.outcome.reason ?? \"stalled\") as \"turn_cap\" | \"timeout\" | \"stalled\" | \"screened_out\")\n : null,\n keyTake: keyTakeRaw.slice(0, 180),\n suggestedRoles:\n lastTurn?.action === \"accept\" && lastTurn.suggestedRoles\n ? lastTurn.suggestedRoles\n : null,\n };\n}\n"]}
1
+ {"version":3,"file":"negotiation.summarizer.js","sourceRoot":"/","sources":["negotiation/negotiation.summarizer.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * NegotiationSummarizer — pure LLM pass that compresses one DiscoveryNegotiation\n * (potentially several KB of turn reasoning + outcome reasoning) into a\n * DiscoveryNegotiationDigest (≤256 bytes structured). The digest is what the decision-\n * question generator consumes, replacing the raw negotiation blob.\n *\n * Why: a 10-candidate discovery turn used to produce a 60+ KB prompt for the\n * question generator, which stalled upstream Gemini/OpenRouter routes and\n * dropped the connection at ~3 minutes. Per-negotiation summarization caps\n * the question-generator input at a fixed, predictable size.\n */\n\nimport { HumanMessage, SystemMessage } from \"@langchain/core/messages\";\n\nimport { createStructuredModel } from \"../shared/agent/model.config.js\";\nimport { invokeWithAbortSignal } from \"../shared/agent/model-signal.js\";\nimport { protocolLogger } from \"../shared/observability/protocol.logger.js\";\nimport { DiscoveryNegotiationDigestSchema, type DiscoveryNegotiationDigest } from \"../shared/schemas/negotiation-digest.schema.js\";\nimport type { DiscoveryNegotiation } from \"../shared/schemas/discovery-question.schema.js\";\n\nconst logger = protocolLogger(\"NegotiationSummarizer\");\n\nconst SYSTEM_PROMPT = `You summarize one negotiation between a seeker's agent and a candidate's agent into a structured digest for downstream decision-question generation.\n\nOutput requirements (ALL fields — set optional fields to null when not applicable):\n- counterpartyHint: copy the input field verbatim, truncated to ≤120 chars.\n- indexContext: copy the input field verbatim, truncated to ≤120 chars.\n- outcomeRole: \"opportunity\" when hasOpportunity=true, else \"no-opportunity\".\n- outcomeReason: when outcomeRole=\"no-opportunity\", set to \"turn_cap\" / \"timeout\" / \"screened_out\" if the input's reason matches; else \"rejected\" (if a turn explicitly rejected) or \"stalled\". When outcomeRole=\"opportunity\", set to null. \"screened_out\" means the seeker's own agent chose not to reach out before any turn was exchanged — never describe it as the candidate declining or stalling.\n- keyTake: ONE sentence (≤180 chars). Describe the decisive moment, the alignment gap, or the recurring signal — anything a question generator could use to formulate a clarifying question. NOT a generic outcome restatement. Anchor in a concrete detail from the negotiation if possible (a role mismatch, a missing input the candidate flagged, a pivot one party suggested).\n- suggestedRoles: when both parties agreed on roles (the last turn's suggestedRoles), copy them from input. Otherwise set to null.\n\nDo not include candidate identity, PII, names, or IDs. Reuse only counterpartyHint and indexContext as provided.`;\n\nfunction buildUserPrompt(n: DiscoveryNegotiation): string {\n const turnLines = n.turns\n .map(\n (t, i) =>\n `[${i + 1}] action=${t.action} roles=${t.suggestedRoles.ownUser}↔${t.suggestedRoles.otherUser} reasoning=${t.reasoning}`,\n )\n .join(\"\\n\");\n return [\n `counterpartyHint: ${n.counterpartyHint}`,\n `indexContext: ${n.indexContext}`,\n `turns (${n.turns.length}):`,\n turnLines || \"(no turns)\",\n `outcome.hasOpportunity: ${n.outcome.hasOpportunity}`,\n `outcome.reasoning: ${n.outcome.reasoning}`,\n n.outcome.reason ? `outcome.reason: ${n.outcome.reason}` : \"\",\n ]\n .filter(Boolean)\n .join(\"\\n\");\n}\n\nexport class NegotiationSummarizer {\n private model: ReturnType<typeof createStructuredModel>;\n\n constructor() {\n this.model = createStructuredModel(\"negotiationSummarizer\", DiscoveryNegotiationDigestSchema, {\n name: \"negotiation_digest\",\n });\n }\n\n async summarize(\n negotiation: DiscoveryNegotiation,\n options?: { signal?: AbortSignal },\n ): Promise<DiscoveryNegotiationDigest | null> {\n const user = buildUserPrompt(negotiation);\n let raw: unknown;\n try {\n raw = await invokeWithAbortSignal(\n this.model,\n [new SystemMessage(SYSTEM_PROMPT), new HumanMessage(user)],\n options?.signal,\n );\n } catch (err) {\n const aborted = options?.signal?.aborted ?? false;\n if (aborted) {\n logger.info(\"NegotiationSummarizer aborted by signal\", {\n reason: options?.signal?.reason instanceof Error ? options.signal.reason.message : String(options?.signal?.reason ?? \"unknown\"),\n });\n } else {\n logger.warn(\"NegotiationSummarizer LLM call failed\", {\n error: err instanceof Error ? err.message : String(err),\n });\n }\n return null;\n }\n\n const parsed = DiscoveryNegotiationDigestSchema.safeParse(raw);\n if (!parsed.success) {\n logger.warn(\"NegotiationSummarizer parse failed\", { error: parsed.error.message });\n return null;\n }\n return parsed.data;\n }\n}\n\n/**\n * Deterministic fallback when the LLM summarizer fails or isn't wired. Produces\n * a minimal but valid digest so the question generator still has *some* signal.\n */\nexport function buildFallbackDigest(n: DiscoveryNegotiation): DiscoveryNegotiationDigest {\n const outcomeRole = n.outcome.hasOpportunity ? \"opportunity\" : \"no-opportunity\";\n const lastTurn = n.turns[n.turns.length - 1];\n const keyTakeRaw =\n n.outcome.reasoning && n.outcome.reasoning.trim().length > 0\n ? n.outcome.reasoning\n : `${n.turns.length} turn(s); ended ${outcomeRole}`;\n return {\n counterpartyHint: n.counterpartyHint.slice(0, 120),\n indexContext: n.indexContext.slice(0, 120),\n outcomeRole,\n outcomeReason:\n outcomeRole === \"no-opportunity\"\n ? ((n.outcome.reason ?? \"stalled\") as \"turn_cap\" | \"timeout\" | \"stalled\" | \"screened_out\")\n : null,\n keyTake: keyTakeRaw.slice(0, 180),\n suggestedRoles:\n lastTurn?.action === \"accept\" && lastTurn.suggestedRoles\n ? lastTurn.suggestedRoles\n : null,\n };\n}\n"]}
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import type { ChatContextDigest } from "../shared/schemas/chat-context.schema.js";
6
6
  import type { DiscoveryNegotiationDigest } from "../shared/schemas/negotiation-digest.schema.js";
7
- import type { DiscoveryQuestionInput, DiscoverySummary } from "./question.prompt.js";
7
+ import type { DiscoveryQuestionInput, DiscoverySummary } from "../shared/schemas/discovery-question.schema.js";
8
8
  export interface BuildDiscoveryQuestionInputArgs {
9
9
  query: string;
10
10
  /** The seeker's global user_context paragraph (profile-replacing identity text). */
@@ -1 +1 @@
1
- {"version":3,"file":"discovery-question.helper.d.ts","sourceRoot":"/","sources":["opportunity/discovery-question.helper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAC;AACjG,OAAO,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAErF,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,0BAA0B,EAAE,CAAC;IACjD,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qGAAqG;AACrG,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,+BAA+B,GAAG,sBAAsB,CASzG"}
1
+ {"version":3,"file":"discovery-question.helper.d.ts","sourceRoot":"/","sources":["opportunity/discovery-question.helper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAC;AACjG,OAAO,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAE/G,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,0BAA0B,EAAE,CAAC;IACjD,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qGAAqG;AACrG,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,+BAA+B,GAAG,sBAAsB,CASzG"}
@@ -1 +1 @@
1
- {"version":3,"file":"discovery-question.helper.js","sourceRoot":"/","sources":["opportunity/discovery-question.helper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH,qGAAqG;AACrG,MAAM,UAAU,2BAA2B,CAAC,IAAqC;IAC/E,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC;AACJ,CAAC","sourcesContent":["/**\n * Pure mapper from opportunity-graph outputs + optional chat digest to a\n * `DiscoveryQuestionInput`. No I/O. Side-effect-free.\n */\n\nimport type { ChatContextDigest } from \"../shared/schemas/chat-context.schema.js\";\nimport type { DiscoveryNegotiationDigest } from \"../shared/schemas/negotiation-digest.schema.js\";\nimport type { DiscoveryQuestionInput, DiscoverySummary } from \"./question.prompt.js\";\n\nexport interface BuildDiscoveryQuestionInputArgs {\n query: string;\n /** The seeker's global user_context paragraph (profile-replacing identity text). */\n userContext: string;\n negotiationDigests: DiscoveryNegotiationDigest[];\n summary: DiscoverySummary;\n chatContext?: ChatContextDigest;\n now: string;\n}\n\n/** @deprecated Use QuestionerAgent discovery preset instead. Will be removed in a future version. */\nexport function buildDiscoveryQuestionInput(args: BuildDiscoveryQuestionInputArgs): DiscoveryQuestionInput {\n return {\n query: args.query,\n userContext: args.userContext,\n negotiationDigests: args.negotiationDigests,\n summary: args.summary,\n ...(args.chatContext !== undefined ? { chatContext: args.chatContext } : {}),\n now: args.now,\n };\n}\n"]}
1
+ {"version":3,"file":"discovery-question.helper.js","sourceRoot":"/","sources":["opportunity/discovery-question.helper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH,qGAAqG;AACrG,MAAM,UAAU,2BAA2B,CAAC,IAAqC;IAC/E,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC;AACJ,CAAC","sourcesContent":["/**\n * Pure mapper from opportunity-graph outputs + optional chat digest to a\n * `DiscoveryQuestionInput`. No I/O. Side-effect-free.\n */\n\nimport type { ChatContextDigest } from \"../shared/schemas/chat-context.schema.js\";\nimport type { DiscoveryNegotiationDigest } from \"../shared/schemas/negotiation-digest.schema.js\";\nimport type { DiscoveryQuestionInput, DiscoverySummary } from \"../shared/schemas/discovery-question.schema.js\";\n\nexport interface BuildDiscoveryQuestionInputArgs {\n query: string;\n /** The seeker's global user_context paragraph (profile-replacing identity text). */\n userContext: string;\n negotiationDigests: DiscoveryNegotiationDigest[];\n summary: DiscoverySummary;\n chatContext?: ChatContextDigest;\n now: string;\n}\n\n/** @deprecated Use QuestionerAgent discovery preset instead. Will be removed in a future version. */\nexport function buildDiscoveryQuestionInput(args: BuildDiscoveryQuestionInputArgs): DiscoveryQuestionInput {\n return {\n query: args.query,\n userContext: args.userContext,\n negotiationDigests: args.negotiationDigests,\n summary: args.summary,\n ...(args.chatContext !== undefined ? { chatContext: args.chatContext } : {}),\n now: args.now,\n };\n}\n"]}
@@ -4,7 +4,7 @@
4
4
  * generator. No DB access, no LLM — safe to import from anywhere.
5
5
  */
6
6
  import type { NegotiationTurn, NegotiationOutcome } from "../negotiation/negotiation.state.js";
7
- import type { DiscoveryNegotiation, DiscoverySummary } from "./question.prompt.js";
7
+ import type { DiscoveryNegotiation, DiscoverySummary } from "../shared/schemas/discovery-question.schema.js";
8
8
  /**
9
9
  * The input shape collected by the opportunity graph's negotiate node for
10
10
  * each candidate that completed a negotiation attempt (accepted, rejected,
@@ -1 +1 @@
1
- {"version":3,"file":"negotiation-summary.builder.d.ts","sourceRoot":"/","sources":["opportunity/negotiation-summary.builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC/F,OAAO,KAAK,EAAE,oBAAoB,EAAoB,gBAAgB,EAAkC,MAAM,sBAAsB,CAAC;AAErI;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,gBAAgB,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,uDAAuD;IACvD,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,qBAAqB,GAAG,oBAAoB,CAyBrF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,qBAAqB,EAAE,GAAG,gBAAgB,CA4B5F"}
1
+ {"version":3,"file":"negotiation-summary.builder.d.ts","sourceRoot":"/","sources":["opportunity/negotiation-summary.builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC/F,OAAO,KAAK,EAAE,oBAAoB,EAAoB,gBAAgB,EAAkC,MAAM,gDAAgD,CAAC;AAE/J;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,gBAAgB,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,uDAAuD;IACvD,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,qBAAqB,GAAG,oBAAoB,CAyBrF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,qBAAqB,EAAE,GAAG,gBAAgB,CA4B5F"}
@@ -1 +1 @@
1
- {"version":3,"file":"negotiation-summary.builder.js","sourceRoot":"/","sources":["opportunity/negotiation-summary.builder.ts"],"names":[],"mappings":"AAyBA;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,CAAwB;IAC7D,MAAM,KAAK,GAAoB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS;QACjC,cAAc,EAAE;YACd,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,OAA0B;YAC/D,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,SAA4B;SACpE;KACF,CAAC,CAAC,CAAC;IACJ,MAAM,OAAO,GAAqB;QAChC,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc;QACxC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS;QAC9B,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;YAC9D,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAuB,EAAE,CAAC,CAAC,EAAE;YAC5G,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC;IACF,OAAO;QACL,cAAc,EAAE,CAAC,CAAC,eAAe;QACjC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;QACpC,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,KAAK;QACL,OAAO;QACP,GAAG,CAAC,CAAC,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/F,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAoC;IACxE,MAAM,gBAAgB,GAA6C,EAAE,CAAC;IACtE,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAC7B,kBAAkB,IAAI,CAAC,CAAC;YACxB,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBACzC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAuB,CAAC;gBACzC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,kBAAkB,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACtE,YAAY,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,eAAe,EAAE,WAAW,CAAC,MAAM;QACnC,kBAAkB;QAClB,kBAAkB;QAClB,YAAY;QACZ,gBAAgB;KACjB,CAAC;AACJ,CAAC","sourcesContent":["/**\n * Pure mappers from raw per-candidate negotiation data to the protocol's\n * `DiscoveryNegotiation` / `DiscoverySummary` shapes consumed by the question\n * generator. No DB access, no LLM — safe to import from anywhere.\n */\nimport type { NegotiationTurn, NegotiationOutcome } from \"../negotiation/negotiation.state.js\";\nimport type { DiscoveryNegotiation, DiscoveryOutcome, DiscoverySummary, DiscoveryTurn, NegotiationRole } from \"./question.prompt.js\";\n\n/**\n * The input shape collected by the opportunity graph's negotiate node for\n * each candidate that completed a negotiation attempt (accepted, rejected,\n * stalled, or errored).\n */\nexport interface NegotiationResolution {\n candidateUserId: string;\n /** Abstract profile slice for the LLM (e.g. \"AI infra founder, Berlin\"). */\n counterpartyHint: string;\n /** Network/community prompt for the negotiation. */\n indexContext: string;\n turns: NegotiationTurn[];\n outcome: NegotiationOutcome;\n /** Optional pre-negotiation evaluator score (0..1). */\n seedAssessmentScore?: number;\n}\n\n/**\n * Convert one negotiation resolution to `DiscoveryNegotiation`.\n *\n * @param r - The raw resolution from the negotiate node.\n * @returns A `DiscoveryNegotiation` ready for the question generator.\n */\nexport function toDiscoveryNegotiation(r: NegotiationResolution): DiscoveryNegotiation {\n const turns: DiscoveryTurn[] = r.turns.map((t) => ({\n action: t.action,\n reasoning: t.assessment.reasoning,\n suggestedRoles: {\n ownUser: t.assessment.suggestedRoles.ownUser as NegotiationRole,\n otherUser: t.assessment.suggestedRoles.otherUser as NegotiationRole,\n },\n }));\n const outcome: DiscoveryOutcome = {\n hasOpportunity: r.outcome.hasOpportunity,\n reasoning: r.outcome.reasoning,\n ...(r.outcome.hasOpportunity && r.outcome.agreedRoles.length > 0\n ? { agreedRoles: r.outcome.agreedRoles.map((a) => ({ userId: a.userId, role: a.role as NegotiationRole })) }\n : {}),\n ...(r.outcome.reason ? { reason: r.outcome.reason } : {}),\n };\n return {\n counterpartyId: r.candidateUserId,\n counterpartyHint: r.counterpartyHint,\n indexContext: r.indexContext,\n turns,\n outcome,\n ...(r.seedAssessmentScore !== undefined ? { seedAssessmentScore: r.seedAssessmentScore } : {}),\n };\n}\n\n/**\n * Aggregate counters across all negotiations in a single discovery turn.\n *\n * @param resolutions - All resolved negotiations from the negotiate node.\n * @returns A `DiscoverySummary` with totals and role distribution.\n */\nexport function buildDiscoverySummary(resolutions: NegotiationResolution[]): DiscoverySummary {\n const roleDistribution: Partial<Record<NegotiationRole, number>> = {};\n let opportunitiesFound = 0;\n let noOpportunityCount = 0;\n let timeoutCount = 0;\n\n for (const r of resolutions) {\n if (r.outcome.hasOpportunity) {\n opportunitiesFound += 1;\n for (const role of r.outcome.agreedRoles) {\n const key = role.role as NegotiationRole;\n roleDistribution[key] = (roleDistribution[key] ?? 0) + 1;\n }\n } else {\n noOpportunityCount += 1;\n if (r.outcome.reason === \"turn_cap\" || r.outcome.reason === \"timeout\") {\n timeoutCount += 1;\n }\n }\n }\n\n return {\n totalCandidates: resolutions.length,\n opportunitiesFound,\n noOpportunityCount,\n timeoutCount,\n roleDistribution,\n };\n}\n"]}
1
+ {"version":3,"file":"negotiation-summary.builder.js","sourceRoot":"/","sources":["opportunity/negotiation-summary.builder.ts"],"names":[],"mappings":"AAyBA;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,CAAwB;IAC7D,MAAM,KAAK,GAAoB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS;QACjC,cAAc,EAAE;YACd,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,OAA0B;YAC/D,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,SAA4B;SACpE;KACF,CAAC,CAAC,CAAC;IACJ,MAAM,OAAO,GAAqB;QAChC,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc;QACxC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS;QAC9B,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;YAC9D,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAuB,EAAE,CAAC,CAAC,EAAE;YAC5G,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC;IACF,OAAO;QACL,cAAc,EAAE,CAAC,CAAC,eAAe;QACjC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;QACpC,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,KAAK;QACL,OAAO;QACP,GAAG,CAAC,CAAC,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/F,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAoC;IACxE,MAAM,gBAAgB,GAA6C,EAAE,CAAC;IACtE,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAC7B,kBAAkB,IAAI,CAAC,CAAC;YACxB,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBACzC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAuB,CAAC;gBACzC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,kBAAkB,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACtE,YAAY,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,eAAe,EAAE,WAAW,CAAC,MAAM;QACnC,kBAAkB;QAClB,kBAAkB;QAClB,YAAY;QACZ,gBAAgB;KACjB,CAAC;AACJ,CAAC","sourcesContent":["/**\n * Pure mappers from raw per-candidate negotiation data to the protocol's\n * `DiscoveryNegotiation` / `DiscoverySummary` shapes consumed by the question\n * generator. No DB access, no LLM — safe to import from anywhere.\n */\nimport type { NegotiationTurn, NegotiationOutcome } from \"../negotiation/negotiation.state.js\";\nimport type { DiscoveryNegotiation, DiscoveryOutcome, DiscoverySummary, DiscoveryTurn, NegotiationRole } from \"../shared/schemas/discovery-question.schema.js\";\n\n/**\n * The input shape collected by the opportunity graph's negotiate node for\n * each candidate that completed a negotiation attempt (accepted, rejected,\n * stalled, or errored).\n */\nexport interface NegotiationResolution {\n candidateUserId: string;\n /** Abstract profile slice for the LLM (e.g. \"AI infra founder, Berlin\"). */\n counterpartyHint: string;\n /** Network/community prompt for the negotiation. */\n indexContext: string;\n turns: NegotiationTurn[];\n outcome: NegotiationOutcome;\n /** Optional pre-negotiation evaluator score (0..1). */\n seedAssessmentScore?: number;\n}\n\n/**\n * Convert one negotiation resolution to `DiscoveryNegotiation`.\n *\n * @param r - The raw resolution from the negotiate node.\n * @returns A `DiscoveryNegotiation` ready for the question generator.\n */\nexport function toDiscoveryNegotiation(r: NegotiationResolution): DiscoveryNegotiation {\n const turns: DiscoveryTurn[] = r.turns.map((t) => ({\n action: t.action,\n reasoning: t.assessment.reasoning,\n suggestedRoles: {\n ownUser: t.assessment.suggestedRoles.ownUser as NegotiationRole,\n otherUser: t.assessment.suggestedRoles.otherUser as NegotiationRole,\n },\n }));\n const outcome: DiscoveryOutcome = {\n hasOpportunity: r.outcome.hasOpportunity,\n reasoning: r.outcome.reasoning,\n ...(r.outcome.hasOpportunity && r.outcome.agreedRoles.length > 0\n ? { agreedRoles: r.outcome.agreedRoles.map((a) => ({ userId: a.userId, role: a.role as NegotiationRole })) }\n : {}),\n ...(r.outcome.reason ? { reason: r.outcome.reason } : {}),\n };\n return {\n counterpartyId: r.candidateUserId,\n counterpartyHint: r.counterpartyHint,\n indexContext: r.indexContext,\n turns,\n outcome,\n ...(r.seedAssessmentScore !== undefined ? { seedAssessmentScore: r.seedAssessmentScore } : {}),\n };\n}\n\n/**\n * Aggregate counters across all negotiations in a single discovery turn.\n *\n * @param resolutions - All resolved negotiations from the negotiate node.\n * @returns A `DiscoverySummary` with totals and role distribution.\n */\nexport function buildDiscoverySummary(resolutions: NegotiationResolution[]): DiscoverySummary {\n const roleDistribution: Partial<Record<NegotiationRole, number>> = {};\n let opportunitiesFound = 0;\n let noOpportunityCount = 0;\n let timeoutCount = 0;\n\n for (const r of resolutions) {\n if (r.outcome.hasOpportunity) {\n opportunitiesFound += 1;\n for (const role of r.outcome.agreedRoles) {\n const key = role.role as NegotiationRole;\n roleDistribution[key] = (roleDistribution[key] ?? 0) + 1;\n }\n } else {\n noOpportunityCount += 1;\n if (r.outcome.reason === \"turn_cap\" || r.outcome.reason === \"timeout\") {\n timeoutCount += 1;\n }\n }\n }\n\n return {\n totalCandidates: resolutions.length,\n opportunitiesFound,\n noOpportunityCount,\n timeoutCount,\n roleDistribution,\n };\n}\n"]}