ЮИ - фикс кодировки + порядок в карточках автопрогонов

This commit is contained in:
dctouch 2026-04-19 00:10:38 +03:00
parent 0fb5190cbd
commit 6d131b0e30
11 changed files with 153 additions and 445 deletions

View File

@ -178,25 +178,25 @@ function buildAddressMemoryRecapReply(input) {
} }
function buildSelectedObjectAnswerInspectionReply(input) { function buildSelectedObjectAnswerInspectionReply(input) {
const contextFacts = (0, assistantContinuityPolicy_1.resolveAddressDebugContextFacts)(input.addressDebug, input.toNonEmptyString); const contextFacts = (0, assistantContinuityPolicy_1.resolveAddressDebugContextFacts)(input.addressDebug, input.toNonEmptyString);
const itemLabel = contextFacts.item ?? "эта позиция"; const itemLabel = contextFacts.item ?? "эта позиция";
const detectedIntent = String(input.addressDebug?.detected_intent ?? ""); const detectedIntent = String(input.addressDebug?.detected_intent ?? "");
if (detectedIntent === "inventory_sale_trace_for_item") { if (detectedIntent === "inventory_sale_trace_for_item") {
return [ return [
`Да, если так прозвучало, это ошибка чтения ответа. В«${itemLabel}В» здесь РЅРµ контрагент, Р° сама позиция, РїРѕ которой РјС СЃРјРѕС‚СЂРµР»Рё продажу.`, `Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а сама позиция, по которой мы смотрели продажу.`,
"Рпредыдущем ответе СЏ показывал документы выбытия РїРѕ этой позиции. Покупатель РІ доступных данных отдельно РЅРµ выделен, поэтому назвать контрагента-покупателя СЏ там РЅРµ РјРѕРі.", "В предыдущем ответе я показывал документы выбытия по этой позиции. Покупатель в доступных данных отдельно не выделен, поэтому назвать контрагента-покупателя я там не мог.",
"Если хочешь, следующим шагом РјРѕРіСѓ отдельно проверить, РјРѕР¶РЅРѕ ли вытащить покупателя РїРѕ связанным документам реализации." "Если хочешь, следующим шагом могу отдельно проверить, можно ли вытащить покупателя по связанным документам реализации."
].join(" "); ].join(" ");
} }
if (detectedIntent === "inventory_purchase_provenance_for_item" || if (detectedIntent === "inventory_purchase_provenance_for_item" ||
detectedIntent === "inventory_purchase_documents_for_item") { detectedIntent === "inventory_purchase_documents_for_item") {
return [ return [
`Да, если так прозвучало, это ошибка чтения ответа. В«${itemLabel}В» здесь РЅРµ контрагент, Р° сама позиция / номенклатура.`, `Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а сама позиция или номенклатура.`,
"Рпредыдущем ответе речь шла Рѕ закупке этой позиции: СЏ перечислял поставщиков или закупочные документы РїРѕ ней, Р° РЅРµ называл саму позицию контрагентом." "В предыдущем ответе речь шла о закупке этой позиции: я перечислял поставщиков или закупочные документы по ней, а не называл саму позицию контрагентом."
].join(" "); ].join(" ");
} }
return [ return [
`Да, если так прозвучало, это ошибка чтения ответа. В«${itemLabel}В» здесь РЅРµ контрагент, Р° выбранный объект разбора.`, `Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а выбранный объект разбора.`,
"РЇ сейчас уточняю именно смысл предыдущего grounded-ответа РїРѕ этой позиции, Р° РЅРµ запускаю новый адресный РїРѕРёСЃРє." "Я сейчас уточняю именно смысл предыдущего grounded-ответа по этой позиции, а не запускаю новый адресный поиск."
].join(" "); ].join(" ");
} }
function resolveAssistantLivingChatMemoryContext(input) { function resolveAssistantLivingChatMemoryContext(input) {

View File

@ -263,14 +263,14 @@ export function buildSelectedObjectAnswerInspectionReply(input: {
toNonEmptyString: (value: unknown) => string | null; toNonEmptyString: (value: unknown) => string | null;
}): string { }): string {
const contextFacts = resolveAddressDebugContextFacts(input.addressDebug, input.toNonEmptyString); const contextFacts = resolveAddressDebugContextFacts(input.addressDebug, input.toNonEmptyString);
const itemLabel = contextFacts.item ?? "эта позиция"; const itemLabel = contextFacts.item ?? "эта позиция";
const detectedIntent = String(input.addressDebug?.detected_intent ?? ""); const detectedIntent = String(input.addressDebug?.detected_intent ?? "");
if (detectedIntent === "inventory_sale_trace_for_item") { if (detectedIntent === "inventory_sale_trace_for_item") {
return [ return [
`Да, если так прозвучало, это ошибка чтения ответа. В«${itemLabel}В» здесь РЅРµ контрагент, Р° сама позиция, РїРѕ которой РјС СЃРјРѕС‚СЂРµР»Рё продажу.`, `Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а сама позиция, по которой мы смотрели продажу.`,
"Рпредыдущем ответе СЏ показывал документы выбытия РїРѕ этой позиции. Покупатель РІ доступных данных отдельно РЅРµ выделен, поэтому назвать контрагента-покупателя СЏ там РЅРµ РјРѕРі.", "В предыдущем ответе я показывал документы выбытия по этой позиции. Покупатель в доступных данных отдельно не выделен, поэтому назвать контрагента-покупателя я там не мог.",
"Если хочешь, следующим шагом РјРѕРіСѓ отдельно проверить, РјРѕР¶РЅРѕ ли вытащить покупателя РїРѕ связанным документам реализации." "Если хочешь, следующим шагом могу отдельно проверить, можно ли вытащить покупателя по связанным документам реализации."
].join(" "); ].join(" ");
} }
@ -279,14 +279,14 @@ export function buildSelectedObjectAnswerInspectionReply(input: {
detectedIntent === "inventory_purchase_documents_for_item" detectedIntent === "inventory_purchase_documents_for_item"
) { ) {
return [ return [
`Да, если так прозвучало, это ошибка чтения ответа. В«${itemLabel}В» здесь РЅРµ контрагент, Р° сама позиция / номенклатура.`, `Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а сама позиция или номенклатура.`,
"Рпредыдущем ответе речь шла Рѕ закупке этой позиции: СЏ перечислял поставщиков или закупочные документы РїРѕ ней, Р° РЅРµ называл саму позицию контрагентом." "В предыдущем ответе речь шла о закупке этой позиции: я перечислял поставщиков или закупочные документы по ней, а не называл саму позицию контрагентом."
].join(" "); ].join(" ");
} }
return [ return [
`Да, если так прозвучало, это ошибка чтения ответа. В«${itemLabel}В» здесь РЅРµ контрагент, Р° выбранный объект разбора.`, `Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а выбранный объект разбора.`,
"РЇ сейчас уточняю именно смысл предыдущего grounded-ответа РїРѕ этой позиции, Р° РЅРµ запускаю новый адресный РїРѕРёСЃРє." "Я сейчас уточняю именно смысл предыдущего grounded-ответа по этой позиции, а не запускаю новый адресный поиск."
].join(" "); ].join(" ");
} }

