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

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) {
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 ?? "");
if (detectedIntent === "inventory_sale_trace_for_item") {
return [
`Да, если так прозвучало, это ошибка чтения ответа. В«${itemLabel}В» здесь РЅРµ контрагент, Р° сама позиция, РїРѕ которой РјС СЃРјРѕС‚СЂРµР»Рё продажу.`,
"Рпредыдущем ответе я показывал документы выбытия по этой позиции. Покупатель в доступных данных отдельно не выделен, поэтому назвать контрагента-покупателя я там не мог.",
"Если хочешь, следующим шагом могу отдельно проверить, можно ли вытащить покупателя по связанным документам реализации."
`Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а сама позиция, по которой мы смотрели продажу.`,
"В предыдущем ответе я показывал документы выбытия по этой позиции. Покупатель в доступных данных отдельно не выделен, поэтому назвать контрагента-покупателя я там не мог.",
"Если хочешь, следующим шагом могу отдельно проверить, можно ли вытащить покупателя по связанным документам реализации."
].join(" ");
}
if (detectedIntent === "inventory_purchase_provenance_for_item" ||
detectedIntent === "inventory_purchase_documents_for_item") {
return [
`Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а сама позиция / номенклатура.`,
"Рпредыдущем ответе речь шла о закупке этой позиции: я перечислял поставщиков или закупочные документы по ней, а не называл саму позицию контрагентом."
`Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а сама позиция или номенклатура.`,
"В предыдущем ответе речь шла о закупке этой позиции: я перечислял поставщиков или закупочные документы по ней, а не называл саму позицию контрагентом."
].join(" ");
}
return [
`Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а выбранный объект разбора.`,
"Я сейчас уточняю именно смысл предыдущего grounded-ответа по этой позиции, а не запускаю новый адресный поиск."
`Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а выбранный объект разбора.`,
"Я сейчас уточняю именно смысл предыдущего grounded-ответа по этой позиции, а не запускаю новый адресный поиск."
].join(" ");
}
function resolveAssistantLivingChatMemoryContext(input) {

View File

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

View File

@ -274,8 +274,8 @@ describe("assistantMemoryRecapPolicy", () => {
});
expect(context.contextualAnswerInspectionFollowup).toBe(true);
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",
"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",
"schema_version": "assistant_saved_session_suite_v0_1",
"generated_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",
"domain": "address_phase12_wider_saved_session_pool",
"schema_version": "assistant_saved_session_runtime_v0_1",
"title": "БОЛЬШОЙ ОБЩИЙ Ручная сессия 16.04.2026, 21:26:06",
"scenario_count": 1,
"case_ids": [
"SAVED-001"
@ -14,26 +10,29 @@
"cases": [
{
"case_id": "SAVED-001",
"scenario_tag": "agent_saved_user_sessions",
"title": "AGENT | Phase 12 wider saved-session replay for multi-trajectory organization authority",
"scenario_tag": "saved_user_sessions_runtime",
"title": "БОЛЬШОЙ ОБЩИЙ Ручная сессия 16.04.2026, 21:26:06",
"question_type": "followup",
"broadness_level": "medium",
"turns": [
{
"user_message": "приветик - че как там дела"
},
{
"user_message": "Альтернатива Плюс"
},
{
"user_message": "расскажи что можешь интересного"
},
{
"user_message": "кайф - что там на складе по остаткам?"
},
{
"user_message": "АЛЬТЕРНАТИВА"
},
{
"user_message": "а исторические остатки на другие даты умеешь?"
},
{
"user_message": "давай на июль 2017"
},
{
"user_message": "март 2016"
},
@ -43,9 +42,18 @@
{
"user_message": "а кому продали?"
},
{
"user_message": "у тебя написано кто контрагент: рабочая станция - это ошибка?"
},
{
"user_message": "ндс можешь прикинуть на дату покупки рабочей станции?"
},
{
"user_message": "а какой ндс мы должны сгрузить на март 2020?"
},
{
"user_message": "прикинь какой ндс нам надо заплатить на февраль 2017"
},
{
"user_message": "кто у нас самый доходный клиент за все время"
},
@ -61,6 +69,15 @@
{
"user_message": "а нам?"
},
{
"user_message": "какой у нас самый доходный год"
},
{
"user_message": "а за 2017 мы скок заработали?"
},
{
"user_message": "сколько вообще денег мы заработали за все время?"
},
{
"user_message": "ты умеешь считать дельту по договорам?"
},
@ -70,14 +87,32 @@
{
"user_message": "а по свк"
},
{
"user_message": "а сейчас у нас есть что на складе?"
},
{
"user_message": "что нам отгружал чепурнов? какой товар или услугу?"
},
{
"user_message": "какие остатки на складе на сегодня"
},
{
"user_message": "остатки на март 2016"
},
{
"user_message": "хвосты покажи по счету 60 на август 2022"
},
{
"user_message": "Есть ли остатки товара, которые закупались очень давно"
},
{
"user_message": "Какие конкретно номенклатуры формируют остаток по складу на май 2020"
},
{
"user_message": "а по Альтернативе Плюс сколько лет активности в базе 1С?"
},
{
"user_message": "Как ты оценишь деятельность компании?"
}
]
}

View File

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

View File

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

View File

@ -1558,6 +1558,57 @@ button:disabled {
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 {
display: flex;
align-items: center;
@ -1570,6 +1621,7 @@ button:disabled {
display: flex;
align-items: center;
justify-content: flex-start;
gap: 10px;
min-height: 20px;
margin-top: 2px;
}