feat: ship deterministic parser and lifecycle release
This commit is contained in:
1 parent
208c434b31
commit
7b5d855b09
176 files changed
+20248
-1362
No files matched your search
@@ -5,7 +5,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="theme-color" content="#edf2f4">
|
||||
<title>AI操作台 · LianSyn-platform</title>
|
||||
<link rel="stylesheet" href="styles.css?v=20260817-channels-root-4">
|
||||
<link rel="stylesheet" href="styles.css?v=20260827-roster-attachment-1">
|
||||
</head>
|
||||
<body>
|
||||
<main class="app-shell">
|
||||
@@ -17,10 +17,11 @@
|
||||
<a id="workbenchNav" class="top-nav-item is-active" aria-current="page" href="/">AI操作台</a>
|
||||
<a id="historyNav" class="top-nav-item" href="/history">历史任务</a>
|
||||
<a id="channelsNav" class="top-nav-item" href="/channels">AgentBus 渠道</a>
|
||||
<a id="parserRoutingNav" class="top-nav-item" href="/parser-routing">解析策略</a>
|
||||
</nav>
|
||||
<div class="top-actions">
|
||||
<span id="authState" class="auth-state" hidden></span>
|
||||
<button id="automationToggleButton" type="button" class="automation-toggle" hidden aria-pressed="false" title="开启后,AgentBus 新任务将跳过人工确认并自动进入 ERP"></button>
|
||||
<button id="automationToggleButton" type="button" class="automation-toggle" hidden aria-pressed="false" title="开启后,所有来源的新任务解析通过后将跳过人工确认并自动进入 ERP"></button>
|
||||
<button id="logoutButton" type="button" class="logout-button" hidden>退出登录</button>
|
||||
<button id="aiState" type="button" class="status-icon state-bad" title="点击查看 AI 状态详情" aria-expanded="false" aria-controls="statusDetailsPopover">
|
||||
<span class="status-icon-glyph" aria-hidden="true">✦</span>
|
||||
@@ -68,7 +69,7 @@
|
||||
<div>
|
||||
<p class="eyebrow">CHANNEL DIRECTORY</p>
|
||||
<h2>AgentBus 用户渠道</h2>
|
||||
<p class="muted">每个外部用户渠道使用独立 AgentBus key;key 只写入服务端,不会回显。</p>
|
||||
<p class="muted">每个外部用户渠道使用独立 AgentBus key;key 只写入服务端,不会回显,不再使用的渠道可以删除。</p>
|
||||
</div>
|
||||
</div>
|
||||
<form id="channelForm" class="channel-form" novalidate>
|
||||
@@ -83,12 +84,52 @@
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id="parserRoutingPage" class="parser-routing-page" hidden>
|
||||
<section class="panel parser-routing-panel">
|
||||
<div class="panel-head parser-routing-head">
|
||||
<div>
|
||||
<p class="eyebrow">PARSER ROUTING CONTROL</p>
|
||||
<h2>18 项业务解析策略</h2>
|
||||
<p class="muted">程序与夹具即时验证后逐业务手动切换;两项名单导入固定为 Program-only,不参与 AI 回退。</p>
|
||||
</div>
|
||||
<button id="emergencyAiButton" type="button" class="danger-button parser-emergency-button">可配置业务全部切回 AI</button>
|
||||
</div>
|
||||
<div id="parserAutomationNotice" class="parser-automation-notice" role="note"></div>
|
||||
<div class="parser-routing-table-wrap">
|
||||
<table class="parser-routing-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>业务</th>
|
||||
<th>程序版本</th>
|
||||
<th>当前模式</th>
|
||||
<th>近 7 日观察</th>
|
||||
<th>近 30 日观察</th>
|
||||
<th>即时切换检查</th>
|
||||
<th>最近修改</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="parserRoutingRows"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p id="parserRoutingMessage" class="channel-message" role="status"></p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id="workbench" class="workbench-grid" hidden>
|
||||
<section class="panel instruction-panel">
|
||||
<div class="panel-head">
|
||||
<h2>输入区域</h2>
|
||||
</div>
|
||||
<textarea id="rawInstruction" spellcheck="false"></textarea>
|
||||
<div class="task-input-request">
|
||||
<div class="task-input-request-head">
|
||||
<label class="task-output-label" for="rosterAttachment">名单 Excel 附件(可选)</label>
|
||||
<span class="task-input-request-state">仅导入名单业务使用</span>
|
||||
</div>
|
||||
<input id="rosterAttachment" type="file" accept=".xls,.xlsx,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet">
|
||||
<p class="task-input-request-prompts">支持单个 .xls 或 .xlsx;文件只在本次提交时读取,不保存到浏览器。</p>
|
||||
<p id="rosterAttachmentStatus" class="task-input-request-status" role="status" aria-live="polite"></p>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<button id="createTaskButton" type="button">创建任务</button>
|
||||
</div>
|
||||
@@ -114,6 +155,7 @@
|
||||
状态
|
||||
<select id="historyStatusInput">
|
||||
<option value="">全部任务</option>
|
||||
<option value="awaiting_attachment">等待名单附件</option>
|
||||
<option value="awaiting_user_input">等待补充</option>
|
||||
<option value="awaiting_confirmation">待确认</option>
|
||||
<option value="confirmed">已确认</option>
|
||||
@@ -129,6 +171,15 @@
|
||||
<button id="historyResetButton" type="button" class="secondary-button">重置</button>
|
||||
</div>
|
||||
</form>
|
||||
<div id="historyBatchActions" class="history-batch-actions" hidden>
|
||||
<label class="history-select-all">
|
||||
<input id="historySelectAll" type="checkbox">
|
||||
<span>选择本页</span>
|
||||
</label>
|
||||
<span id="historySelectionSummary" class="muted">已选 0 个</span>
|
||||
<span id="historyBatchMessage" class="history-batch-message" role="status" aria-live="polite"></span>
|
||||
<button id="historyDeleteSelectedButton" type="button" class="danger-button" disabled>删除所选</button>
|
||||
</div>
|
||||
<div id="taskCards" class="task-cards"></div>
|
||||
<div id="historyPagination" class="history-pagination" hidden>
|
||||
<span id="historyPageSummary" class="muted"></span>
|
||||
@@ -154,6 +205,6 @@
|
||||
</section>
|
||||
|
||||
</main>
|
||||
<script src="app.js?v=20260817-channels-root-4"></script>
|
||||
<script src="app.js?v=20260828-shared-plan-visitor-export-1"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user