View File

@ -274,8 +274,8 @@ describe("assistantMemoryRecapPolicy", () => {
}); });
expect(context.contextualAnswerInspectionFollowup).toBe(true); expect(context.contextualAnswerInspectionFollowup).toBe(true);
expect(reply).toContain("РЅРµ контрагент"); expect(reply).toContain("не контрагент");
expect(reply).toContain("Рабочая станция"); expect(reply).toContain("Рабочая станция");
expect(reply).toContain("Покупатель"); expect(reply).toContain("Покупатель");
}); });
}); });

View File

@ -1,90 +1,4 @@
[ [
{
"generation_id": "gen-ag04181425-56e29e",
"created_at": "2026-04-18T14:25:37+00:00",
"mode": "saved_user_sessions",
"title": "AGENT | Phase 12 wider saved-session replay for multi-trajectory organization authority",
"count": 20,
"domain": "address_phase12_wider_saved_session_pool",
"questions": [
"приветик - че как там дела",
"Альтернатива Плюс",
"расскажи что можешь интересного",
"кайф - что там на складе по остаткам?",
"а исторические остатки на другие даты умеешь?",
"март 2016",
"По выбранному объекту \"Рабочая станция универсального специалиста (индивидуальное изготовление)\": где взяли это?",
"а кому продали?",
"ндс можешь прикинуть на дату покупки рабочей станции?",
"кто у нас самый доходный клиент за все время",
"кто нам должен денег на май 2017",
"а какой ндс мы должны примерно заплатить за этот период?",
"мы должны комуто денег на сегодня?",
"а нам?",
"ты умеешь считать дельту по договорам?",
"по чепурнову покажи все доки",
"а по свк",
"хвосты покажи по счету 60 на август 2022",
"Есть ли остатки товара, которые закупались очень давно",
"а по Альтернативе Плюс сколько лет активности в базе 1С?"
],
"generated_by": "codex_agent",
"saved_case_set_file": "assistant_autogen_saved_user_sessions_20260418142537_gen-ag04181425-56e29e.json",
"context": {
"llm_provider": null,
"model": null,
"assistant_prompt_version": null,
"decomposition_prompt_version": null,
"prompt_fingerprint": null,
"autogen_personality_id": null,
"autogen_personality_prompt": null,
"source_session_id": null,
"saved_session_file": "assistant_saved_session_20260418142537_gen-ag04181425-56e29e.json",
"saved_case_set_kind": "agent_semantic_scenario",
"agent_run": true,
"agent_focus": "Broad AGENT replay built from the repaired manual session contour and extended with explicit company selection. The scenario validates proactive multi-company entry, capability meta honesty, inventory roots and history, selected-object carryover, VAT bridges and period carryover, receivables/payables polarity flip, counterparty document follow-ups, account 60 tails, old-purchase inventory aging, and organization activity age in one long live session.",
"architecture_phase": "turnaround_11",
"source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase12_wider_saved_session_pool.json",
"scenario_id": "address_truth_harness_phase12_wider_saved_session_pool",
"semantic_tags": [
"aggregate_revenue",
"bridge_inventory_to_vat",
"capability_over_followup",
"company_authority",
"company_selected",
"counterparty_followup",
"counterparty_root",
"cross_domain_pivot",
"date_carryover",
"display_label_integrity",
"documents",
"historical_date_anchor",
"human_answer_quality",
"inventory_aging",
"inventory_provenance",
"inventory_root",
"inventory_sale_trace",
"late_session_stability",
"meta_capability",
"meta_historical_capability",
"meta_smalltalk",
"organization_activity_age",
"organization_authority",
"proactive_scope_offer",
"same_date_restore",
"same_period_restore",
"selected_object",
"settlements_account_60",
"settlements_mirror_followup",
"settlements_payables",
"settlements_receivables",
"tail_authority_proof",
"today_scope",
"vat_followup"
],
"latest_acceptance": null
}
},
{ {
"generation_id": "gen-ag04171508-760111", "generation_id": "gen-ag04171508-760111",
"created_at": "2026-04-17T15:08:06+00:00", "created_at": "2026-04-17T15:08:06+00:00",

View File

@ -1,307 +0,0 @@
{
"saved_at": "2026-04-18T14:25:37+00:00",
"generation_id": "gen-ag04181425-56e29e",
"mode": "saved_user_sessions",
"title": "AGENT | Phase 12 wider saved-session replay for multi-trajectory organization authority",
"agent_run": true,
"questions": [
"приветик - че как там дела",
"Альтернатива Плюс",
"расскажи что можешь интересного",
"кайф - что там на складе по остаткам?",
"а исторические остатки на другие даты умеешь?",
"март 2016",
"По выбранному объекту \"Рабочая станция универсального специалиста (индивидуальное изготовление)\": где взяли это?",
"а кому продали?",
"ндс можешь прикинуть на дату покупки рабочей станции?",
"кто у нас самый доходный клиент за все время",
"кто нам должен денег на май 2017",
"а какой ндс мы должны примерно заплатить за этот период?",
"мы должны комуто денег на сегодня?",
"а нам?",
"ты умеешь считать дельту по договорам?",
"по чепурнову покажи все доки",
"а по свк",
"хвосты покажи по счету 60 на август 2022",
"Есть ли остатки товара, которые закупались очень давно",
"а по Альтернативе Плюс сколько лет активности в базе 1С?"
],
"metadata": {
"assistant_prompt_version": null,
"decomposition_prompt_version": null,
"prompt_fingerprint": null,
"agent_focus": "Broad AGENT replay built from the repaired manual session contour and extended with explicit company selection. The scenario validates proactive multi-company entry, capability meta honesty, inventory roots and history, selected-object carryover, VAT bridges and period carryover, receivables/payables polarity flip, counterparty document follow-ups, account 60 tails, old-purchase inventory aging, and organization activity age in one long live session.",
"architecture_phase": "turnaround_11",
"source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase12_wider_saved_session_pool.json",
"scenario_id": "address_truth_harness_phase12_wider_saved_session_pool",
"semantic_tags": [
"aggregate_revenue",
"bridge_inventory_to_vat",
"capability_over_followup",
"company_authority",
"company_selected",
"counterparty_followup",
"counterparty_root",
"cross_domain_pivot",
"date_carryover",
"display_label_integrity",
"documents",
"historical_date_anchor",
"human_answer_quality",
"inventory_aging",
"inventory_provenance",
"inventory_root",
"inventory_sale_trace",
"late_session_stability",
"meta_capability",
"meta_historical_capability",
"meta_smalltalk",
"organization_activity_age",
"organization_authority",
"proactive_scope_offer",
"same_date_restore",
"same_period_restore",
"selected_object",
"settlements_account_60",
"settlements_mirror_followup",
"settlements_payables",
"settlements_receivables",
"tail_authority_proof",
"today_scope",
"vat_followup"
]
},
"source_session_id": null,
"session": {
"session_id": null,
"mode": "agent_semantic_run",
"items": [
{
"message_id": "agent-user-001",
"role": "user",
"text": "приветик - че как там дела",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
},
{
"message_id": "agent-user-002",
"role": "user",
"text": "Альтернатива Плюс",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
},
{
"message_id": "agent-user-003",
"role": "user",
"text": "расскажи что можешь интересного",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
},
{
"message_id": "agent-user-004",
"role": "user",
"text": "кайф - что там на складе по остаткам?",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
},
{
"message_id": "agent-user-005",
"role": "user",
"text": "а исторические остатки на другие даты умеешь?",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
},
{
"message_id": "agent-user-006",
"role": "user",
"text": "март 2016",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
},
{
"message_id": "agent-user-007",
"role": "user",
"text": "По выбранному объекту \"Рабочая станция универсального специалиста (индивидуальное изготовление)\": где взяли это?",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
},
{
"message_id": "agent-user-008",
"role": "user",
"text": "а кому продали?",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
},
{
"message_id": "agent-user-009",
"role": "user",
"text": "ндс можешь прикинуть на дату покупки рабочей станции?",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
},
{
"message_id": "agent-user-010",
"role": "user",
"text": "кто у нас самый доходный клиент за все время",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
},
{
"message_id": "agent-user-011",
"role": "user",
"text": "кто нам должен денег на май 2017",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
},
{
"message_id": "agent-user-012",
"role": "user",
"text": "а какой ндс мы должны примерно заплатить за этот период?",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
},
{
"message_id": "agent-user-013",
"role": "user",
"text": "мы должны комуто денег на сегодня?",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
},
{
"message_id": "agent-user-014",
"role": "user",
"text": "а нам?",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
},
{
"message_id": "agent-user-015",
"role": "user",
"text": "ты умеешь считать дельту по договорам?",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
},
{
"message_id": "agent-user-016",
"role": "user",
"text": "по чепурнову покажи все доки",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
},
{
"message_id": "agent-user-017",
"role": "user",
"text": "а по свк",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
},
{
"message_id": "agent-user-018",
"role": "user",
"text": "хвосты покажи по счету 60 на август 2022",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
},
{
"message_id": "agent-user-019",
"role": "user",
"text": "Есть ли остатки товара, которые закупались очень давно",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
},
{
"message_id": "agent-user-020",
"role": "user",
"text": "а по Альтернативе Плюс сколько лет активности в базе 1С?",
"created_at": "2026-04-18T14:25:37+00:00",
"reply_type": null,
"trace_id": null,
"debug": null
}
],
"agent_run": true,
"metadata": {
"assistant_prompt_version": null,
"decomposition_prompt_version": null,
"prompt_fingerprint": null,
"agent_focus": "Broad AGENT replay built from the repaired manual session contour and extended with explicit company selection. The scenario validates proactive multi-company entry, capability meta honesty, inventory roots and history, selected-object carryover, VAT bridges and period carryover, receivables/payables polarity flip, counterparty document follow-ups, account 60 tails, old-purchase inventory aging, and organization activity age in one long live session.",
"architecture_phase": "turnaround_11",
"source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase12_wider_saved_session_pool.json",
"scenario_id": "address_truth_harness_phase12_wider_saved_session_pool",
"semantic_tags": [
"aggregate_revenue",
"bridge_inventory_to_vat",
"capability_over_followup",
"company_authority",
"company_selected",
"counterparty_followup",
"counterparty_root",
"cross_domain_pivot",
"date_carryover",
"display_label_integrity",
"documents",
"historical_date_anchor",
"human_answer_quality",
"inventory_aging",
"inventory_provenance",
"inventory_root",
"inventory_sale_trace",
"late_session_stability",
"meta_capability",
"meta_historical_capability",
"meta_smalltalk",
"organization_activity_age",
"organization_authority",
"proactive_scope_offer",
"same_date_restore",
"same_period_restore",
"selected_object",
"settlements_account_60",
"settlements_mirror_followup",
"settlements_payables",
"settlements_receivables",
"tail_authority_proof",
"today_scope",
"vat_followup"
]
}
}
}

View File

@ -1,12 +1,8 @@
{ {
"suite_id": "assistant_saved_session_gen-ag04181425-56e29e", "suite_id": "assistant_saved_session_runtime_job-MrKjMFH_UA",
"suite_version": "0.1.0", "suite_version": "0.1.0",
"schema_version": "assistant_saved_session_suite_v0_1", "schema_version": "assistant_saved_session_runtime_v0_1",
"generated_at": "2026-04-18T14:25:37+00:00", "title": "БОЛЬШОЙ ОБЩИЙ Ручная сессия 16.04.2026, 21:26:06",
"generation_id": "gen-ag04181425-56e29e",
"mode": "saved_user_sessions",
"title": "AGENT | Phase 12 wider saved-session replay for multi-trajectory organization authority",
"domain": "address_phase12_wider_saved_session_pool",
"scenario_count": 1, "scenario_count": 1,
"case_ids": [ "case_ids": [
"SAVED-001" "SAVED-001"
@ -14,26 +10,29 @@
"cases": [ "cases": [
{ {
"case_id": "SAVED-001", "case_id": "SAVED-001",
"scenario_tag": "agent_saved_user_sessions", "scenario_tag": "saved_user_sessions_runtime",
"title": "AGENT | Phase 12 wider saved-session replay for multi-trajectory organization authority", "title": "БОЛЬШОЙ ОБЩИЙ Ручная сессия 16.04.2026, 21:26:06",
"question_type": "followup", "question_type": "followup",
"broadness_level": "medium", "broadness_level": "medium",
"turns": [ "turns": [
{ {
"user_message": "приветик - че как там дела" "user_message": "приветик - че как там дела"
}, },
{
"user_message": "Альтернатива Плюс"
},
{ {
"user_message": "расскажи что можешь интересного" "user_message": "расскажи что можешь интересного"
}, },
{ {
"user_message": "кайф - что там на складе по остаткам?" "user_message": "кайф - что там на складе по остаткам?"
}, },
{
"user_message": "АЛЬТЕРНАТИВА"
},
{ {
"user_message": "а исторические остатки на другие даты умеешь?" "user_message": "а исторические остатки на другие даты умеешь?"
}, },
{
"user_message": "давай на июль 2017"
},
{ {
"user_message": "март 2016" "user_message": "март 2016"
}, },
@ -43,9 +42,18 @@
{ {
"user_message": "а кому продали?" "user_message": "а кому продали?"
}, },
{
"user_message": "у тебя написано кто контрагент: рабочая станция - это ошибка?"
},
{ {
"user_message": "ндс можешь прикинуть на дату покупки рабочей станции?" "user_message": "ндс можешь прикинуть на дату покупки рабочей станции?"
}, },
{
"user_message": "а какой ндс мы должны сгрузить на март 2020?"
},
{
"user_message": "прикинь какой ндс нам надо заплатить на февраль 2017"
},
{ {
"user_message": "кто у нас самый доходный клиент за все время" "user_message": "кто у нас самый доходный клиент за все время"
}, },
@ -61,6 +69,15 @@
{ {
"user_message": "а нам?" "user_message": "а нам?"
}, },
{
"user_message": "какой у нас самый доходный год"
},
{
"user_message": "а за 2017 мы скок заработали?"
},
{
"user_message": "сколько вообще денег мы заработали за все время?"
},
{ {
"user_message": "ты умеешь считать дельту по договорам?" "user_message": "ты умеешь считать дельту по договорам?"
}, },
@ -70,16 +87,34 @@
{ {
"user_message": "а по свк" "user_message": "а по свк"
}, },
{
"user_message": "а сейчас у нас есть что на складе?"
},
{
"user_message": "что нам отгружал чепурнов? какой товар или услугу?"
},
{
"user_message": "какие остатки на складе на сегодня"
},
{
"user_message": "остатки на март 2016"
},
{ {
"user_message": "хвосты покажи по счету 60 на август 2022" "user_message": "хвосты покажи по счету 60 на август 2022"
}, },
{ {
"user_message": "Есть ли остатки товара, которые закупались очень давно" "user_message": "Есть ли остатки товара, которые закупались очень давно"
}, },
{
"user_message": "Какие конкретно номенклатуры формируют остаток по складу на май 2020"
},
{ {
"user_message": "а по Альтернативе Плюс сколько лет активности в базе 1С?" "user_message": "а по Альтернативе Плюс сколько лет активности в базе 1С?"
},
{
"user_message": "Как ты оценишь деятельность компании?"
} }
] ]
} }
] ]
} }

View File

@ -4,8 +4,8 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>NDC AI Normalizer Playground</title> <title>NDC AI Normalizer Playground</title>
<script type="module" crossorigin src="/assets/index-DWgwfAPc.js"></script> <script type="module" crossorigin src="/assets/index-6meEannb.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-sbJz56_k.css"> <link rel="stylesheet" crossorigin href="/assets/index-BURU4_Sm.css">
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>

View File

@ -3076,7 +3076,6 @@ export function AutoRunsHistoryPanel({
<header> <header>
<strong>{formatAutoGenGenerationTitle(item)}</strong> <strong>{formatAutoGenGenerationTitle(item)}</strong>
<div className="autoruns-autogen-card-actions"> <div className="autoruns-autogen-card-actions">
<span>{formatDateTime(item.created_at)}</span>
<button <button
type="button" type="button"
className="autoruns-autogen-delete-btn" className="autoruns-autogen-delete-btn"
@ -3092,8 +3091,15 @@ export function AutoRunsHistoryPanel({
</button> </button>
</div> </div>
</header> </header>
<div className="autoruns-run-meta autoruns-run-id-row"> <div className="autoruns-saved-session-meta">
<span>{item.generation_id}</span> <strong className="autoruns-saved-session-meta-label">Дата и время</strong>
<span className="autoruns-saved-session-meta-value">| {formatDateTime(item.created_at)}</span>
</div>
<div className="autoruns-saved-session-meta autoruns-saved-session-meta-id">
<div className="autoruns-saved-session-meta-id-main">
<strong className="autoruns-saved-session-meta-label">ID</strong>
<span className="autoruns-saved-session-meta-value">| {item.generation_id}</span>
</div>
<span <span
role="button" role="button"
tabIndex={0} tabIndex={0}
@ -3111,14 +3117,22 @@ export function AutoRunsHistoryPanel({
<CopyOutlineIcon /> <CopyOutlineIcon />
</span> </span>
</div> </div>
<div className="autoruns-run-meta"> <div className="autoruns-saved-session-meta">
режим={formatAutoGenModeLabel(item.mode)} <strong className="autoruns-saved-session-meta-label">Режим</strong>
<span className="autoruns-saved-session-meta-value">| {formatAutoGenModeLabel(item.mode)}</span>
</div> </div>
<div className="autoruns-run-meta"> <div className="autoruns-saved-session-meta">
тип={isAgentSemanticGeneration(item) ? "АГЕНТНЫЙ ПРОГОН" : "АВТОПРОГОН"} <strong className="autoruns-saved-session-meta-label">Тип</strong>
<span className="autoruns-saved-session-meta-value">
| {isAgentSemanticGeneration(item) ? "АГЕНТНЫЙ ПРОГОН" : "АВТОПРОГОН"}
</span>
</div> </div>
{isSavedUserSessionsMode ? ( {isSavedUserSessionsMode ? (
<> <>
<div className="autoruns-saved-session-meta">
<strong className="autoruns-saved-session-meta-label">Количество вопросов</strong>
<span className="autoruns-saved-session-meta-value">| {item.questions.length}</span>
</div>
<div className="autoruns-saved-session-footer"> <div className="autoruns-saved-session-footer">
<button <button
type="button" type="button"

View File

@ -1558,6 +1558,57 @@ button:disabled {
display: none; display: none;
} }
.autoruns-saved-session-meta {
display: flex;
align-items: center;
gap: 6px;
flex-wrap: wrap;
font-size: 0.74rem;
line-height: 1.35;
}
.autoruns-saved-session-meta-label {
font-size: inherit;
font-weight: 700;
color: #fff;
}
.autoruns-saved-session-meta-value {
color: rgba(255, 255, 255, 0.82);
}
.autoruns-saved-session-meta-id {
width: 100%;
justify-content: space-between;
align-items: flex-start;
flex-wrap: nowrap;
gap: 8px;
}
.autoruns-saved-session-meta-id-main {
display: flex;
align-items: center;
gap: 6px;
min-width: 0;
flex: 1 1 auto;
flex-wrap: wrap;
}
.autoruns-saved-session-meta-id-main .autoruns-saved-session-meta-value {
overflow-wrap: anywhere;
word-break: break-word;
}
.autoruns-saved-session-meta-id .autoruns-copy-run-id-btn {
color: rgba(255, 255, 255, 0.82);
margin-left: auto;
align-self: flex-start;
}
.autoruns-saved-session-meta-id .autoruns-copy-run-id-btn:hover {
color: rgb(var(--rgb-active));
}
.autoruns-saved-session-topbar { .autoruns-saved-session-topbar {
display: flex; display: flex;
align-items: center; align-items: center;
@ -1570,6 +1621,7 @@ button:disabled {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: flex-start; justify-content: flex-start;
gap: 10px;
min-height: 20px; min-height: 20px;
margin-top: 2px; margin-top: 2px;
} }