@chatman-media/conversation-engine 1.5.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2023,11 +2023,14 @@ class RagReplyStrategy {
2023
2023
  conversationId: input.conversationId,
2024
2024
  contactId: input.contactId
2025
2025
  }) : null;
2026
- const [skills, directorHooks, tools, reranker] = await Promise.all([
2026
+ const [skills, directorHooks, tools, reranker, stageGuidance, requestContext, awaitingOperator] = await Promise.all([
2027
2027
  this.opts.resolveSkills ? this.opts.resolveSkills({ tenantId }) : Promise.resolve([]),
2028
2028
  this.opts.resolveDirectorHooks ? this.opts.resolveDirectorHooks({ tenantId }) : Promise.resolve([]),
2029
2029
  this.opts.resolveTools ? this.opts.resolveTools({ tenantId, conversationId: input.conversationId }) : Promise.resolve([]),
2030
- this.opts.resolveReranker ? this.opts.resolveReranker({ tenantId }) : Promise.resolve(null)
2030
+ this.opts.resolveReranker ? this.opts.resolveReranker({ tenantId }) : Promise.resolve(null),
2031
+ this.opts.resolveStageGuidance ? this.opts.resolveStageGuidance({ tenantId, contactId: input.contactId }) : Promise.resolve(null),
2032
+ this.opts.resolveRequestContext ? this.opts.resolveRequestContext({ tenantId, contactId: input.contactId }) : Promise.resolve(null),
2033
+ this.opts.resolveAwaitingOperator ? this.opts.resolveAwaitingOperator({ tenantId, contactId: input.contactId }) : Promise.resolve(false)
2031
2034
  ]);
2032
2035
  const result = await answerWithRag({
2033
2036
  question: input.userMessageText,
@@ -2045,7 +2048,10 @@ class RagReplyStrategy {
2045
2048
  ...directorHooks.length > 0 ? { directorHooks } : {},
2046
2049
  ...tools.length > 0 ? { tools } : {},
2047
2050
  ...reranker ? { reranker } : {},
2048
- ...conversationSummary ? { conversationSummary } : {}
2051
+ ...conversationSummary ? { conversationSummary } : {},
2052
+ ...stageGuidance ? { stageOverride: stageGuidance } : {},
2053
+ ...requestContext ? { requestContext } : {},
2054
+ ...awaitingOperator ? { awaitingOperator } : {}
2049
2055
  });
2050
2056
  if (result.text === NO_CONTEXT_MARKER || !result.text || result.text.trim().length === 0) {
2051
2057
  if (this.opts.resolveSuggestions) {
@@ -70,6 +70,36 @@ export interface RagReplyStrategyOpts {
70
70
  tenantId: number;
71
71
  contactId: number;
72
72
  }) => Promise<boolean>;
73
+ /**
74
+ * Опциональный resolver пер-стадийных инструкций (Phase 2): goal/guidance
75
+ * текущей стадии лида из stage_definitions. Если вернёт значение — оно идёт
76
+ * в composeSystemPrompt (stageOverride) с приоритетом над Style.stages.
77
+ * null → используется Style.
78
+ */
79
+ resolveStageGuidance?: (input: {
80
+ tenantId: number;
81
+ contactId: number;
82
+ }) => Promise<{
83
+ goal: string;
84
+ guidance?: string;
85
+ } | null>;
86
+ /**
87
+ * Опциональный resolver динамического контекста запроса (multi-request /
88
+ * concierge): тип запроса гостя + число открытых. Идёт в composeSystemPrompt
89
+ * (requestContext). null → блок «ЗАПРОС ГОСТЯ» не добавляется.
90
+ */
91
+ resolveRequestContext?: (input: {
92
+ tenantId: number;
93
+ contactId: number;
94
+ }) => Promise<string | null>;
95
+ /**
96
+ * Опциональный resolver «лид ждёт оператора» (R5): true → в промпт идёт блок
97
+ * «ОЖИДАНИЕ ОПЕРАТОРА» (бот держит, не выдумывает цену). false/absent → нет.
98
+ */
99
+ resolveAwaitingOperator?: (input: {
100
+ tenantId: number;
101
+ contactId: number;
102
+ }) => Promise<boolean>;
73
103
  /**
74
104
  * Загрузить включённые навыки убеждения для тенанта. Возвращает список
75
105
  * SkillForPrompt, уже отфильтрованных по is_enabled = true.
@@ -1 +1 @@
1
- {"version":3,"file":"rag-reply.d.ts","sourceRoot":"","sources":["../../src/reply-strategy/rag-reply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rag-reply.d.ts","sourceRoot":"","sources":["../../src/reply-strategy/rag-reply.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chatman-media/conversation-engine",
3
- "version": "1.5.0",
3
+ "version": "1.7.0",
4
4
  "description": "Channel-agnostic pipeline обработки inbound сообщений: contact-resolve → conversation lookup → mode routing → AI-reply / queued / human → outbound. Сердце data plane.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",