@v587d/capital-generation 2.14.0 → 2.15.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/CHANGELOG.md CHANGED
@@ -7,6 +7,45 @@
7
7
  - **第三位(patch)**:不破坏既有工具 / 配置 / 会话的新增与修复(如 2.1.1、2.1.2)。
8
8
  - **第二位(minor)**:有需要用户知晓的行为变更,且段内附迁移说明(如 2.1.0 的图表呈现通道重做、2.2.0 的数据源与检索来源扩容、2.4.0 的**必须换宿主版本**、2.9.0 的选择器收敛与质检前置——本插件自己的工具与数据契约没变,所以只抬第二位)。
9
9
 
10
+ ## [2.15.0] - 2026-10-31
11
+
12
+ 宿主基线从 `0.2.1-rc.3` 抬到 `0.2.1-rc.5`;同时修掉互动易问答列表的时间列解析——站点在提问与
13
+ 回复里混用绝对时间与相对时间,旧实现只认三种写法,遇到新写法整页失败。
14
+
15
+ ### Fixed
16
+
17
+ - **互动易(`sseinfo_qa`)时间列认全站点写法**:绝对时间(`2026年09月18日`、`2026-09-18`、
18
+ `2026/09/18`)、`今天` / `昨天` / `前天`、`N秒|分钟|小时|天前`、`MM-DD HH:MM`(跨年回退)、
19
+ 只有 `HH:MM`、`刚刚` / `刚才` 都按北京时间归一成 `YYYY-MM-DD HH:MM`;非法日期、非法时刻与
20
+ 超长相对量返回 `undefined`,由整页解析响亮失败,不再把格式漂移变成一列空值或错日期。
21
+
22
+ ### Changed
23
+
24
+ - **`peerDependencies` 的 `dsh-skill` / `dsh-skill-filesystem` 改成精确 pin `0.2.1-rc.5`**:
25
+ 这两颗是运行时值导入(`FileSystemSkillProvider`),与宿主同版才不会有"插件带 rc.5 的 provider
26
+ 接 rc.3 的 skill 服务"这种跨版本组合。`devDependencies` 与 lockfile 同步到 rc.5。
27
+ - README 基线徽章、CONTRIBUTING、CI 安装版本、preset 维护文档同步到 rc.5。
28
+
29
+ ### Migration
30
+
31
+ - **本次必须换宿主版本**:先 `dsh --version` 确认为 `0.2.1-rc.5`,再安装或更新本插件。在 rc.3 上
32
+ 安装本版会被宿主的插件兼容预检直接拒绝;反过来,若先升宿主而插件仍是 2.14.1,启动时该插件行
33
+ 会被禁用(stderr 一行 `disabling profile plugin ...`,界面上模式与工具整体消失),执行
34
+ `dsh plugin --profile <profile> update @v587d/capital-generation` 后重启即可恢复。
35
+ - 升级宿主或插件后都需**重启宿主再新建会话**:已在内存里的旧客户端 bundle 与新宿主不混用。
36
+ - 互动易时间列修复无需迁移:已存 Dataset 的列值不变,下一次 `sseinfo_qa` 取数按新解析写入。
37
+
38
+ ## [2.14.1] - 2026-10-30
39
+
40
+ 投研自动化两处交互收尾:每周多选菜单去掉冗余的「完成」项,新建任务弹窗收窄到 600px。
41
+
42
+ ### Fixed
43
+
44
+ - **每周菜单去掉「完成」**:星期多选在点击选项时立即生效,菜单本来就会在点击外部或按 Esc 时关闭;
45
+ 底部的「完成」按钮是重复的收起动作,已删除。
46
+ - **新建任务弹窗收窄**:弹窗宽度从 720px 调整为 600px,触发器与任务指令编辑区随内容区一起收窄,
47
+ 不再占用过宽的屏幕空间;其他确认 / 通知弹窗宽度不变。
48
+
10
49
  ## [2.14.0] - 2026-10-30
11
50
 
12
51
  投研自动化触发器重做:新增单次运行、月末与 29–31 日,并把规则选项收进频率与时间之间的下拉菜单;
package/README.md CHANGED
@@ -13,12 +13,12 @@
13
13
  <a href="https://github.com/deepseek-ai"><img src="https://img.shields.io/badge/DeepSeek_Harness-plugin-blue" alt="DSH Plugin"></a>
14
14
  <a href="https://github.com/deepseek-ai"><img src="https://img.shields.io/badge/DeepSeek_Harness-web-orange" alt="DSH Web"></a>
15
15
  <a href="https://github.com/deepseek-ai"><img src="https://img.shields.io/badge/DeepSeek_Harness-desktop-brightgreen" alt="DSH Desktop · 已实机验证"></a>
16
- <a href="https://github.com/deepseek-ai"><img src="https://img.shields.io/badge/DSH%20Baseline-0.2.1--rc.3-blue" alt="DSH@0.2.1-rc.3"></a>
16
+ <a href="https://github.com/deepseek-ai"><img src="https://img.shields.io/badge/DSH%20Baseline-0.2.1--rc.5-blue" alt="DSH@0.2.1-rc.5"></a>
17
17
  </p>
18
18
  <p align="center">
19
19
  <a href="https://awesome-dsh-plugin.com"><img src="https://awesome-dsh-plugin.com/badge.svg" alt="awesome · DSH plugin"></a>
20
20
  <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-green" alt="License"></a>
21
- <a href="https://github.com/v587d/capital-generation/releases"><img src="https://img.shields.io/badge/version-2.14.0-9cf" alt="Version"></a>
21
+ <a href="https://github.com/v587d/capital-generation/releases"><img src="https://img.shields.io/badge/version-2.15.0-9cf" alt="Version"></a>
22
22
  <a href="https://www.npmjs.com/package/@v587d/capital-generation"><img src="https://img.shields.io/npm/v/%40v587d%2Fcapital-generation" alt="npm version"></a>
23
23
  <a href="https://github.com/deepseek-ai/deepseek-harness"><img src="https://img.shields.io/badge/powered_by-dsh-4D6BFE?style=flat-square&logo=deepseek&logoColor=white" alt="powered-by-dsh"></a>
24
24
  </p>
@@ -39,7 +39,7 @@ Capital Generation 是运行在 [DeepSeek Harness(DSH)](https://github.com/d
39
39
  ## 快速上手
40
40
 
41
41
  > [!NOTE]
42
- > 最新版本已适配 DSH`@0.2.1-rc.3`。
42
+ > 最新版本已适配 DSH`@0.2.1-rc.5`。
43
43
 
44
44
 
45
45
  0. **前置**
@@ -110,7 +110,7 @@ Capital Generation 是运行在 [DeepSeek Harness(DSH)](https://github.com/d
110
110
 
111
111
  在新的自动模式会话中使用以下指令。将方括号内容换成自己的标的、公告或持仓;证券代码写完整市场后缀,例如 `600519.SH`。每条指令单独发送,便于观察结果。
112
112
 
113
- [样例:指南针、同花顺复盘分析报告(20261023)](docs/sample/指南针-同花顺-复盘分析报告.md)
113
+ [样例:指南针Q3暴跌探因(20261031)](docs/sample/指南针Q3暴跌探因.md)
114
114
 
115
115
  <details>
116
116
  <summary>展开示例指令</summary>
@@ -201,7 +201,7 @@ Capital Generation 是运行在 [DeepSeek Harness(DSH)](https://github.com/d
201
201
  - **安装后找不到模式?** 确认插件出现在「插件」→ 已安装列表;Web / CLI profile 安装后要重启该 profile,并在新会话选择模式。选择器里应看到自动模式、行情专家、资讯专员;分析师和绘图专员是自动模式的内部角色,不会出现在这里。
202
202
  - **配置在哪?** 打开「插件」→ 已安装的 **Capital Generation**,页面顶部就是「数据源 / 精选 Skills / 包含的组件」三格,五把密钥都在第一格;不在 DSH 的普通「设置」页面,也不用点进任何一行组件。保存密钥后新建会话再试。
203
203
  - **升级到 2.9.0 后,分析师和绘图专员去哪了?** 这一版把它们收进自动模式内部,不再出现在选择器与预设管理里,避免误开一个没有取数入口的空会话。旧会话仍能按原身份恢复;新任务直接用自动模式提出即可。
204
- - **桌面端升级后仍是旧版?** 桌面端安装时会固定所解析的版本,不会自动升级。卸载后重新安装,再到插件详情查看版本号;如需指定版本,可在地址末尾加 `#v2.14.0` 或 `@2.14.0`。
204
+ - **桌面端升级后仍是旧版?** 桌面端安装时会固定所解析的版本,不会自动升级。卸载后重新安装,再到插件详情查看版本号;如需指定版本,可在地址末尾加 `#v2.15.0` 或 `@2.15.0`。
205
205
  - **刚发布的新版本装不到?** 桌面端取包时会跳过**刚发布不久**的版本(宿主侧包管理器的发布冷却策略,实测会静默装成上一个版本),国内镜像的同步也可能滞后一段时间。急着用最新代码,改用仓库地址安装最直接。
206
206
  - **网页抓取失败?** 配置卡片中的「允许启动本地提取网页内容」默认开启:AnySearch 提取失败时可尝试本机直连。关闭后,本机直连的具名来源查询也不可用;请检查该开关和网络连接。
207
207
  - **Wind 那部分会消耗积分?** 会。公告与新闻检索、宏观 / 行业 / 汇率指标、按日期区间取的历史 K 线都按次消耗你在 Wind 侧的额度;额度与条款以 Wind 为准,插件不做用量封顶。没配 `WIND_API_KEY` 时这几类不可用,其余功能照常。
@@ -5,7 +5,7 @@ window.__ModuleLoader__.load({
5
5
  var module = { exports: {} }
6
6
  var exports = module.exports
7
7
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' })
8
- "use strict";var{createElement:a,useEffect:j,useRef:q,useState:z}=require("react"),{IconAlarmClockOutlineRegular:Ea,IconChecklistOutlineRegular:$a,IconChevronDownOutlineRegular:Ma,IconChevronLeftOutlineRegular:Ut,IconChevronRightOutlineRegular:La,IconClockOutlineRegular:Ba,IconCopyOutlineRegular:qt,IconEditOutlineRegular:jt,IconEllipsisOutlineRegular:Gt,IconFolderOpenOutlineRegular:Vt,IconGaugeOutlineRegular:Wt,IconGlobeOutlineRegular:Kt,IconInfoOutlineRegular:Yt,IconLightOutlineMedium:Zt,IconListPenOutlineRegular:Qt,IconPauseOutlineRegular:Jt,IconPlayOutlineRegular:_a,IconPlusOutlineRegular:Ha,IconRefreshOutlineRegular:Xt,IconRightUpOutlineRegular:ae,IconSearchOutlineRegular:ot,IconSparkleRegular:lt,IconTrashOutlineRegular:te,IconWarningOutlineRegular:rt,Menu:wa,MenuItemButton:Xa,Modal:Pa,Switch:st}=require("@deepseek-ai/dsh-client-ui-primitives"),Fa="capital-automation",ee="/capital-automation",at="capital-automation",tt="capital-automation-css",ie=["queued","starting","running"],ne=["failed","timed_out","blocked_requires_user","unknown_after_restart"],oe=["skipped_overlap","skipped_calendar_unavailable","missed"],le={runTimeoutMinutes:30,idleTimeoutMinutes:5,maxSteps:300,maxToolCalls:1200},la=[{value:1,label:"\u4E00"},{value:2,label:"\u4E8C"},{value:3,label:"\u4E09"},{value:4,label:"\u56DB"},{value:5,label:"\u4E94"},{value:6,label:"\u516D"},{value:7,label:"\u65E5"}],Ra=["Asia/Shanghai","Asia/Hong_Kong","Asia/Taipei","Asia/Singapore","Asia/Tokyo","Asia/Seoul","UTC","Europe/London","Europe/Paris","Europe/Berlin","America/New_York","America/Chicago","America/Los_Angeles","America/Toronto","America/Sao_Paulo","Australia/Sydney"],xa=30,et=3,Aa=12,va=100,e={panel:"CapGen \u6295\u7814\u81EA\u52A8\u5316",title:"CapGen \u6295\u7814\u81EA\u52A8\u5316",subtitle:"\u5B9A\u65F6\u6295\u7814\uFF0C\u81EA\u52A8\u6267\u884C\uFF0C\u7ED3\u679C\u53EF\u8FFD\u6EAF",tabs:{tasks:"\u4EFB\u52A1",runs:"\u8FD0\u884C"},storageUnavailable:"\u5B58\u50A8\u4E0D\u53EF\u7528\uFF0C\u9875\u9762\u53EA\u8BFB",standbyBanner:"\u8C03\u5EA6\u5668\u672A\u53D6\u5F97\u8FD0\u884C\u6743\uFF1A\u5B9A\u65F6\u89E6\u53D1\u4E0E\u624B\u52A8\u8FD0\u884C\u5DF2\u6682\u505C\uFF0C\u4EFB\u52A1\u914D\u7F6E\u4ECD\u53EF\u67E5\u770B\u548C\u7F16\u8F91\u3002",storageBanner:"\u6295\u7814\u81EA\u52A8\u5316\u5B58\u50A8\u6682\u65F6\u4E0D\u53EF\u7528\uFF1A\u9875\u9762\u53EA\u8BFB\uFF0C\u8C03\u5EA6\u5668\u4E0D\u4F1A\u542F\u52A8\u3002",calendarBanner:"\u4EA4\u6613\u65E5\u5386\u6682\u65F6\u4E0D\u53EF\u7528\uFF1A\u4EC5\u4EA4\u6613\u65E5\u7684\u4EFB\u52A1\u4F1A\u8DF3\u8FC7\uFF0C\u5176\u4ED6\u4EFB\u52A1\u4ECD\u6309\u8BBE\u5B9A\u65F6\u95F4\u8FD0\u884C\u3002",calendarCoverageBanner:"\u4EA4\u6613\u65E5\u5386\u53EA\u8986\u76D6\u5230 {through}\uFF1A\u4E4B\u540E\u4EC5\u4EA4\u6613\u65E5\u7684\u4EFB\u52A1\u4F1A\u6309 fail-closed \u8DF3\u8FC7\uFF1B\u4EA4\u6613\u6240\u516C\u5E03\u65B0\u4E00\u5E74\u5B89\u6392\u540E\u4F1A\u81EA\u52A8\u63A5\u4E0A\u3002",calendarField:"\u4EA4\u6613\u65E5\u5386",calendarSourceSzse:"\u6DF1\u4EA4\u6240\u5B98\u65B9\u65E5\u5386",calendarSourceBundled:"\u5185\u7F6E\u8868",calendarSourceNone:"\u4E0D\u53EF\u7528",calendarThrough:"\u8986\u76D6\u81F3 {date}",calendarUnknown:"\u672A\u77E5",loadRetry:"\u91CD\u65B0\u8BFB\u53D6",loading:"\u8BFB\u53D6\u4E2D\u2026",empty:"\u8FD8\u6CA1\u6709\u4EFB\u52A1\u3002",emptyTasksTitle:"\u8FD8\u6CA1\u6709\u6DFB\u52A0\u7684\u4EFB\u52A1",emptyTasksBody:"\u4ECE\u4E0B\u65B9\u6DFB\u52A0\u4E00\u4E2A\u5185\u7F6E\u6A21\u677F\uFF0C\u6216\u65B0\u5EFA\u4E00\u4E2A\u81EA\u5DF1\u7684\u6295\u7814\u4EFB\u52A1\u3002",emptyNoTemplates:"\u8FD8\u6CA1\u6709\u4EFB\u52A1",emptyNoTemplatesBody:"\u70B9\u51FB\u53F3\u4E0A\u89D2\u300C\u65B0\u5EFA\u4EFB\u52A1\u300D\uFF0C\u521B\u5EFA\u7B2C\u4E00\u4E2A\u5B9A\u65F6\u6295\u7814\u4EFB\u52A1\u3002",emptyFiltered:"\u6CA1\u6709\u5339\u914D\u7684\u4EFB\u52A1\u3002",clearFilter:"\u6E05\u9664\u7B5B\u9009",newTask:"\u65B0\u5EFA\u4EFB\u52A1",newTaskTitle:"\u65B0\u5EFA\u6295\u7814\u4EFB\u52A1",newTaskHint:"\u4EFB\u52A1\u4F1A\u5728\u540E\u53F0\u65B0\u5EFA\u4E00\u4E2A session \u6267\u884C\uFF0C\u4E0D\u9700\u8981\u4F60\u5B88\u5728\u9875\u9762\u4E0A\u3002",editTask:"\u7F16\u8F91\u4EFB\u52A1",allTasks:"\u5168\u90E8\u4EFB\u52A1",backToTasks:"\u6240\u6709\u4EFB\u52A1",taskSection:"\u4EFB\u52A1",taskSectionHint:"\u70B9\u51FB\u4EFB\u52A1\u884C\u67E5\u770B\u8BE6\u60C5\u3001\u8FD0\u884C\u8BB0\u5F55\u548C\u914D\u7F6E\u3002",templateSection:"\u6A21\u677F",templateAdd:"\u6DFB\u52A0",templateAdding:"\u6DFB\u52A0\u4E2D\u2026",templateMeta:"\u5185\u7F6E\u6A21\u677F",runningSection:"\u6B63\u5728\u8FD0\u884C",runningSince:"\u5F00\u59CB\u4E8E",cancelRun:"\u53D6\u6D88\u8FD0\u884C",searchPlaceholder:"\u641C\u7D22\u4EFB\u52A1",filterAll:"\u5168\u90E8",filterCustom:"\u6211\u7684\u4EFB\u52A1",filterNews:"\u8D44\u8BAF",filterMarket:"\u884C\u60C5",filterReview:"\u590D\u76D8",filterResearch:"\u7814\u7A76",filterLabel:"\u7B5B\u9009\u4EFB\u52A1",category:{news:"\u8D44\u8BAF",market:"\u884C\u60C5",review:"\u590D\u76D8",research:"\u7814\u7A76"},categoryField:"\u4EFB\u52A1\u5206\u7C7B",categoryFixed:"'\u590D\u5236\u4E3A\u6211\u7684\u4EFB\u52A1'\u540E\uFF0C\u53EF\u8C03\u6574\u4EFB\u52A1\u5206\u7C7B\u3002",cadence:{daily:"\u6BCF\u5929",weekly:"\u6BCF\u5468",monthly:"\u6BCF\u6708",once:"\u5355\u6B21"},stateLabel:"\u72B6\u6001",state:{dormant:"\u672A\u6DFB\u52A0",active:"\u5DF2\u542F\u7528",paused:"\u5DF2\u6682\u505C"},origin:{builtin:"\u5185\u7F6E\u6A21\u677F",custom:"\u6211\u7684\u4EFB\u52A1"},status:{queued:"\u6392\u961F\u4E2D",starting:"\u542F\u52A8\u4E2D",running:"\u8FD0\u884C\u4E2D",succeeded:"\u6210\u529F",failed:"\u5931\u8D25",canceled:"\u5DF2\u53D6\u6D88",timed_out:"\u8D85\u65F6",blocked_requires_user:"\u9700\u8981\u7528\u6237\u786E\u8BA4",unknown_after_restart:"\u91CD\u542F\u540E\u672A\u77E5",skipped_overlap:"\u91CD\u53E0\u8DF3\u8FC7",skipped_calendar_unavailable:"\u65E5\u5386\u4E0D\u53EF\u7528\u8DF3\u8FC7",missed:"\u9519\u8FC7"},runNow:"\u7ACB\u5373\u8FD0\u884C",runStarted:"\u5DF2\u63D0\u4EA4\u8FD0\u884C",pause:"\u6682\u505C",activate:"\u542F\u7528",add:"\u6DFB\u52A0",hibernate:"\u4F11\u7720\u5E76\u6062\u590D\u9ED8\u8BA4",copy:"\u590D\u5236\u4E3A\u6211\u7684\u4EFB\u52A1",remove:"\u5220\u9664\u4EFB\u52A1",edit:"\u7F16\u8F91",more:"\u66F4\u591A\u64CD\u4F5C",save:"\u4FDD\u5B58",saving:"\u4FDD\u5B58\u4E2D\u2026",processing:"\u5904\u7406\u4E2D\u2026",saved:"\u5DF2\u4FDD\u5B58",cancel:"\u53D6\u6D88",create:"\u521B\u5EFA\u4EFB\u52A1",creating:"\u521B\u5EFA\u4E2D\u2026",titleRequired:"\u6807\u9898\u4E0D\u80FD\u4E3A\u7A7A\u3002",instructionRequired:"\u4EFB\u52A1\u6307\u4EE4\u4E0D\u80FD\u4E3A\u7A7A\u3002",invalidLimit:"\u8BF7\u8F93\u5165\u6709\u6548\u6570\u5B57\u3002",dirty:"\u6709\u672A\u4FDD\u5B58\u7684\u4FEE\u6539",noDirty:"\u914D\u7F6E\u5DF2\u540C\u6B65",nextRun:"\u4E0B\u6B21\u8FD0\u884C",nextRunDormant:"\u6DFB\u52A0\u540E\u5F00\u59CB\u8C03\u5EA6",nextRunPaused:"\u542F\u7528\u540E\u6062\u590D\u8C03\u5EA6",notScheduled:"\u5F53\u524D\u4E0D\u4F1A\u81EA\u52A8\u8FD0\u884C",lastResult:"\u4E0A\u6B21\u7ED3\u679C",lastRunEmpty:"\u8FD0\u884C\u540E\u53EF\u5728\u8FD9\u91CC\u67E5\u770B\u7ED3\u679C",never:"\u6682\u65E0",calendarUnavailable:"\u65E5\u5386\u4E0D\u53EF\u7528",unread:"\u672A\u8BFB",overview:"\u6982\u89C8",config:"\u914D\u7F6E",runs:"\u8FD0\u884C\u8BB0\u5F55",notifications:"\u901A\u77E5",descriptionField:"\u4EFB\u52A1\u8BF4\u660E",titleField:"\u4EFB\u52A1\u6807\u9898",instructionField:"\u4EFB\u52A1\u6307\u4EE4",instructionPlaceholder:"\u4F8B\u5982\uFF1A\u8BFB\u53D6\u4ECA\u65E5\u81EA\u9009\u80A1\u884C\u60C5\u3001\u516C\u544A\u4E0E\u76F8\u5173\u65B0\u95FB\uFF0C\u6309\u300C\u7ED3\u8BBA\u2014\u8BC1\u636E\u2014\u98CE\u9669\u300D\u6574\u7406\u6210\u4E00\u4EFD\u53EF\u590D\u6838\u7684\u76D8\u540E\u590D\u76D8\u3002",titlePlaceholder:"\u7ED9\u8FD9\u4E2A\u4EFB\u52A1\u8D77\u4E2A\u540D\u5B57",charCount:"{n}/{max}",descriptionPlaceholder:"\u4E00\u53E5\u8BDD\u8BF4\u660E\u4EFB\u52A1\u76EE\u6807\uFF08\u53EF\u9009\uFF09",triggerField:"\u89E6\u53D1\u5668",cadenceField:"\u9891\u7387",triggerHint:"\u6309\u8BBE\u5B9A\u65F6\u533A\u7684\u672C\u5730\u5899\u949F\u65F6\u95F4\u8BA1\u7B97\uFF1B\u4EC5\u4EA4\u6613\u65E5\u4EFB\u52A1\u7531\u4EA4\u6613\u65E5\u5386\u5224\u65AD\u5468\u672B\u4E0E\u8282\u5047\u65E5\u3002",triggerHintNatural:"\u6309\u8BBE\u5B9A\u65F6\u533A\u7684\u672C\u5730\u5899\u949F\u65F6\u95F4\u8BA1\u7B97\uFF1A\u6BCF\u5929\u90FD\u89E6\u53D1\uFF0C\u5468\u672B\u4E0E\u8282\u5047\u65E5\u4E5F\u8FD0\u884C\u3002",triggerHintOnce:"\u5355\u6B21\u4EFB\u52A1\u53EA\u5728\u6307\u5B9A\u65E5\u671F\u8FD0\u884C\u4E00\u6B21\uFF1B\u8BE5\u65E5\u671F\u4E0D\u662F\u4EA4\u6613\u65E5\u65F6\uFF0C\u4EC5\u4EA4\u6613\u65E5\u8BBE\u7F6E\u4F1A\u8DF3\u8FC7\u672C\u6B21\u8FD0\u884C\u3002",timeField:"\u65F6\u95F4",timezoneField:"\u65F6\u533A",weekdayField:"\u661F\u671F",dayField:"\u65E5\u671F",monthlyField:"\u6BCF\u6708\u65E5\u671F",monthlyFirst:"1 \u53F7",monthlyMid:"\u6708\u4E2D",monthlyLast:"\u6708\u672B",monthlyCustom:"\u81EA\u5B9A\u4E49",customDayLabel:"\u7B2C {n} \u65E5",dailyNatural:"\u6BCF\u4E2A\u81EA\u7136\u65E5\u8FD0\u884C",dailyTrading:"\u6BCF\u4E2A\u4EA4\u6613\u65E5\u8FD0\u884C",onceHint:"\u53EA\u5728\u8FD9\u5929\u8FD0\u884C\u4E00\u6B21",onceEnded:"\u5355\u6B21\u4EFB\u52A1\u5DF2\u7ED3\u675F",onceEndedHint:"\u6307\u5B9A\u65E5\u671F\u5DF2\u8FC7\uFF1B\u4FEE\u6539\u65E5\u671F\u6216\u6539\u6210\u91CD\u590D\u8BA1\u5212\u540E\u53EF\u518D\u6B21\u8FD0\u884C\u3002",onceSkipped:"\u5355\u6B21\u4EFB\u52A1\u4E0D\u4F1A\u8FD0\u884C",onceSkippedHint:"\u6307\u5B9A\u65E5\u671F\u4E0D\u662F\u4EA4\u6613\u65E5\uFF1B\u5173\u95ED\u4EC5\u4EA4\u6613\u65E5\u6216\u6539\u9009\u65E5\u671F\u540E\u518D\u542F\u7528\u3002",weekdayWorkdayQuick:"\u5DE5\u4F5C\u65E5",weekdayWeekendQuick:"\u5468\u672B",weekdayNone:"\u672A\u9009\u62E9",weekdayEvery:"\u6BCF\u5929",done:"\u5B8C\u6210",tradingDaysField:"\u4EC5\u4EA4\u6613\u65E5",weekdayRequired:"\u6BCF\u5468\u81F3\u5C11\u9009\u62E9\u4E00\u5929\u3002",dateRequired:"\u8BF7\u9009\u62E9\u8FD0\u884C\u65E5\u671F\u3002",invalidDate:"\u8BF7\u9009\u62E9\u6709\u6548\u7684\u65E5\u671F\u3002",invalidTime:"\u8FD0\u884C\u65F6\u95F4\u683C\u5F0F\u4E0D\u6B63\u786E\uFF0C\u8BF7\u9009\u62E9 HH:mm\u3002",invalidTimezone:"\u65F6\u533A\u4E0D\u80FD\u4E3A\u7A7A\uFF0C\u8BF7\u586B\u5199 IANA \u65F6\u533A\u3002",invalidTimezoneValue:"\u65F6\u533A\u4E0D\u88AB\u8BC6\u522B\uFF0C\u8BF7\u586B\u5199\u6709\u6548\u7684 IANA \u65F6\u533A\u3002",filterNoRuns:"\u6CA1\u6709\u7B26\u5408\u7B5B\u9009\u6761\u4EF6\u7684\u8FD0\u884C\u8BB0\u5F55\u3002",schedulePrefix:"\u4E0B\u6B21",workspaceField:"\u5DE5\u4F5C\u533A",workspaceDefault:"\u8DDF\u968F\u9ED8\u8BA4\u5DE5\u4F5C\u533A",workspaceMissing:"\u5DF2\u79FB\u9664\u7684\u5DE5\u4F5C\u533A\uFF08\u8BF7\u91CD\u65B0\u9009\u62E9\uFF09",workspaceUnavailable:"\u5DE5\u4F5C\u533A\u670D\u52A1\u6682\u65F6\u4E0D\u53EF\u7528\uFF0C\u8FD0\u884C\u4F1A\u9000\u56DE\u9ED8\u8BA4\u76EE\u5F55\u3002",limitsField:"\u8FD0\u884C\u4E0A\u9650",advanced:"\u9AD8\u7EA7\u8BBE\u7F6E",advancedHint:"\u9884\u7B97\u8986\u76D6\u6574\u68F5\u8FD0\u884C\u5B50\u6811\uFF1A\u5B50 Agent \u4E0E PTC \u6D3E\u53D1\u90FD\u8BA1\u5165\u3002",runTimeout:"\u6700\u957F\u8FD0\u884C\uFF08\u5206\u949F\uFF09",idleTimeout:"\u7A7A\u95F2\u8D85\u65F6\uFF08\u5206\u949F\uFF09",maxSteps:"\u6700\u5927\u6B65\u9AA4",maxToolCalls:"\u6700\u5927\u5DE5\u5177\u8C03\u7528",notifyField:"\u901A\u77E5",notifyInApp:"\u5E94\u7528\u5185\u901A\u77E5",notifyFailure:"\u5931\u8D25\u65F6\u901A\u77E5",notifySuccess:"\u6210\u529F\u65F6\u901A\u77E5",notifyHint:"\u901A\u77E5\u53EA\u8BB0\u5F55\u5728\u5F53\u524D profile\uFF1B\u4E0D\u4F1A\u53D1\u9001\u90AE\u4EF6\u6216\u5916\u90E8\u6D88\u606F\u3002",presetLabel:"\u8FD0\u884C\u6A21\u5F0F",presetValue:"\u81EA\u52A8\u6A21\u5F0F",presetHint:"\u6240\u6709\u8FD0\u884C\u56FA\u5B9A\u4F7F\u7528\u81EA\u52A8\u6A21\u5F0F\u3002",budgetHint:"\u5DE5\u5177\u8C03\u7528\u4E0E\u6B65\u9AA4\u9884\u7B97\u8986\u76D6\u6574\u68F5\u8FD0\u884C\u5B50\u6811\uFF1A\u5B50 Agent \u4E0E PTC \u6D3E\u53D1\u90FD\u8BA1\u5165\u3002",environment:"\u6267\u884C\u73AF\u5883",policyField:"\u65E0\u4EBA\u503C\u5B88\u7B56\u7565",cwdKind:"\u5DE5\u4F5C\u533A\u6765\u6E90",techInfo:"\u6280\u672F\u4FE1\u606F",profileKey:"profileKey",runHistory:"\u8FD0\u884C\u5386\u53F2",last30Days:"\u6700\u8FD1 30 \u5929",runCount:"{n} \u6B21\u8FD0\u884C",successCount:"{n} \u6210\u529F",failureCount:"{n} \u5931\u8D25",historyEmpty:"\u6700\u8FD1 30 \u5929\u8FD8\u6CA1\u6709\u8FD0\u884C\u8BB0\u5F55\u3002",historyViewAll:"\u67E5\u770B\u5168\u90E8\u8FD0\u884C",runFilterAll:"\u5168\u90E8",runFilterActive:"\u8FDB\u884C\u4E2D",runFilterSucceeded:"\u6210\u529F",runFilterFailed:"\u5931\u8D25",runFilterLabel:"\u7B5B\u9009\u8FD0\u884C\u8BB0\u5F55",runsTitle:"\u8FD0\u884C",runsHint:"\u6BCF\u6B21\u8FD0\u884C\u90FD\u4F7F\u7528\u65B0\u7684 session\uFF1B\u7EC8\u6001\u540E\u624D\u80FD\u6253\u5F00 session\u3002",runsEmptyTitle:"\u5C1A\u672A\u8FD0\u884C",runsEmptyBody:"\u4EFB\u52A1\u8FD0\u884C\u540E\uFF0C\u8FD9\u91CC\u4F1A\u663E\u793A\u72B6\u6001\u3001\u8017\u65F6\u4E0E\u9519\u8BEF\u6761\u6570\uFF1B\u7ED3\u679C\u4E0E\u8FC7\u7A0B\u5728 session \u91CC\u3002",runsEmptyAction:"\u53BB\u6DFB\u52A0\u6A21\u677F",runsLimitHint:"\u4EC5\u663E\u793A\u6700\u8FD1 {n} \u6761\u8FD0\u884C\u8BB0\u5F55\u3002",cancelRunConfirmTitle:"\u53D6\u6D88\u8FD9\u6B21\u8FD0\u884C\uFF1F",cancelRunConfirmBody:"\u53D6\u6D88\u4F1A\u5411\u5F53\u524D\u8FD0\u884C\u53D1\u9001\u505C\u6B62\u4FE1\u53F7\uFF1B\u5DF2\u7ECF\u4EA7\u751F\u7684\u4E2D\u95F4\u7ED3\u679C\u4F1A\u7559\u5728 session \u91CC\u3002",cancelRunConfirm:"\u786E\u8BA4\u53D6\u6D88",duration:"\u8017\u65F6",steps:"\u6B65\u9AA4",tools:"\u5DE5\u5177\u8C03\u7528",errorTitle:"\u9519\u8BEF",errorDetailsLabel:"\u9519\u8BEF\u8BE6\u60C5",showErrorDetails:"\u67E5\u770B\u9519\u8BEF\u8BE6\u60C5",hideErrorDetails:"\u6536\u8D77\u9519\u8BEF\u8BE6\u60C5",triggerManual:"\u624B\u52A8",triggerScheduled:"\u5B9A\u65F6",openSession:"\u6253\u5F00 session",runSummaryFallback:"\u8FD0\u884C\u7ED3\u675F\u4F46\u6CA1\u6709\u6458\u8981\u3002",notificationsEmpty:"\u6CA1\u6709\u901A\u77E5\u3002",markRead:"\u5168\u90E8\u6807\u4E3A\u5DF2\u8BFB",markTaskRead:"\u672C\u4EFB\u52A1\u6807\u4E3A\u5DF2\u8BFB",notificationsTitle:"\u901A\u77E5",notificationsHint:"\u8FD0\u884C\u5931\u8D25\u3001\u8D85\u65F6\u3001\u8C03\u5EA6\u5668\u5F85\u547D\u4E0E\u4EA4\u6613\u65E5\u5386\u95EE\u9898\u4F1A\u51FA\u73B0\u5728\u8FD9\u91CC\u3002",notificationsUnread:"{n} \u6761\u672A\u8BFB",allRead:"\u5168\u90E8\u5DF2\u8BFB",noNotifications:"\u6CA1\u6709\u672A\u8BFB\u6216\u5386\u53F2\u901A\u77E5\u3002",notificationOpenTask:"\u67E5\u770B\u4EFB\u52A1",close:"\u5173\u95ED",confirmDeleteTitle:"\u5220\u9664\u8FD9\u4E2A\u4EFB\u52A1\uFF1F",confirmDeleteBody:"\u4EFB\u52A1\u914D\u7F6E\u3001\u8FD0\u884C\u8BB0\u5F55\u4E0E\u76F8\u5173\u901A\u77E5\u4F1A\u4E00\u8D77\u5220\u9664\uFF0C\u65E0\u6CD5\u6062\u590D\u3002",confirmHibernateTitle:"\u4F11\u7720\u5E76\u6062\u590D\u9ED8\u8BA4\uFF1F",confirmHibernateBody:"\u5F53\u524D\u5BF9\u5185\u7F6E\u6A21\u677F\u7684\u4FEE\u6539\u4F1A\u88AB\u6E05\u7A7A\uFF0C\u4EFB\u52A1\u56DE\u5230\u6A21\u677F\u533A\uFF1B\u5386\u53F2\u8FD0\u884C\u8BB0\u5F55\u4FDD\u7559\u3002",confirmDelete:"\u786E\u8BA4\u5220\u9664",confirmHibernate:"\u786E\u8BA4\u4F11\u7720",actionDone:"\u64CD\u4F5C\u5B8C\u6210",created:"\u4EFB\u52A1\u5DF2\u521B\u5EFA",activated:"\u5DF2\u542F\u7528\u300C{title}\u300D",added:"\u5DF2\u6DFB\u52A0\u300C{title}\u300D",paused:"\u5DF2\u6682\u505C\u300C{title}\u300D",copied:"\u5DF2\u590D\u5236\u4E3A\u300C{title}\u300D",deleted:"\u5DF2\u5220\u9664\u300C{title}\u300D",hibernated:"\u5DF2\u4F11\u7720\u300C{title}\u300D",runSubmitted:"\u5DF2\u63D0\u4EA4\u300C{title}\u300D\u8FD0\u884C",runCanceled:"\u5DF2\u53D6\u6D88\u8FD0\u884C",markReadDone:"\u5DF2\u6807\u4E3A\u5DF2\u8BFB",errorGeneric:"\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002",needConfirm:"\u9700\u8981\u7528\u6237\u786E\u8BA4",schedulerBlocked:"\u8C03\u5EA6\u5668\u672A\u53D6\u5F97\u8FD0\u884C\u6743\uFF0C\u6682\u65F6\u4E0D\u80FD\u624B\u52A8\u8FD0\u884C\u3002",runBlocked:"\u4EFB\u52A1\u6B63\u5728\u8FD0\u884C\uFF0C\u7ED3\u675F\u6216\u53D6\u6D88\u540E\u624D\u80FD\u518D\u6B21\u8FD0\u884C\u3002",configWhileRunning:"\u4EFB\u52A1\u6B63\u5728\u8FD0\u884C\uFF1B\u4FEE\u6539\u4F1A\u5728\u4E0B\u4E00\u6B21\u8FD0\u884C\u65F6\u751F\u6548\u3002",detailRecentRuns:"\u6700\u8FD1 {n} \u6B21\u8FD0\u884C",detailNoRuns:"\u8FD8\u6CA1\u6709\u8FD0\u884C\u8BB0\u5F55\u3002",detailAllRuns:"\u5B8C\u6574\u8BB0\u5F55",detailTaskNotifications:"\u4EFB\u52A1\u901A\u77E5",taskRunsLimit:"\u8FD9\u91CC\u663E\u793A\u5F53\u524D\u4EFB\u52A1\u6700\u8FD1 20 \u6B21\u8FD0\u884C\uFF1B\u5168\u90E8\u8FD0\u884C\u89C1\u300C\u8FD0\u884C\u300D\u9875\u3002",runErrors:"{n} \u6761\u9519\u8BEF",runNoErrors:"\u65E0\u9519\u8BEF",notificationFallbackFailed:"\u8FD0\u884C\u5931\u8D25\uFF1B\u6253\u5F00\u5BF9\u5E94\u4EFB\u52A1\u6216 session \u67E5\u770B\u8BE6\u60C5\u3002",notificationFallbackTimeout:"\u8FD0\u884C\u8D85\u65F6\uFF1B\u6253\u5F00\u5BF9\u5E94\u4EFB\u52A1\u6216 session \u67E5\u770B\u8BE6\u60C5\u3002",notificationFallbackSuccess:"\u8FD0\u884C\u5B8C\u6210\u3002",notificationFallbackStandby:"\u8C03\u5EA6\u5668\u672A\u53D6\u5F97\u8FD0\u884C\u6743\uFF0C\u5B9A\u65F6\u89E6\u53D1\u6682\u505C\u3002",notificationFallbackCalendar:"\u4EA4\u6613\u65E5\u5386\u4E0D\u53EF\u7528\uFF0C\u4EA4\u6613\u65E5\u4EFB\u52A1\u5DF2\u8DF3\u8FC7\u3002",notificationFallbackSkipped:"\u672C\u6B21\u8BA1\u5212\u5DF2\u8DF3\u8FC7\u3002",statusLabel:"\u72B6\u6001",triggerSummary:"\u65E5\u7A0B",lastRun:"\u4E0A\u6B21\u8FD0\u884C",neverRun:"\u5C1A\u672A\u8FD0\u884C",relativeNow:"\u521A\u521A",nextRunUnavailable:"\u4EA4\u6613\u65E5\u5386\u4E0D\u53EF\u7528\uFF0C\u65E0\u6CD5\u8BA1\u7B97\u4E0B\u4E00\u6B21\u8FD0\u884C\u3002",copyHint:"\u590D\u5236\u540E\u4F1A\u751F\u6210\u4E00\u4E2A\u6682\u505C\u72B6\u6001\u7684\u81EA\u5B9A\u4E49\u4EFB\u52A1\u3002",notificationTaskGone:"\u4EFB\u52A1\u5DF2\u4E0D\u5B58\u5728",noSelection:"\u4ECE\u5217\u8868\u4E2D\u9009\u62E9\u4E00\u4E2A\u4EFB\u52A1\u3002",details:"\u8BE6\u60C5",actions:"\u64CD\u4F5C",rosterCount:"{n} \u4E2A\u4EFB\u52A1",dayOfMonth:"{n} \u65E5",everyPrefix:"\u6BCF",weeklyPrefix:"\u6BCF\u5468",monthlyPrefix:"\u6BCF\u6708",monthlyLastDay:"\u6700\u540E\u4E00\u5929",dailyPrefix:"\u6BCF\u5929",oncePrefix:"\u5355\u6B21",tradingSuffix:"\uFF08\u4EC5\u4EA4\u6613\u65E5\uFF09",sessionMissing:"\u6CA1\u6709\u53EF\u6253\u5F00\u7684 session"};function re(){if(typeof document>"u"||document.querySelector(`style[data-${tt}]`))return()=>{};let i=document.createElement("style");return i.setAttribute(`data-${tt}`,"true"),i.textContent=`
8
+ "use strict";var{createElement:a,useEffect:j,useRef:q,useState:z}=require("react"),{IconAlarmClockOutlineRegular:Ea,IconChecklistOutlineRegular:$a,IconChevronDownOutlineRegular:Ma,IconChevronLeftOutlineRegular:Ut,IconChevronRightOutlineRegular:La,IconClockOutlineRegular:Ba,IconCopyOutlineRegular:qt,IconEditOutlineRegular:jt,IconEllipsisOutlineRegular:Gt,IconFolderOpenOutlineRegular:Vt,IconGaugeOutlineRegular:Wt,IconGlobeOutlineRegular:Kt,IconInfoOutlineRegular:Yt,IconLightOutlineMedium:Zt,IconListPenOutlineRegular:Qt,IconPauseOutlineRegular:Jt,IconPlayOutlineRegular:_a,IconPlusOutlineRegular:Ha,IconRefreshOutlineRegular:Xt,IconRightUpOutlineRegular:ae,IconSearchOutlineRegular:ot,IconSparkleRegular:lt,IconTrashOutlineRegular:te,IconWarningOutlineRegular:rt,Menu:wa,MenuItemButton:Xa,Modal:Pa,Switch:st}=require("@deepseek-ai/dsh-client-ui-primitives"),Fa="capital-automation",ee="/capital-automation",at="capital-automation",tt="capital-automation-css",ie=["queued","starting","running"],ne=["failed","timed_out","blocked_requires_user","unknown_after_restart"],oe=["skipped_overlap","skipped_calendar_unavailable","missed"],le={runTimeoutMinutes:30,idleTimeoutMinutes:5,maxSteps:300,maxToolCalls:1200},la=[{value:1,label:"\u4E00"},{value:2,label:"\u4E8C"},{value:3,label:"\u4E09"},{value:4,label:"\u56DB"},{value:5,label:"\u4E94"},{value:6,label:"\u516D"},{value:7,label:"\u65E5"}],Ra=["Asia/Shanghai","Asia/Hong_Kong","Asia/Taipei","Asia/Singapore","Asia/Tokyo","Asia/Seoul","UTC","Europe/London","Europe/Paris","Europe/Berlin","America/New_York","America/Chicago","America/Los_Angeles","America/Toronto","America/Sao_Paulo","Australia/Sydney"],xa=30,et=3,Aa=12,va=100,e={panel:"CapGen \u6295\u7814\u81EA\u52A8\u5316",title:"CapGen \u6295\u7814\u81EA\u52A8\u5316",subtitle:"\u5B9A\u65F6\u6295\u7814\uFF0C\u81EA\u52A8\u6267\u884C\uFF0C\u7ED3\u679C\u53EF\u8FFD\u6EAF",tabs:{tasks:"\u4EFB\u52A1",runs:"\u8FD0\u884C"},storageUnavailable:"\u5B58\u50A8\u4E0D\u53EF\u7528\uFF0C\u9875\u9762\u53EA\u8BFB",standbyBanner:"\u8C03\u5EA6\u5668\u672A\u53D6\u5F97\u8FD0\u884C\u6743\uFF1A\u5B9A\u65F6\u89E6\u53D1\u4E0E\u624B\u52A8\u8FD0\u884C\u5DF2\u6682\u505C\uFF0C\u4EFB\u52A1\u914D\u7F6E\u4ECD\u53EF\u67E5\u770B\u548C\u7F16\u8F91\u3002",storageBanner:"\u6295\u7814\u81EA\u52A8\u5316\u5B58\u50A8\u6682\u65F6\u4E0D\u53EF\u7528\uFF1A\u9875\u9762\u53EA\u8BFB\uFF0C\u8C03\u5EA6\u5668\u4E0D\u4F1A\u542F\u52A8\u3002",calendarBanner:"\u4EA4\u6613\u65E5\u5386\u6682\u65F6\u4E0D\u53EF\u7528\uFF1A\u4EC5\u4EA4\u6613\u65E5\u7684\u4EFB\u52A1\u4F1A\u8DF3\u8FC7\uFF0C\u5176\u4ED6\u4EFB\u52A1\u4ECD\u6309\u8BBE\u5B9A\u65F6\u95F4\u8FD0\u884C\u3002",calendarCoverageBanner:"\u4EA4\u6613\u65E5\u5386\u53EA\u8986\u76D6\u5230 {through}\uFF1A\u4E4B\u540E\u4EC5\u4EA4\u6613\u65E5\u7684\u4EFB\u52A1\u4F1A\u6309 fail-closed \u8DF3\u8FC7\uFF1B\u4EA4\u6613\u6240\u516C\u5E03\u65B0\u4E00\u5E74\u5B89\u6392\u540E\u4F1A\u81EA\u52A8\u63A5\u4E0A\u3002",calendarField:"\u4EA4\u6613\u65E5\u5386",calendarSourceSzse:"\u6DF1\u4EA4\u6240\u5B98\u65B9\u65E5\u5386",calendarSourceBundled:"\u5185\u7F6E\u8868",calendarSourceNone:"\u4E0D\u53EF\u7528",calendarThrough:"\u8986\u76D6\u81F3 {date}",calendarUnknown:"\u672A\u77E5",loadRetry:"\u91CD\u65B0\u8BFB\u53D6",loading:"\u8BFB\u53D6\u4E2D\u2026",empty:"\u8FD8\u6CA1\u6709\u4EFB\u52A1\u3002",emptyTasksTitle:"\u8FD8\u6CA1\u6709\u6DFB\u52A0\u7684\u4EFB\u52A1",emptyTasksBody:"\u4ECE\u4E0B\u65B9\u6DFB\u52A0\u4E00\u4E2A\u5185\u7F6E\u6A21\u677F\uFF0C\u6216\u65B0\u5EFA\u4E00\u4E2A\u81EA\u5DF1\u7684\u6295\u7814\u4EFB\u52A1\u3002",emptyNoTemplates:"\u8FD8\u6CA1\u6709\u4EFB\u52A1",emptyNoTemplatesBody:"\u70B9\u51FB\u53F3\u4E0A\u89D2\u300C\u65B0\u5EFA\u4EFB\u52A1\u300D\uFF0C\u521B\u5EFA\u7B2C\u4E00\u4E2A\u5B9A\u65F6\u6295\u7814\u4EFB\u52A1\u3002",emptyFiltered:"\u6CA1\u6709\u5339\u914D\u7684\u4EFB\u52A1\u3002",clearFilter:"\u6E05\u9664\u7B5B\u9009",newTask:"\u65B0\u5EFA\u4EFB\u52A1",newTaskTitle:"\u65B0\u5EFA\u6295\u7814\u4EFB\u52A1",newTaskHint:"\u4EFB\u52A1\u4F1A\u5728\u540E\u53F0\u65B0\u5EFA\u4E00\u4E2A session \u6267\u884C\uFF0C\u4E0D\u9700\u8981\u4F60\u5B88\u5728\u9875\u9762\u4E0A\u3002",editTask:"\u7F16\u8F91\u4EFB\u52A1",allTasks:"\u5168\u90E8\u4EFB\u52A1",backToTasks:"\u6240\u6709\u4EFB\u52A1",taskSection:"\u4EFB\u52A1",taskSectionHint:"\u70B9\u51FB\u4EFB\u52A1\u884C\u67E5\u770B\u8BE6\u60C5\u3001\u8FD0\u884C\u8BB0\u5F55\u548C\u914D\u7F6E\u3002",templateSection:"\u6A21\u677F",templateAdd:"\u6DFB\u52A0",templateAdding:"\u6DFB\u52A0\u4E2D\u2026",templateMeta:"\u5185\u7F6E\u6A21\u677F",runningSection:"\u6B63\u5728\u8FD0\u884C",runningSince:"\u5F00\u59CB\u4E8E",cancelRun:"\u53D6\u6D88\u8FD0\u884C",searchPlaceholder:"\u641C\u7D22\u4EFB\u52A1",filterAll:"\u5168\u90E8",filterCustom:"\u6211\u7684\u4EFB\u52A1",filterNews:"\u8D44\u8BAF",filterMarket:"\u884C\u60C5",filterReview:"\u590D\u76D8",filterResearch:"\u7814\u7A76",filterLabel:"\u7B5B\u9009\u4EFB\u52A1",category:{news:"\u8D44\u8BAF",market:"\u884C\u60C5",review:"\u590D\u76D8",research:"\u7814\u7A76"},categoryField:"\u4EFB\u52A1\u5206\u7C7B",categoryFixed:"'\u590D\u5236\u4E3A\u6211\u7684\u4EFB\u52A1'\u540E\uFF0C\u53EF\u8C03\u6574\u4EFB\u52A1\u5206\u7C7B\u3002",cadence:{daily:"\u6BCF\u5929",weekly:"\u6BCF\u5468",monthly:"\u6BCF\u6708",once:"\u5355\u6B21"},stateLabel:"\u72B6\u6001",state:{dormant:"\u672A\u6DFB\u52A0",active:"\u5DF2\u542F\u7528",paused:"\u5DF2\u6682\u505C"},origin:{builtin:"\u5185\u7F6E\u6A21\u677F",custom:"\u6211\u7684\u4EFB\u52A1"},status:{queued:"\u6392\u961F\u4E2D",starting:"\u542F\u52A8\u4E2D",running:"\u8FD0\u884C\u4E2D",succeeded:"\u6210\u529F",failed:"\u5931\u8D25",canceled:"\u5DF2\u53D6\u6D88",timed_out:"\u8D85\u65F6",blocked_requires_user:"\u9700\u8981\u7528\u6237\u786E\u8BA4",unknown_after_restart:"\u91CD\u542F\u540E\u672A\u77E5",skipped_overlap:"\u91CD\u53E0\u8DF3\u8FC7",skipped_calendar_unavailable:"\u65E5\u5386\u4E0D\u53EF\u7528\u8DF3\u8FC7",missed:"\u9519\u8FC7"},runNow:"\u7ACB\u5373\u8FD0\u884C",runStarted:"\u5DF2\u63D0\u4EA4\u8FD0\u884C",pause:"\u6682\u505C",activate:"\u542F\u7528",add:"\u6DFB\u52A0",hibernate:"\u4F11\u7720\u5E76\u6062\u590D\u9ED8\u8BA4",copy:"\u590D\u5236\u4E3A\u6211\u7684\u4EFB\u52A1",remove:"\u5220\u9664\u4EFB\u52A1",edit:"\u7F16\u8F91",more:"\u66F4\u591A\u64CD\u4F5C",save:"\u4FDD\u5B58",saving:"\u4FDD\u5B58\u4E2D\u2026",processing:"\u5904\u7406\u4E2D\u2026",saved:"\u5DF2\u4FDD\u5B58",cancel:"\u53D6\u6D88",create:"\u521B\u5EFA\u4EFB\u52A1",creating:"\u521B\u5EFA\u4E2D\u2026",titleRequired:"\u6807\u9898\u4E0D\u80FD\u4E3A\u7A7A\u3002",instructionRequired:"\u4EFB\u52A1\u6307\u4EE4\u4E0D\u80FD\u4E3A\u7A7A\u3002",invalidLimit:"\u8BF7\u8F93\u5165\u6709\u6548\u6570\u5B57\u3002",dirty:"\u6709\u672A\u4FDD\u5B58\u7684\u4FEE\u6539",noDirty:"\u914D\u7F6E\u5DF2\u540C\u6B65",nextRun:"\u4E0B\u6B21\u8FD0\u884C",nextRunDormant:"\u6DFB\u52A0\u540E\u5F00\u59CB\u8C03\u5EA6",nextRunPaused:"\u542F\u7528\u540E\u6062\u590D\u8C03\u5EA6",notScheduled:"\u5F53\u524D\u4E0D\u4F1A\u81EA\u52A8\u8FD0\u884C",lastResult:"\u4E0A\u6B21\u7ED3\u679C",lastRunEmpty:"\u8FD0\u884C\u540E\u53EF\u5728\u8FD9\u91CC\u67E5\u770B\u7ED3\u679C",never:"\u6682\u65E0",calendarUnavailable:"\u65E5\u5386\u4E0D\u53EF\u7528",unread:"\u672A\u8BFB",overview:"\u6982\u89C8",config:"\u914D\u7F6E",runs:"\u8FD0\u884C\u8BB0\u5F55",notifications:"\u901A\u77E5",descriptionField:"\u4EFB\u52A1\u8BF4\u660E",titleField:"\u4EFB\u52A1\u6807\u9898",instructionField:"\u4EFB\u52A1\u6307\u4EE4",instructionPlaceholder:"\u4F8B\u5982\uFF1A\u8BFB\u53D6\u4ECA\u65E5\u81EA\u9009\u80A1\u884C\u60C5\u3001\u516C\u544A\u4E0E\u76F8\u5173\u65B0\u95FB\uFF0C\u6309\u300C\u7ED3\u8BBA\u2014\u8BC1\u636E\u2014\u98CE\u9669\u300D\u6574\u7406\u6210\u4E00\u4EFD\u53EF\u590D\u6838\u7684\u76D8\u540E\u590D\u76D8\u3002",titlePlaceholder:"\u7ED9\u8FD9\u4E2A\u4EFB\u52A1\u8D77\u4E2A\u540D\u5B57",charCount:"{n}/{max}",descriptionPlaceholder:"\u4E00\u53E5\u8BDD\u8BF4\u660E\u4EFB\u52A1\u76EE\u6807\uFF08\u53EF\u9009\uFF09",triggerField:"\u89E6\u53D1\u5668",cadenceField:"\u9891\u7387",triggerHint:"\u6309\u8BBE\u5B9A\u65F6\u533A\u7684\u672C\u5730\u5899\u949F\u65F6\u95F4\u8BA1\u7B97\uFF1B\u4EC5\u4EA4\u6613\u65E5\u4EFB\u52A1\u7531\u4EA4\u6613\u65E5\u5386\u5224\u65AD\u5468\u672B\u4E0E\u8282\u5047\u65E5\u3002",triggerHintNatural:"\u6309\u8BBE\u5B9A\u65F6\u533A\u7684\u672C\u5730\u5899\u949F\u65F6\u95F4\u8BA1\u7B97\uFF1A\u6BCF\u5929\u90FD\u89E6\u53D1\uFF0C\u5468\u672B\u4E0E\u8282\u5047\u65E5\u4E5F\u8FD0\u884C\u3002",triggerHintOnce:"\u5355\u6B21\u4EFB\u52A1\u53EA\u5728\u6307\u5B9A\u65E5\u671F\u8FD0\u884C\u4E00\u6B21\uFF1B\u8BE5\u65E5\u671F\u4E0D\u662F\u4EA4\u6613\u65E5\u65F6\uFF0C\u4EC5\u4EA4\u6613\u65E5\u8BBE\u7F6E\u4F1A\u8DF3\u8FC7\u672C\u6B21\u8FD0\u884C\u3002",timeField:"\u65F6\u95F4",timezoneField:"\u65F6\u533A",weekdayField:"\u661F\u671F",dayField:"\u65E5\u671F",monthlyField:"\u6BCF\u6708\u65E5\u671F",monthlyFirst:"1 \u53F7",monthlyMid:"\u6708\u4E2D",monthlyLast:"\u6708\u672B",monthlyCustom:"\u81EA\u5B9A\u4E49",customDayLabel:"\u7B2C {n} \u65E5",dailyNatural:"\u6BCF\u4E2A\u81EA\u7136\u65E5\u8FD0\u884C",dailyTrading:"\u6BCF\u4E2A\u4EA4\u6613\u65E5\u8FD0\u884C",onceHint:"\u53EA\u5728\u8FD9\u5929\u8FD0\u884C\u4E00\u6B21",onceEnded:"\u5355\u6B21\u4EFB\u52A1\u5DF2\u7ED3\u675F",onceEndedHint:"\u6307\u5B9A\u65E5\u671F\u5DF2\u8FC7\uFF1B\u4FEE\u6539\u65E5\u671F\u6216\u6539\u6210\u91CD\u590D\u8BA1\u5212\u540E\u53EF\u518D\u6B21\u8FD0\u884C\u3002",onceSkipped:"\u5355\u6B21\u4EFB\u52A1\u4E0D\u4F1A\u8FD0\u884C",onceSkippedHint:"\u6307\u5B9A\u65E5\u671F\u4E0D\u662F\u4EA4\u6613\u65E5\uFF1B\u5173\u95ED\u4EC5\u4EA4\u6613\u65E5\u6216\u6539\u9009\u65E5\u671F\u540E\u518D\u542F\u7528\u3002",weekdayWorkdayQuick:"\u5DE5\u4F5C\u65E5",weekdayWeekendQuick:"\u5468\u672B",weekdayNone:"\u672A\u9009\u62E9",weekdayEvery:"\u6BCF\u5929",tradingDaysField:"\u4EC5\u4EA4\u6613\u65E5",weekdayRequired:"\u6BCF\u5468\u81F3\u5C11\u9009\u62E9\u4E00\u5929\u3002",dateRequired:"\u8BF7\u9009\u62E9\u8FD0\u884C\u65E5\u671F\u3002",invalidDate:"\u8BF7\u9009\u62E9\u6709\u6548\u7684\u65E5\u671F\u3002",invalidTime:"\u8FD0\u884C\u65F6\u95F4\u683C\u5F0F\u4E0D\u6B63\u786E\uFF0C\u8BF7\u9009\u62E9 HH:mm\u3002",invalidTimezone:"\u65F6\u533A\u4E0D\u80FD\u4E3A\u7A7A\uFF0C\u8BF7\u586B\u5199 IANA \u65F6\u533A\u3002",invalidTimezoneValue:"\u65F6\u533A\u4E0D\u88AB\u8BC6\u522B\uFF0C\u8BF7\u586B\u5199\u6709\u6548\u7684 IANA \u65F6\u533A\u3002",filterNoRuns:"\u6CA1\u6709\u7B26\u5408\u7B5B\u9009\u6761\u4EF6\u7684\u8FD0\u884C\u8BB0\u5F55\u3002",schedulePrefix:"\u4E0B\u6B21",workspaceField:"\u5DE5\u4F5C\u533A",workspaceDefault:"\u8DDF\u968F\u9ED8\u8BA4\u5DE5\u4F5C\u533A",workspaceMissing:"\u5DF2\u79FB\u9664\u7684\u5DE5\u4F5C\u533A\uFF08\u8BF7\u91CD\u65B0\u9009\u62E9\uFF09",workspaceUnavailable:"\u5DE5\u4F5C\u533A\u670D\u52A1\u6682\u65F6\u4E0D\u53EF\u7528\uFF0C\u8FD0\u884C\u4F1A\u9000\u56DE\u9ED8\u8BA4\u76EE\u5F55\u3002",limitsField:"\u8FD0\u884C\u4E0A\u9650",advanced:"\u9AD8\u7EA7\u8BBE\u7F6E",advancedHint:"\u9884\u7B97\u8986\u76D6\u6574\u68F5\u8FD0\u884C\u5B50\u6811\uFF1A\u5B50 Agent \u4E0E PTC \u6D3E\u53D1\u90FD\u8BA1\u5165\u3002",runTimeout:"\u6700\u957F\u8FD0\u884C\uFF08\u5206\u949F\uFF09",idleTimeout:"\u7A7A\u95F2\u8D85\u65F6\uFF08\u5206\u949F\uFF09",maxSteps:"\u6700\u5927\u6B65\u9AA4",maxToolCalls:"\u6700\u5927\u5DE5\u5177\u8C03\u7528",notifyField:"\u901A\u77E5",notifyInApp:"\u5E94\u7528\u5185\u901A\u77E5",notifyFailure:"\u5931\u8D25\u65F6\u901A\u77E5",notifySuccess:"\u6210\u529F\u65F6\u901A\u77E5",notifyHint:"\u901A\u77E5\u53EA\u8BB0\u5F55\u5728\u5F53\u524D profile\uFF1B\u4E0D\u4F1A\u53D1\u9001\u90AE\u4EF6\u6216\u5916\u90E8\u6D88\u606F\u3002",presetLabel:"\u8FD0\u884C\u6A21\u5F0F",presetValue:"\u81EA\u52A8\u6A21\u5F0F",presetHint:"\u6240\u6709\u8FD0\u884C\u56FA\u5B9A\u4F7F\u7528\u81EA\u52A8\u6A21\u5F0F\u3002",budgetHint:"\u5DE5\u5177\u8C03\u7528\u4E0E\u6B65\u9AA4\u9884\u7B97\u8986\u76D6\u6574\u68F5\u8FD0\u884C\u5B50\u6811\uFF1A\u5B50 Agent \u4E0E PTC \u6D3E\u53D1\u90FD\u8BA1\u5165\u3002",environment:"\u6267\u884C\u73AF\u5883",policyField:"\u65E0\u4EBA\u503C\u5B88\u7B56\u7565",cwdKind:"\u5DE5\u4F5C\u533A\u6765\u6E90",techInfo:"\u6280\u672F\u4FE1\u606F",profileKey:"profileKey",runHistory:"\u8FD0\u884C\u5386\u53F2",last30Days:"\u6700\u8FD1 30 \u5929",runCount:"{n} \u6B21\u8FD0\u884C",successCount:"{n} \u6210\u529F",failureCount:"{n} \u5931\u8D25",historyEmpty:"\u6700\u8FD1 30 \u5929\u8FD8\u6CA1\u6709\u8FD0\u884C\u8BB0\u5F55\u3002",historyViewAll:"\u67E5\u770B\u5168\u90E8\u8FD0\u884C",runFilterAll:"\u5168\u90E8",runFilterActive:"\u8FDB\u884C\u4E2D",runFilterSucceeded:"\u6210\u529F",runFilterFailed:"\u5931\u8D25",runFilterLabel:"\u7B5B\u9009\u8FD0\u884C\u8BB0\u5F55",runsTitle:"\u8FD0\u884C",runsHint:"\u6BCF\u6B21\u8FD0\u884C\u90FD\u4F7F\u7528\u65B0\u7684 session\uFF1B\u7EC8\u6001\u540E\u624D\u80FD\u6253\u5F00 session\u3002",runsEmptyTitle:"\u5C1A\u672A\u8FD0\u884C",runsEmptyBody:"\u4EFB\u52A1\u8FD0\u884C\u540E\uFF0C\u8FD9\u91CC\u4F1A\u663E\u793A\u72B6\u6001\u3001\u8017\u65F6\u4E0E\u9519\u8BEF\u6761\u6570\uFF1B\u7ED3\u679C\u4E0E\u8FC7\u7A0B\u5728 session \u91CC\u3002",runsEmptyAction:"\u53BB\u6DFB\u52A0\u6A21\u677F",runsLimitHint:"\u4EC5\u663E\u793A\u6700\u8FD1 {n} \u6761\u8FD0\u884C\u8BB0\u5F55\u3002",cancelRunConfirmTitle:"\u53D6\u6D88\u8FD9\u6B21\u8FD0\u884C\uFF1F",cancelRunConfirmBody:"\u53D6\u6D88\u4F1A\u5411\u5F53\u524D\u8FD0\u884C\u53D1\u9001\u505C\u6B62\u4FE1\u53F7\uFF1B\u5DF2\u7ECF\u4EA7\u751F\u7684\u4E2D\u95F4\u7ED3\u679C\u4F1A\u7559\u5728 session \u91CC\u3002",cancelRunConfirm:"\u786E\u8BA4\u53D6\u6D88",duration:"\u8017\u65F6",steps:"\u6B65\u9AA4",tools:"\u5DE5\u5177\u8C03\u7528",errorTitle:"\u9519\u8BEF",errorDetailsLabel:"\u9519\u8BEF\u8BE6\u60C5",showErrorDetails:"\u67E5\u770B\u9519\u8BEF\u8BE6\u60C5",hideErrorDetails:"\u6536\u8D77\u9519\u8BEF\u8BE6\u60C5",triggerManual:"\u624B\u52A8",triggerScheduled:"\u5B9A\u65F6",openSession:"\u6253\u5F00 session",runSummaryFallback:"\u8FD0\u884C\u7ED3\u675F\u4F46\u6CA1\u6709\u6458\u8981\u3002",notificationsEmpty:"\u6CA1\u6709\u901A\u77E5\u3002",markRead:"\u5168\u90E8\u6807\u4E3A\u5DF2\u8BFB",markTaskRead:"\u672C\u4EFB\u52A1\u6807\u4E3A\u5DF2\u8BFB",notificationsTitle:"\u901A\u77E5",notificationsHint:"\u8FD0\u884C\u5931\u8D25\u3001\u8D85\u65F6\u3001\u8C03\u5EA6\u5668\u5F85\u547D\u4E0E\u4EA4\u6613\u65E5\u5386\u95EE\u9898\u4F1A\u51FA\u73B0\u5728\u8FD9\u91CC\u3002",notificationsUnread:"{n} \u6761\u672A\u8BFB",allRead:"\u5168\u90E8\u5DF2\u8BFB",noNotifications:"\u6CA1\u6709\u672A\u8BFB\u6216\u5386\u53F2\u901A\u77E5\u3002",notificationOpenTask:"\u67E5\u770B\u4EFB\u52A1",close:"\u5173\u95ED",confirmDeleteTitle:"\u5220\u9664\u8FD9\u4E2A\u4EFB\u52A1\uFF1F",confirmDeleteBody:"\u4EFB\u52A1\u914D\u7F6E\u3001\u8FD0\u884C\u8BB0\u5F55\u4E0E\u76F8\u5173\u901A\u77E5\u4F1A\u4E00\u8D77\u5220\u9664\uFF0C\u65E0\u6CD5\u6062\u590D\u3002",confirmHibernateTitle:"\u4F11\u7720\u5E76\u6062\u590D\u9ED8\u8BA4\uFF1F",confirmHibernateBody:"\u5F53\u524D\u5BF9\u5185\u7F6E\u6A21\u677F\u7684\u4FEE\u6539\u4F1A\u88AB\u6E05\u7A7A\uFF0C\u4EFB\u52A1\u56DE\u5230\u6A21\u677F\u533A\uFF1B\u5386\u53F2\u8FD0\u884C\u8BB0\u5F55\u4FDD\u7559\u3002",confirmDelete:"\u786E\u8BA4\u5220\u9664",confirmHibernate:"\u786E\u8BA4\u4F11\u7720",actionDone:"\u64CD\u4F5C\u5B8C\u6210",created:"\u4EFB\u52A1\u5DF2\u521B\u5EFA",activated:"\u5DF2\u542F\u7528\u300C{title}\u300D",added:"\u5DF2\u6DFB\u52A0\u300C{title}\u300D",paused:"\u5DF2\u6682\u505C\u300C{title}\u300D",copied:"\u5DF2\u590D\u5236\u4E3A\u300C{title}\u300D",deleted:"\u5DF2\u5220\u9664\u300C{title}\u300D",hibernated:"\u5DF2\u4F11\u7720\u300C{title}\u300D",runSubmitted:"\u5DF2\u63D0\u4EA4\u300C{title}\u300D\u8FD0\u884C",runCanceled:"\u5DF2\u53D6\u6D88\u8FD0\u884C",markReadDone:"\u5DF2\u6807\u4E3A\u5DF2\u8BFB",errorGeneric:"\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002",needConfirm:"\u9700\u8981\u7528\u6237\u786E\u8BA4",schedulerBlocked:"\u8C03\u5EA6\u5668\u672A\u53D6\u5F97\u8FD0\u884C\u6743\uFF0C\u6682\u65F6\u4E0D\u80FD\u624B\u52A8\u8FD0\u884C\u3002",runBlocked:"\u4EFB\u52A1\u6B63\u5728\u8FD0\u884C\uFF0C\u7ED3\u675F\u6216\u53D6\u6D88\u540E\u624D\u80FD\u518D\u6B21\u8FD0\u884C\u3002",configWhileRunning:"\u4EFB\u52A1\u6B63\u5728\u8FD0\u884C\uFF1B\u4FEE\u6539\u4F1A\u5728\u4E0B\u4E00\u6B21\u8FD0\u884C\u65F6\u751F\u6548\u3002",detailRecentRuns:"\u6700\u8FD1 {n} \u6B21\u8FD0\u884C",detailNoRuns:"\u8FD8\u6CA1\u6709\u8FD0\u884C\u8BB0\u5F55\u3002",detailAllRuns:"\u5B8C\u6574\u8BB0\u5F55",detailTaskNotifications:"\u4EFB\u52A1\u901A\u77E5",taskRunsLimit:"\u8FD9\u91CC\u663E\u793A\u5F53\u524D\u4EFB\u52A1\u6700\u8FD1 20 \u6B21\u8FD0\u884C\uFF1B\u5168\u90E8\u8FD0\u884C\u89C1\u300C\u8FD0\u884C\u300D\u9875\u3002",runErrors:"{n} \u6761\u9519\u8BEF",runNoErrors:"\u65E0\u9519\u8BEF",notificationFallbackFailed:"\u8FD0\u884C\u5931\u8D25\uFF1B\u6253\u5F00\u5BF9\u5E94\u4EFB\u52A1\u6216 session \u67E5\u770B\u8BE6\u60C5\u3002",notificationFallbackTimeout:"\u8FD0\u884C\u8D85\u65F6\uFF1B\u6253\u5F00\u5BF9\u5E94\u4EFB\u52A1\u6216 session \u67E5\u770B\u8BE6\u60C5\u3002",notificationFallbackSuccess:"\u8FD0\u884C\u5B8C\u6210\u3002",notificationFallbackStandby:"\u8C03\u5EA6\u5668\u672A\u53D6\u5F97\u8FD0\u884C\u6743\uFF0C\u5B9A\u65F6\u89E6\u53D1\u6682\u505C\u3002",notificationFallbackCalendar:"\u4EA4\u6613\u65E5\u5386\u4E0D\u53EF\u7528\uFF0C\u4EA4\u6613\u65E5\u4EFB\u52A1\u5DF2\u8DF3\u8FC7\u3002",notificationFallbackSkipped:"\u672C\u6B21\u8BA1\u5212\u5DF2\u8DF3\u8FC7\u3002",statusLabel:"\u72B6\u6001",triggerSummary:"\u65E5\u7A0B",lastRun:"\u4E0A\u6B21\u8FD0\u884C",neverRun:"\u5C1A\u672A\u8FD0\u884C",relativeNow:"\u521A\u521A",nextRunUnavailable:"\u4EA4\u6613\u65E5\u5386\u4E0D\u53EF\u7528\uFF0C\u65E0\u6CD5\u8BA1\u7B97\u4E0B\u4E00\u6B21\u8FD0\u884C\u3002",copyHint:"\u590D\u5236\u540E\u4F1A\u751F\u6210\u4E00\u4E2A\u6682\u505C\u72B6\u6001\u7684\u81EA\u5B9A\u4E49\u4EFB\u52A1\u3002",notificationTaskGone:"\u4EFB\u52A1\u5DF2\u4E0D\u5B58\u5728",noSelection:"\u4ECE\u5217\u8868\u4E2D\u9009\u62E9\u4E00\u4E2A\u4EFB\u52A1\u3002",details:"\u8BE6\u60C5",actions:"\u64CD\u4F5C",rosterCount:"{n} \u4E2A\u4EFB\u52A1",dayOfMonth:"{n} \u65E5",everyPrefix:"\u6BCF",weeklyPrefix:"\u6BCF\u5468",monthlyPrefix:"\u6BCF\u6708",monthlyLastDay:"\u6700\u540E\u4E00\u5929",dailyPrefix:"\u6BCF\u5929",oncePrefix:"\u5355\u6B21",tradingSuffix:"\uFF08\u4EC5\u4EA4\u6613\u65E5\uFF09",sessionMissing:"\u6CA1\u6709\u53EF\u6253\u5F00\u7684 session"};function re(){if(typeof document>"u"||document.querySelector(`style[data-${tt}]`))return()=>{};let i=document.createElement("style");return i.setAttribute(`data-${tt}`,"true"),i.textContent=`
9
9
  .capital-automation-page, .capital-automation-modal { --ca-card: var(--dsw-alias-bg-layer-2, var(--dsw-alias-bg-layer-1)); --ca-line: var(--dsw-alias-border-l3, var(--dsw-alias-border-l1)); --ca-line-soft: var(--dsw-alias-border-l2, var(--dsw-alias-border-l1)); --ca-table-line: var(--ca-line); --ca-muted: var(--dsw-alias-label-tertiary); --ca-caption: var(--dsw-alias-label-caption, var(--dsw-alias-label-tertiary)); --ca-hover: var(--dsw-alias-interactive-bg-hover); --ca-field: var(--dsw-alias-bg-module-platform); --ca-business: var(--dsw-alias-state-business-primary, var(--dsw-alias-brand-primary)); --ca-success: var(--dsw-alias-state-success-primary); --ca-error: var(--dsw-alias-state-error-primary); --ca-warn: var(--dsw-alias-state-warn-label); --ca-business-text: var(--ca-business); --ca-success-text: var(--ca-success); --ca-error-text: var(--ca-error); --ca-warn-text: var(--ca-warn); }
10
10
  body:not([data-ds-dark-theme]) .capital-automation-page, body:not([data-ds-dark-theme]) .capital-automation-modal { --ca-line: #0000001f; --ca-line-soft: #0000001a; --ca-table-line: #00000026; --ca-muted: #5d626a; --ca-caption: #6a6f77; --ca-hover: #eef1f5; --ca-field: #f7f8fa; --ca-business: #2f63d6; --ca-success: #16a34a; --ca-error: #dc2626; --ca-warn: #d97706; --ca-business-text: #2f63d6; --ca-success-text: #15803d; --ca-error-text: #c81e1e; --ca-warn-text: #b45309; --ca-tag-news: #2f6fd0; --ca-tag-market: #a85a08; --ca-tag-review: #6d4ac4; --ca-tag-research: #0f766e; --ca-tag-custom: #b3246d; }
11
11
  .capital-automation-page { display: flex; flex-direction: column; min-height: 0; height: 100%; color: var(--dsw-alias-label-primary); }
@@ -332,6 +332,7 @@ window.__ModuleLoader__.load({
332
332
  .capital-automation-notificationmessage { display: -webkit-box; overflow: hidden; margin-top: 2px; color: var(--ca-muted); font-size: 11.5px; line-height: 18px; overflow-wrap: anywhere; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
333
333
  .capital-automation-notificationtime { display: block; margin-top: 3px; color: var(--ca-caption); font-size: 11px; line-height: 16px; }
334
334
  .capital-automation-modal { width: min(720px, calc(100vw - 32px)); max-width: min(720px, calc(100vw - 32px)); max-height: calc(100dvh - 40px); }
335
+ .capital-automation-modal-wizard { width: min(600px, calc(100vw - 32px)); max-width: min(600px, calc(100vw - 32px)); }
335
336
  .capital-automation-modal-content { max-height: calc(100dvh - 128px); overflow: auto; }
336
337
  .capital-automation-modal-narrow { width: min(480px, calc(100vw - 32px)); max-width: min(480px, calc(100vw - 32px)); }
337
338
  .capital-automation-wizard { display: flex; flex-direction: column; gap: 14px; }
@@ -400,8 +401,8 @@ window.__ModuleLoader__.load({
400
401
  .capital-automation-heroactions { padding-left: 0; }
401
402
  .capital-automation-modal-content { max-height: calc(100dvh - 112px); }
402
403
  }
403
- `,document.head.appendChild(i),()=>i.remove()}function se(){async function i(t,n={}){let o=typeof AbortController=="function"?new AbortController:void 0,l=setTimeout(()=>o?.abort(),2e4),r,s;try{r=await fetch(`${ee}${t}`,{method:n.method??"GET",credentials:"same-origin",headers:n.body===void 0?{}:{"content-type":"application/json"},body:n.body===void 0?void 0:JSON.stringify(n.body),...o===void 0?{}:{signal:o.signal}});try{s=await r.json()}catch{throw new Error(e.errorGeneric)}}finally{clearTimeout(l)}if(!r.ok||s?.ok===!1){let d=new Error(s?.message??e.errorGeneric);throw d.code=s?.code,d}return s}return{meta:()=>i("/meta"),tasks:()=>i("/tasks"),detail:t=>i(`/tasks/${encodeURIComponent(t)}`),create:t=>i("/tasks",{method:"POST",body:t}),patch:(t,n)=>i(`/tasks/${encodeURIComponent(t)}`,{method:"PATCH",body:n}),remove:t=>i(`/tasks/${encodeURIComponent(t)}`,{method:"DELETE"}),action:(t,n)=>i(`/tasks/${encodeURIComponent(t)}/${n}`,{method:"POST"}),run:t=>i(`/tasks/${encodeURIComponent(t)}/run`,{method:"POST"}),cancel:t=>i(`/runs/${encodeURIComponent(t)}/cancel`,{method:"POST"}),runs:(t="")=>i(`/runs${t}`),notifications:()=>i("/notifications"),markRead:t=>i("/notifications/read",{method:"POST",body:t})}}function ct(i){return e.status[i]??i}function ut(i){return e.state[i]??i}function dt(i){return i?.state==="active"?e.pause:i?.state==="dormant"?e.add:e.activate}function pt(i){return i?.state==="active"?Jt:i?.state==="dormant"?Ha:_a}function mt(i){return(i?.state==="dormant"?e.added:e.activated).replace("{title}",i?.title??"")}function sa(i){return e.category[i]??i}function gt(i,t=12){let n=String(i??""),o=Array.from(n);return o.length>t?`${o.slice(0,t).join("")}\u2026`:n}function ce(i){if(i==null||i.available===!1)return e.calendarSourceNone;let t=i.source==="szse"?e.calendarSourceSzse:i.source==="bundled"?e.calendarSourceBundled:e.calendarSourceNone,n=i.through??e.calendarUnknown;return`${t} \xB7 ${e.calendarThrough.replace("{date}",n)}`}function L(i){return i!=null&&ie.includes(i.status)}function ta(i){return ne.includes(i)}function Ua(i){return i?.origin==="custom"?"custom":i?.category??"news"}function ue(i){return i?.origin==="custom"?lt:i?.sourceBuiltinId==="morning-brief"?Zt:i?.category==="market"?Wt:i?.category==="review"?Qt:i?.category==="research"?ot:Kt}function da(i){let{task:t,size:n=34,large:o=!1}=i,l=ue(t),r=o?44:n;return a("span",{className:"capital-automation-glyph","data-tone":Ua(t),style:{width:r,height:r,borderRadius:o?13:10}},a(l,{size:o?22:17}))}function ft(i){let{state:t,running:n}=i,o=n?e.status.running:ut(t);return a("span",{className:"capital-automation-state","data-state":n?"running":t},a("span",{className:"capital-automation-statedot"}),o)}function de(i,t={}){if(typeof i!="string"||i.length===0)return e.never;let n=new Date(i);return Number.isNaN(n.getTime())?i:new Intl.DateTimeFormat("zh-CN",{year:t.short===!0?void 0:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hourCycle:"h23",...typeof t.timeZone=="string"&&t.timeZone.length>0?{timeZone:t.timeZone}:{}}).format(n)}function qa(i,t){return de(i,{short:!0,timeZone:t})}function bt(i){if(typeof i!="number"||i<0)return e.never;let t=Math.round(i/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);return n<60?`${n}m ${t%60}s`:`${Math.floor(n/60)}h ${n%60}m`}function ht(i){if(typeof i!="string"||i.length===0)return"";let t=Date.parse(i);if(Number.isNaN(t))return"";let n=t-Date.now(),o=Math.abs(n);if(o<45e3)return e.relativeNow;let l=[[864e5,"day"],[36e5,"hour"],[6e4,"minute"]],r=new Intl.RelativeTimeFormat("zh-CN",{numeric:"auto"});for(let[s,d]of l)if(o>=s||d==="minute")return r.format(Math.round(n/s),d);return""}function Sa(i){return new Intl.DateTimeFormat("zh-CN",{month:"short",day:"numeric"}).format(i)}function xt(i){return(i.weekdays??[]).slice().sort((t,n)=>t-n).map(t=>la.find(n=>n.value===t)?.label??"").join("\u3001")}function vt(i){return i.dayOfMonth==="last"?"\u6BCF\u6708\u6700\u540E\u4E00\u5929":`\u6BCF\u6708 ${i.dayOfMonth??1} \u65E5`}function yt(i){if(i==null)return e.never;let t=i.tradingDaysOnly===!0?e.tradingSuffix:"";return i.cadence==="weekly"?`${e.weeklyPrefix}${xt(i)} ${i.time}${t}`:i.cadence==="monthly"?`${vt(i)} ${i.time}${t}`:i.cadence==="once"?`${Nt(i.date)} ${i.time}${t}`:`${e.dailyPrefix} ${i.time}${t}`}function pe(i){return i?.cadence==="weekly"?`${e.weeklyPrefix}${xt(i)}`:i?.cadence==="monthly"?vt(i):i?.cadence==="once"?Nt(i.date):e.dailyPrefix}function wt(i){if(i?.state==="dormant")return{value:e.nextRunDormant,sub:e.notScheduled};if(i?.state==="paused")return{value:e.nextRunPaused,sub:e.notScheduled};if(i?.trigger?.cadence==="once"&&!i.nextRunAt&&i.nextRunUnavailable!==!0)return we(i.trigger)?{value:e.onceEnded,sub:e.onceEndedHint}:{value:e.onceSkipped,sub:e.onceSkippedHint};let t=i?.nextRunLocal??(i?.nextRunUnavailable?e.calendarUnavailable:e.never),n=i?.nextRunAt?ht(i.nextRunAt):i?.nextRunUnavailable?e.nextRunUnavailable:e.never;return{value:t,sub:n}}function me(i,t){if(i==null)return{value:e.neverRun,sub:e.lastRunEmpty};let n=L(i),o=[qa(i.queuedAt,t)];!n&&typeof i.durationMs=="number"&&o.push(bt(i.durationMs));let l=Array.isArray(i.errors)?i.errors.length:0;l>0&&o.push(e.runErrors.replace("{n}",String(l)));let r;return i.status==="succeeded"?r="ok":ta(i.status)?r="error":n?r="running":oe.includes(i.status)&&(r="warn"),{value:ct(i.status),sub:o.filter(Boolean).join(" \xB7 "),tone:r}}function ja(i,t){let n=[{id:"",title:e.workspaceDefault}],o=Array.isArray(i?.workspaces)?i.workspaces:[];for(let l of o)typeof l?.id!="string"||l.id.length===0||n.push({id:l.id,title:l.default===!0?`${l.title}\uFF08\u9ED8\u8BA4\uFF09`:l.title});return typeof t=="string"&&t.length>0&&!n.some(l=>l.id===t)&&n.push({id:t,title:e.workspaceMissing}),n}function ge(i,t){return typeof t!="string"||t.length===0?e.workspaceDefault:ja(i,t).find(n=>n.id===t)?.title??e.workspaceMissing}function fe(i){let t=String(i??"").trim();return(t.length>0&&!Ra.includes(t)?[t,...Ra]:Ra).map(o=>({value:o,label:o}))}function ka(i,t,n){return new Date(Date.UTC(i,t-1,n)).toISOString().slice(0,10)}function be(i){try{let t=new Intl.DateTimeFormat("en-US",{timeZone:i,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(new Date),n=o=>Number(t.find(l=>l.type===o)?.value);return ka(n("year"),n("month"),n("day"))}catch{return new Date().toISOString().slice(0,10)}}function he(i){let[t,n,o]=be(i).split("-").map(Number);return ka(t,n,o+1)}function xe(i){let t=i;for(let n=0;n<7;n+=1){let o=new Date(`${t}T00:00:00Z`).getUTCDay();if(o!==0&&o!==6)return t;let[l,r,s]=t.split("-").map(Number);t=ka(l,r,s+1)}return t}function ve(i,t){let n=he(i);return t===!0?xe(n):n}function ye(i){try{let t=new Intl.DateTimeFormat("en-US",{timeZone:i,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(new Date),n=o=>Number(t.find(l=>l.type===o)?.value);return{date:ka(n("year"),n("month"),n("day")),minutes:n("hour")*60+n("minute")}}catch{let t=new Date;return{date:t.toISOString().slice(0,10),minutes:t.getUTCHours()*60+t.getUTCMinutes()}}}function we(i){if(i?.cadence!=="once"||!kt(i.date))return!1;let t=ye(i.timezone);if(i.date!==t.date)return i.date<t.date;let[n,o]=String(i.time??"").split(":").map(Number);return!Number.isInteger(n)||!Number.isInteger(o)?!1:t.minutes>=n*60+o}function kt(i){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(String(i??""));if(t===null)return!1;let n=Number(t[1]),o=Number(t[2]),l=Number(t[3]);if(n<1970||o<1||o>12||l<1||l>31)return!1;let r=new Date(Date.UTC(n,o-1,l));return r.getUTCFullYear()===n&&r.getUTCMonth()===o-1&&r.getUTCDate()===l}function Nt(i){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(String(i??""));return t===null?String(i??""):`${Number(t[1])} \u5E74 ${Number(t[2])} \u6708 ${Number(t[3])} \u65E5`}function ca(i){let n={kind:"schedule",cadence:Object.prototype.hasOwnProperty.call(e.cadence,i?.cadence)?i.cadence:"daily",time:i?.time??"09:00",timezone:i?.timezone??"Asia/Shanghai",tradingDaysOnly:i?.tradingDaysOnly===!0};if(n.cadence==="weekly"&&(n.weekdays=(i?.weekdays??[1,3,5]).slice().sort((o,l)=>o-l)),n.cadence==="monthly"){let o=i?.dayOfMonth;n.dayOfMonth=o==="last"||Number.isInteger(o)&&o>=1&&o<=31?o:1}return n.cadence==="once"&&(n.date=typeof i?.date=="string"?i.date:ve(n.timezone,n.tradingDaysOnly)),n}function ke(i,t){let n=ca({...t,cadence:i});return i==="weekly"&&(n.weekdays??[]).length===0&&(n.weekdays=[1,3,5]),n}function it(){return{title:"\u6211\u7684\u6295\u7814\u4EFB\u52A1",description:"",instruction:"",category:"research",trigger:{kind:"schedule",cadence:"daily",time:"09:00",timezone:"Asia/Shanghai",tradingDaysOnly:!0},workspaceId:"",limits:{...le},notifications:{inApp:!0,onFailure:!0,onSuccess:!1}}}function ya(i){return{title:String(i.title??"").trim(),description:i.description??"",instruction:i.instruction??"",category:i.category,trigger:ca(i.trigger),workspaceId:i.workspaceId??"",limits:i.limits,notifications:i.notifications}}function Ne(i,t){return JSON.stringify(ya(i))===JSON.stringify(ya(t))}function Te(i){let t=new Date;t.setHours(0,0,0,0),t.setDate(t.getDate()-(xa-1));let n=[],o=new Map;for(let d=0;d<xa;d+=1){let u=new Date(t);u.setDate(t.getDate()+d);let c=`${u.getFullYear()}-${u.getMonth()}-${u.getDate()}`,x={date:u,key:c,runs:[]};n.push(x),o.set(c,x)}let l=0,r=0,s=0;for(let d of i){let u=new Date(d.queuedAt);if(Number.isNaN(u.getTime())||u<t)continue;d.status==="succeeded"&&(l+=1),ta(d.status)&&(r+=1),s+=1;let c=`${u.getFullYear()}-${u.getMonth()}-${u.getDate()}`,x=o.get(c);x!==void 0&&x.runs.push(d)}return{days:n,success:l,failure:r,total:s}}function Ce(i){return i.runs.some(t=>L(t))?"active":i.runs.some(t=>ta(t.status))?"error":i.runs.some(t=>t.status==="succeeded")?"ok":i.runs.length>0?"warn":null}function za(i){return i==="run_failed"||i==="run_timeout"?"error":i==="scheduler_standby"||i==="calendar_unavailable"?"warn":"neutral"}function Re(i){return typeof i.message=="string"&&i.message.length>0?i.message:i.kind==="run_failed"?e.notificationFallbackFailed:i.kind==="run_timeout"?e.notificationFallbackTimeout:i.kind==="run_succeeded"?e.notificationFallbackSuccess:i.kind==="scheduler_standby"?e.notificationFallbackStandby:i.kind==="calendar_unavailable"?e.notificationFallbackCalendar:i.kind==="skipped"?e.notificationFallbackSkipped:""}function Se(i,t){return!Ne(i,t)}function ze(i){let t={};String(i.title??"").trim().length===0&&(t.title=e.titleRequired),String(i.instruction??"").trim().length===0&&(t.instruction=e.instructionRequired);let n=i.trigger??{};/^([01]\d|2[0-3]):[0-5]\d$/.test(n.time??"")||(t.time=e.invalidTime);let o=String(n.timezone??"").trim();if(o.length===0)t.timezone=e.invalidTimezone;else try{new Intl.DateTimeFormat("zh-CN",{timeZone:o})}catch{t.timezone=e.invalidTimezoneValue}n.cadence==="weekly"&&(n.weekdays??[]).length===0&&(t.weekdays=e.weekdayRequired),n.cadence==="once"&&(typeof n.date!="string"||n.date.length===0?t.date=e.dateRequired:kt(n.date)||(t.date=e.invalidDate));let l=i.limits??{};for(let r of["runTimeoutMinutes","idleTimeoutMinutes","maxSteps","maxToolCalls"])Number.isFinite(l[r])||(t[r]=e.invalidLimit);return t}function Tt(i,t){let[n,o]=z({}),l=ze(i);return j(()=>{o({})},[t]),{issues:l,errorFor:c=>n[c]===!0?l[c]:void 0,touch:c=>o(x=>x[c]===!0?x:{...x,[c]:!0}),touchAll:()=>o(c=>{let x={...c};for(let v of Object.keys(l))x[v]=!0;return x}),clear:()=>o({})}}function Y(i,t,n){let o=i?.execution?.limits?.[t];return Array.isArray(o)&&o.length===2?o:n}function Ct(i){let{runs:t,onViewAll:n,showLink:o=!0}=i,{days:l,success:r,failure:s,total:d}=Te(t);return a("section",{className:"capital-automation-card capital-automation-history","aria-label":e.runHistory},a("div",{className:"capital-automation-historyhead"},a("div",{className:"capital-automation-historytitle"},a("h2",null,e.runHistory),a("span",null,e.last30Days)),a("div",{className:"capital-automation-historystats"},a("span",{className:"capital-automation-historystat","data-tone":"ok"},a("span",{className:"capital-automation-statusdot"}),e.successCount.replace("{n}",String(r))),a("span",{className:"capital-automation-historystat","data-tone":"error"},a("span",{className:"capital-automation-statusdot"}),e.failureCount.replace("{n}",String(s))),o&&n!==void 0?a("button",{type:"button",className:"capital-automation-historylink",onClick:n},e.runCount.replace("{n}",String(d)),a(La,{size:13})):a("span",{className:"capital-automation-historystat"},e.runCount.replace("{n}",String(d))))),a("div",{className:"capital-automation-timeline","aria-hidden":"true"},l.map(u=>{let c=Ce(u);return a("div",{key:u.key,className:"capital-automation-timeline-day",title:`${Sa(u.date)}\uFF1A${u.runs.length} \u6B21\u8FD0\u884C`},c===null?null:a("span",{className:"capital-automation-timeline-dot","data-tone":c}))})),a("div",{className:"capital-automation-timelinelabels"},a("span",null,Sa(l[0].date)),a("span",null,Sa(l[l.length-1].date))),d===0?a("p",{className:"capital-automation-historyempty"},e.historyEmpty):null)}function Fe(i){let{status:t}=i;return a("span",{className:"capital-automation-runstatus","data-status":t},a("span",{className:"capital-automation-rundot"}),ct(t))}function Ae(i){let{run:t,task:n,onCancel:o,onOpenSession:l,onOpenTask:r,busy:s}=i,d=L(t),u=Array.isArray(t.errors)?t.errors.length:0,[c,x]=z(!1),v=`capital-automation-run-errors-${t.id}`,w=u>0?a("button",{type:"button",className:"capital-automation-runerrorbadge","data-tone":ta(t.status)?"error":"warn","aria-expanded":c?"true":"false","aria-controls":v,"aria-label":`${e.runErrors.replace("{n}",String(u))}\uFF0C${c?e.hideErrorDetails:e.showErrorDetails}`,title:c?e.hideErrorDetails:e.showErrorDetails,onClick:()=>x(h=>!h)},a(rt,{size:12}),e.runErrors.replace("{n}",String(u)),a(La,{size:12})):null;return a("div",{className:"capital-automation-run"},a("div",{className:"capital-automation-runhead"},a("div",{className:"capital-automation-runmain"},a("div",{className:"capital-automation-runline"},n!==void 0&&r!==void 0?a("button",{type:"button",className:"capital-automation-runtitle capital-automation-runmaintitle",onClick:()=>r(n.id)},n.title):a("span",{className:"capital-automation-runtitle"},t.taskTitle),a(Fe,{status:t.status})),a("div",{className:"capital-automation-runmetaline"},a("span",{className:"capital-automation-runmeta"},`${qa(t.queuedAt,n?.trigger?.timezone)} \xB7 ${t.trigger==="manual"?e.triggerManual:e.triggerScheduled}`),typeof t.durationMs=="number"?a("span",{className:"capital-automation-runmeta"},`${e.duration} ${bt(t.durationMs)}`):null,a("span",{className:"capital-automation-runmeta"},`${e.steps} ${t.steps} \xB7 ${e.tools} ${t.toolCalls}`),w)),a("div",{className:"capital-automation-runactions"},d&&typeof o=="function"?a("button",{type:"button",className:"capital-automation-btn","data-size":"sm","data-variant":"danger",disabled:s,onClick:()=>o(t)},e.cancelRun):t.sessionId&&l?a("button",{type:"button",className:"capital-automation-btn","data-size":"sm","data-variant":"primary",onClick:()=>l(t.sessionId)},a(ae,{size:13}),e.openSession):null)),c&&u>0?a("div",{id:v,className:"capital-automation-runerrors",role:"region","aria-label":e.errorDetailsLabel},t.errors.map((h,g)=>a("div",{key:`${t.id}-error-${g}`,className:"capital-automation-runerror","data-severity":h.severity},a("span",{className:"capital-automation-runerrordot"}),a("span",{className:"capital-automation-runerrormessage"},h.message),h.code?a("code",{className:"capital-automation-runerrorcode",title:h.code},h.code):null))):null)}function Ga(i){let{runs:t,tasks:n,onCancel:o,onOpenSession:l,onOpenTask:r,busy:s,compact:d}=i,u=new Map(n.map(c=>[c.id,c]));return t.length===0?d?a("p",{className:"capital-automation-hint"},e.detailNoRuns):a("div",{className:"capital-automation-empty"},a("span",{className:"capital-automation-emptyicon"},a(Ba,{size:19})),a("h3",null,e.detailNoRuns),a("p",null,e.runsEmptyBody)):a("div",{className:"capital-automation-runs"},t.map(c=>a(Ae,{key:c.id,run:c,task:u.get(c.taskId),onCancel:o,onOpenSession:l,onOpenTask:r,busy:s})))}function Ie(i){let{unread:t,onClick:n}=i;return a("button",{type:"button",className:"capital-automation-btn","data-variant":"ghost",onClick:n,title:e.notificationsTitle,"aria-label":e.notificationsTitle},a(Ea,{size:14}),a("span",{className:"capital-automation-btnlabel"},e.notifications),t>0?a("span",{className:"capital-automation-count"},String(t>99?"99+":t)):null)}function Oe(i){let{tab:t,onTab:n,onNewTask:o,unread:l,onOpenInbox:r}=i;return a("header",{className:"capital-automation-head"},a("div",{className:"capital-automation-headinner"},a("div",{className:"capital-automation-topbar"},a("div",{className:"capital-automation-brand"},a("span",{className:"capital-automation-brandmark","aria-hidden":"true"},a($a,{size:16})),a("h1",null,e.title)),a("div",{className:"capital-automation-tabs",role:"tablist","aria-label":e.title},["tasks","runs"].map(s=>a("button",{key:s,type:"button",role:"tab",className:"capital-automation-tab","aria-selected":t===s?"true":"false",onClick:()=>n(s)},e.tabs[s]))),a("div",{className:"capital-automation-topactions"},a(Ie,{unread:l,onClick:r}),a("button",{type:"button",className:"capital-automation-btn","data-variant":"contrast",onClick:o,title:e.newTask,"aria-label":e.newTask},a(Ha,{size:14}),a("span",{className:"capital-automation-btnlabel"},e.newTask))))))}function De(i){let{meta:t,loadError:n,onRetry:o}=i,l=[];t?.storage?.state==="unavailable"&&l.push(a("div",{key:"storage",className:"capital-automation-banner","data-tone":"error",role:"alert"},`${e.storageBanner}${t.storage.error?`\uFF1A${t.storage.error}`:""}`));let r=t?.scheduler?.state;t!=null&&t.storage?.state!=="unavailable"&&(r==="standby"||r==="stopped")&&l.push(a("div",{key:"standby",className:"capital-automation-banner","data-tone":"warn",role:"status"},e.standbyBanner));let s=t!=null&&t.calendar?.available===!1;t!=null&&t.storage?.state!=="unavailable"&&s&&l.push(a("div",{key:"calendar",className:"capital-automation-banner","data-tone":"warn",role:"status"},e.calendarBanner));let d=t?.calendar?.coverageDays;return t!=null&&t.storage?.state!=="unavailable"&&!s&&typeof d=="number"&&d>=0&&d<30&&l.push(a("div",{key:"calendar-coverage",className:"capital-automation-banner","data-tone":"warn",role:"status"},e.calendarCoverageBanner.replace("{through}",t.calendar.through??e.calendarUnknown))),n.length>0&&l.push(a("div",{key:"load",className:"capital-automation-banner","data-tone":"error",role:"alert"},n,a("button",{type:"button",className:"capital-automation-btn","data-size":"sm",onClick:o},e.loadRetry))),l.length===0?null:a("div",{className:"capital-automation-headinner",style:{paddingBottom:0}},l)}function Rt(i){let{active:t,count:n,label:o,onClick:l}=i;return a("button",{type:"button",className:"capital-automation-filter","aria-pressed":t?"true":"false",onClick:l},a("span",{className:"capital-automation-filterlabel"},o),n>0?a("span",{className:"capital-automation-filtercount"},String(n)):null)}function Ee(i){let{task:t}=i,n=[[sa(t.category),Ua(t)]];return t.origin==="builtin"&&n.push([e.origin.builtin,void 0]),t.origin==="custom"&&n.push([e.origin.custom,void 0]),a("span",{className:"capital-automation-tasktags"},n.map(([o,l])=>a("span",{key:o,className:"capital-automation-tag","data-tone":l,title:o},gt(o))))}function St(i){let{task:t,open:n,onToggle:o,onClose:l,onEdit:r,onAction:s,onRequestConfirm:d,canRun:u,running:c,busy:x,disabled:v,align:w="end"}=i,h=t.state==="active"?"pause":"activate",g=x||v===!0,N=[{id:"edit",label:e.edit,icon:a(jt,{size:14}),disabled:x},{id:h,label:dt(t),icon:a(pt(t),{size:14}),disabled:g},{id:"run",label:e.runNow,icon:a(_a,{size:14}),disabled:g||!u||c},...t.origin==="builtin"?[{id:"copy",label:e.copy,icon:a(qt,{size:14}),disabled:g}]:[]],b=[];return t.origin==="builtin"&&t.state!=="dormant"&&b.push(a(Xa,{key:"hibernate",separatorBefore:!0,icon:a(Xt,{size:14}),disabled:g||c,onSelect:()=>{l(),d("hibernate",t)}},e.hibernate)),t.origin==="custom"&&b.push(a(Xa,{key:"remove",danger:!0,separatorBefore:!0,icon:a(te,{size:14}),disabled:g||c,onSelect:()=>{l(),d("delete",t)}},e.remove)),a(wa,{open:n,anchor:a("button",{type:"button",className:"capital-automation-iconbtn",disabled:x,title:e.more,"aria-label":`${e.more}\uFF1A${t.title}`,"aria-haspopup":"menu","aria-expanded":n?"true":"false",onClick:o},a(Gt,{size:16})),items:N,children:b,onSelect:f=>{if(l(),f==="edit"){r(t.id);return}s(t,f)},onClose:l,align:w,portal:!0})}function $e(i){let{task:t,onOpen:n,menuOpen:o,onMenuToggle:l,onMenuClose:r,onEdit:s,onAction:d,onRequestConfirm:u,canRun:c,busy:x,mutationsDisabled:v}=i,w=t.lastRun,h=L(w),g=wt(t);return a("div",{className:"capital-automation-trow"},a("button",{type:"button",className:"capital-automation-trowmain",onClick:()=>n(t.id)},a("span",{className:"capital-automation-cell capital-automation-identity"},a(da,{task:t}),a("span",{className:"capital-automation-identitytext"},a("span",{className:"capital-automation-tasktitlerow"},a("span",{className:"capital-automation-tasktitle"},t.title),a(Ee,{task:t}),(t.unread??0)>0?a("span",{className:"capital-automation-count",title:e.unread},String(t.unread)):null),a("span",{className:"capital-automation-taskdesc"},t.description||e.subtitle))),a("span",{className:"capital-automation-cell","data-cell":"schedule"},a("span",{className:"capital-automation-schedule"},yt(t.trigger)),a("span",{className:"capital-automation-schedulesub"},t.trigger?.timezone??"")),a("span",{className:"capital-automation-cell","data-cell":"next"},a("span",{className:"capital-automation-nextmain"},g.value),a("span",{className:"capital-automation-nextsub"},g.sub)),a("span",{className:"capital-automation-cell"},a(ft,{state:t.state,running:h}))),a("div",{className:"capital-automation-trowmenu"},a(St,{task:t,open:o,onToggle:l,onClose:r,onEdit:s,onAction:d,onRequestConfirm:u,canRun:c,running:h,busy:x,disabled:v})))}function Me(i){let{tasks:t,onOpen:n,onAction:o,onRequestConfirm:l,onEdit:r,schedulerActive:s,storageReady:d,busyTaskId:u}=i,[c,x]=z(null),v=d&&s;return a("div",{className:"capital-automation-table","aria-label":e.taskSection},a("div",{className:"capital-automation-thead"},a("div",{className:"capital-automation-theadmain"},a("span",null,e.taskSection),a("span",null,e.triggerSummary),a("span",null,e.nextRun),a("span",null,e.stateLabel)),a("span",null)),t.map(w=>a($e,{key:w.id,task:w,onOpen:n,menuOpen:c===w.id,onMenuToggle:()=>x(h=>h===w.id?null:w.id),onMenuClose:()=>x(null),onEdit:r,onAction:o,onRequestConfirm:l,canRun:v,busy:u===w.id,mutationsDisabled:!d})))}function Le(i){let{task:t,onOpen:n,onEnable:o,busy:l,disabled:r}=i;return a("article",{className:"capital-automation-template"},a("button",{type:"button",className:"capital-automation-templatemain",onClick:()=>n(t.id)},a(da,{task:t,size:38}),a("span",{className:"capital-automation-templatebody"},a("span",{className:"capital-automation-templatetitlerow"},a("strong",null,t.title),a("span",{className:"capital-automation-tag","data-tone":Ua(t),title:sa(t.category)},gt(sa(t.category)))),a("span",{className:"capital-automation-templatedesc"},t.description||e.subtitle))),a("div",{className:"capital-automation-templatefoot"},a("span",{className:"capital-automation-templatemeta"},a(Ba,{size:12}),`${e.templateMeta} \xB7 ${yt(t.trigger)}`),a("button",{type:"button",className:"capital-automation-btn","data-size":"sm","data-variant":"primary",onClick:()=>o(t),disabled:l||r},a(Ha,{size:12}),l?e.templateAdding:e.templateAdd)))}function Ia(i){let{title:t,body:n,action:o,actionLabel:l,icon:r}=i;return a("div",{className:"capital-automation-empty"},a("span",{className:"capital-automation-emptyicon"},a(r??$a,{size:19})),a("h3",null,t),a("p",null,n),o&&l?a("button",{type:"button",className:"capital-automation-btn",onClick:o},l):null)}function S(i){let{width:t="100%",height:n=10,radius:o=6}=i;return a("span",{className:"capital-automation-skeleton",style:{width:t,height:n,borderRadius:o},"aria-hidden":"true"})}function zt(){return a("section",{className:"capital-automation-card capital-automation-history","aria-hidden":"true"},a("div",{className:"capital-automation-historyhead"},a("div",{className:"capital-automation-historytitle"},a(S,{width:92,height:14}),a(S,{width:52,height:11})),a("div",{className:"capital-automation-historystats"},a(S,{width:64,height:12}),a(S,{width:64,height:12}),a(S,{width:56,height:12}))),a("div",{className:"capital-automation-skeletontimeline"},Array.from({length:xa},(i,t)=>a(S,{key:t,height:6+t*11%22,radius:2}))),a("div",{className:"capital-automation-timelinelabels"},a(S,{width:34,height:9}),a(S,{width:34,height:9})))}function Oa(i){let{trailing:t=[210,132]}=i;return a("div",{className:"capital-automation-sectionhead"},a(S,{width:78,height:14}),a(S,{width:210,height:11}),t.length===0?null:a("div",{className:"capital-automation-sectiontools"},t.map((n,o)=>a(S,{key:o,width:n,height:o===0?28:30,radius:999}))))}function Be(){return a("div",{className:"capital-automation-trow capital-automation-skeletonrow","aria-hidden":"true"},a("div",{className:"capital-automation-trowmain"},a("span",{className:"capital-automation-cell capital-automation-identity"},a(S,{width:34,height:34,radius:10}),a("span",{className:"capital-automation-skeletonstack"},a(S,{width:"52%",height:12}),a(S,{width:"82%",height:9}),a(S,{width:92,height:16,radius:999}))),a("span",{className:"capital-automation-cell","data-cell":"schedule"},a(S,{width:"64%",height:10}),a(S,{width:"42%",height:8})),a("span",{className:"capital-automation-cell","data-cell":"next"},a(S,{width:"58%",height:10}),a(S,{width:"36%",height:8})),a("span",{className:"capital-automation-cell"},a(S,{width:52,height:22,radius:999}))),a("div",{className:"capital-automation-trowmenu"},a(S,{width:18,height:18,radius:6})))}function _e(i){let{rows:t=4}=i;return a("div",{className:"capital-automation-table","aria-hidden":"true"},a("div",{className:"capital-automation-thead"},a("div",{className:"capital-automation-theadmain"},a(S,{width:"52%",height:9}),a(S,{width:"58%",height:9}),a(S,{width:"56%",height:9}),a(S,{width:44,height:9})),a("span",null)),Array.from({length:t},(n,o)=>a(Be,{key:o})))}function He(){return a("div",{className:"capital-automation-template capital-automation-skeletontemplate","aria-hidden":"true"},a("div",{className:"capital-automation-skeletontemplatemain"},a(S,{width:38,height:38,radius:11}),a("div",{className:"capital-automation-skeletonstack"},a(S,{width:"58%",height:11}),a(S,{width:"100%",height:9}),a(S,{width:"76%",height:9}))),a("div",{className:"capital-automation-templatefoot"},a(S,{width:118,height:11}),a(S,{width:64,height:28,radius:999})))}function Pe(){return a("div",{className:"capital-automation-run capital-automation-skeletonrun","aria-hidden":"true"},a("div",{className:"capital-automation-runhead"},a("div",{className:"capital-automation-runmain"},a("div",{className:"capital-automation-runline"},a(S,{width:168,height:11}),a(S,{width:54,height:10,radius:999})),a("div",{className:"capital-automation-runmetaline"},a(S,{width:86,height:9}),a(S,{width:58,height:9}),a(S,{width:104,height:9}))),a("div",{className:"capital-automation-runactions"},a(S,{width:64,height:26,radius:999}))))}function Ft(i){let{children:t}=i;return a("div",{className:"capital-automation-loading","aria-busy":"true"},a("span",{className:"capital-automation-skeletonlabel",role:"status","aria-live":"polite"},e.loading),t)}function Ue(){return a(Ft,null,a(zt),a("section",{className:"capital-automation-section"},a(Oa),a(_e,{rows:4})),a("section",{className:"capital-automation-section"},a(Oa,{trailing:[64]}),a("div",{className:"capital-automation-templates"},[0,1,2].map(i=>a(He,{key:i})))))}function qe(){return a(Ft,null,a(zt),a("section",{className:"capital-automation-section"},a(Oa,{trailing:[260]}),a("section",{className:"capital-automation-card capital-automation-panel"},a("div",{className:"capital-automation-runs"},[0,1,2,3].map(i=>a(Pe,{key:i}))))))}function je(i){let{tasks:t,templates:n,runs:o,onOpenTask:l,onNewTask:r,onEnableTemplate:s,onAction:d,onRequestConfirm:u,onEdit:c,onGoRuns:x,onRequestCancelRun:v,schedulerActive:w,storageReady:h,busyTaskId:g}=i,[N,b]=z("all"),[f,k]=z(""),F=t.filter(p=>L(p.lastRun)),O=n.filter(p=>!L(p.lastRun)),D=t.filter(p=>!L(p.lastRun)&&!(p.origin==="builtin"&&p.state==="dormant")),E=D.filter(p=>{if(N==="custom"&&p.origin!=="custom"||N!=="all"&&N!=="custom"&&p.category!==N)return!1;if(f.trim().length===0)return!0;let _=f.trim().toLowerCase();return`${p.title} ${p.description??""} ${p.instruction??""}`.toLowerCase().includes(_)}),B={all:D.length,custom:D.filter(p=>p.origin==="custom").length,news:D.filter(p=>p.category==="news").length,market:D.filter(p=>p.category==="market").length,review:D.filter(p=>p.category==="review").length,research:D.filter(p=>p.category==="research").length},y=["all","custom","news","market","review","research"];return a("div",null,a(Ct,{runs:o,onViewAll:x}),a("section",{className:"capital-automation-section"},a("div",{className:"capital-automation-sectionhead"},a("h2",null,e.taskSection),a("span",null,e.taskSectionHint),a("div",{className:"capital-automation-sectiontools"},a("div",{className:"capital-automation-filters",role:"group","aria-label":e.filterLabel},y.map(p=>a(Rt,{key:p,label:p==="all"?e.filterAll:p==="custom"?e.filterCustom:sa(p),count:B[p],active:N===p,onClick:()=>b(p)}))),a("label",{className:"capital-automation-search"},a(ot,{size:13}),a("input",{type:"search",value:f,placeholder:e.searchPlaceholder,"aria-label":e.searchPlaceholder,onChange:p=>k(p.target.value)})))),F.length>0?a("div",{className:"capital-automation-running",role:"status"},F.map(p=>a("div",{key:p.id,className:"capital-automation-runningrow"},a("span",{className:"capital-automation-live"},a("span",{className:"capital-automation-livedot"}),e.status.running),a(da,{task:p,size:28}),a("button",{type:"button",className:"capital-automation-tasktitle",style:{padding:0,border:0,background:"transparent",cursor:"pointer"},onClick:()=>l(p.id)},p.title),a("span",{className:"capital-automation-runmeta"},`${e.runningSince} ${ht(p.lastRun.startedAt??p.lastRun.queuedAt)} \xB7 ${e.steps} ${p.lastRun.steps} \xB7 ${e.tools} ${p.lastRun.toolCalls}`),a("span",{className:"capital-automation-runningactions"},a("button",{type:"button",className:"capital-automation-btn","data-size":"sm","data-variant":"danger",onClick:()=>v(p,p.lastRun)},e.cancelRun),a("button",{type:"button",className:"capital-automation-btn","data-size":"sm",onClick:()=>l(p.id)},e.details))))):null,E.length>0?a(Me,{tasks:E,onOpen:l,onAction:d,onRequestConfirm:u,onEdit:c,schedulerActive:w,storageReady:h,busyTaskId:g}):D.length===0?F.length>0?null:a(Ia,{title:O.length>0?e.emptyTasksTitle:e.emptyNoTemplates,body:O.length>0?e.emptyTasksBody:e.emptyNoTemplatesBody,action:O.length===0?r:void 0,actionLabel:O.length===0?e.newTask:void 0}):a(Ia,{title:e.emptyFiltered,body:e.emptyTasksBody,action:()=>{b("all"),k("")},actionLabel:e.clearFilter})),O.length>0?a("section",{className:"capital-automation-section"},a("div",{className:"capital-automation-sectionhead"},a("h2",null,e.templateSection)),a("div",{className:"capital-automation-templates"},O.map(p=>a(Le,{key:p.id,task:p,onOpen:l,onEnable:s,busy:g===p.id,disabled:!h})))):null)}function Ge(i){let{value:t,onChange:n,disabled:o}=i,[l,r]=z(!1),s=Array.isArray(t)?t:[],d=b=>s.includes(b),u=b=>s.length===b.length&&b.every(d),c=u([1,2,3,4,5]),x=u([6,7]),v=u(la.map(b=>b.value)),w=s.length===0?e.weekdayNone:v?e.weekdayEvery:c?e.weekdayWorkdayQuick:x?e.weekdayWeekendQuick:la.filter(b=>d(b.value)).map(b=>b.label).join("\u3001");j(()=>{o===!0&&l&&r(!1)},[o,l]);let h=[{id:"workday",label:e.weekdayWorkdayQuick},{id:"weekend",label:e.weekdayWeekendQuick},{type:"separator",id:"weekday-separator"},...la.map(b=>({id:`weekday-${b.value}`,label:`\u5468${b.label}`}))],g=[...s.map(b=>`weekday-${b}`),...c?["workday"]:[],...x?["weekend"]:[]],N=b=>{if(b==="weekday-done"){r(!1);return}if(b==="workday"){n([1,2,3,4,5]);return}if(b==="weekend"){n([6,7]);return}let f=Number(b.slice(8));if(!la.some(F=>F.value===f))return;let k=d(f)?s.filter(F=>F!==f):[...s,f].sort((F,O)=>F-O);k.length>0&&n(k)};return a(wa,{open:l,anchor:a("button",{type:"button",className:"capital-automation-select capital-automation-triggerpick",disabled:o,"aria-label":`${e.weekdayField}\uFF1A${w}`,"aria-haspopup":"menu","aria-expanded":l?"true":"false",title:`${e.weekdayField}\uFF1A${w}`,onClick:()=>r(b=>!b)},a("span",{className:"capital-automation-selectvalue"},w),a(Ma,{size:14})),items:h,selectedIds:g,onSelect:N,onClose:()=>r(!1),footer:[{id:"weekday-done",label:e.done}],align:"start",portal:!0})}function Ve(i){let{value:t,onChange:n,disabled:o}=i,[l,r]=z(!1),s=t==="last"?"last":Number(t??1),d=s==="last"?e.monthlyLast:s===1?e.monthlyFirst:s===15?e.monthlyMid:e.dayOfMonth.replace("{n}",String(s)),u=s==="last"?"last":s===1?"first":s===15?"mid":"custom";j(()=>{o===!0&&l&&r(!1)},[o,l]);let c=[{id:"first",label:e.monthlyFirst},{id:"mid",label:e.monthlyMid},{id:"last",label:e.monthlyLast},{id:"custom",label:e.monthlyCustom,submenu:Array.from({length:31},(v,w)=>({id:`monthly-day-${w+1}`,label:e.dayOfMonth.replace("{n}",String(w+1))}))}],x=v=>{if(v==="first"){n(1),r(!1);return}if(v==="mid"){n(15),r(!1);return}if(v==="last"){n("last"),r(!1);return}v.startsWith("monthly-day-")&&(n(Number(v.slice(12))),r(!1))};return a(wa,{open:l,className:"capital-automation-monthpick",anchor:a("button",{type:"button",className:"capital-automation-select capital-automation-triggerpick",disabled:o,"aria-label":`${e.monthlyField}\uFF1A${d}`,"aria-haspopup":"menu","aria-expanded":l?"true":"false",title:`${e.monthlyField}\uFF1A${d}`,onClick:()=>r(v=>!v)},a("span",{className:"capital-automation-selectvalue"},d),a(Ma,{size:14})),items:c,selectedId:u,onSelect:x,onClose:()=>r(!1),align:"start",portal:!1})}function At(i){let{trigger:t,onChange:n,disabled:o,meta:l,errorFor:r,touch:s}=i,d=f=>n(ca({...t,...f})),u=f=>n(ke(f,t)),c=f=>typeof r=="function"?r(f):void 0,x=f=>{typeof s=="function"&&s(f)},v=c("time"),w=c("timezone"),h=c("weekdays"),g=c("date"),N=[v,w,h,g].filter(f=>typeof f=="string"&&f.length>0),b=Object.entries(e.cadence).map(([f,k])=>({value:f,label:k}));return a("div",{className:"capital-automation-triggerbox","data-cadence":t.cadence,"data-invalid":N.length>0?"true":void 0},a("div",{className:"capital-automation-triggerhead"},a("div",{className:"capital-automation-triggerfield"},a("span",{className:"capital-automation-triggerlabel"},e.cadenceField),a(ua,{value:t.cadence,options:b,onChange:u,disabled:o,label:e.cadenceField}),a("div",{className:"capital-automation-triggerdetail","data-cadence":t.cadence},t.cadence==="weekly"?a("div",{className:"capital-automation-triggerfield"},a("span",{className:"capital-automation-triggerlabel"},e.weekdayField),a(Ge,{value:t.weekdays??[],onChange:f=>d({weekdays:f}),disabled:o})):t.cadence==="monthly"?a("div",{className:"capital-automation-triggerfield"},a("span",{className:"capital-automation-triggerlabel"},e.dayField),a(Ve,{value:t.dayOfMonth??1,onChange:f=>d({dayOfMonth:f}),disabled:o})):t.cadence==="once"?a("div",{className:"capital-automation-triggerfield"},a("span",{className:"capital-automation-triggerlabel"},e.dayField),a("input",{type:"date",className:"capital-automation-triggerdate",value:t.date??"",disabled:o,title:e.onceHint,"aria-label":e.dayField,"aria-invalid":g?"true":void 0,"data-invalid":g?"true":void 0,onChange:f=>d({date:f.target.value}),onBlur:()=>x("date")})):null)),a("div",{className:"capital-automation-triggerfield"},a("span",{className:"capital-automation-triggerlabel"},e.timeField),a("input",{type:"time",className:"capital-automation-triggertime",value:t.time,disabled:o,"aria-label":e.timeField,"aria-invalid":v?"true":void 0,"data-invalid":v?"true":void 0,onChange:f=>d({time:f.target.value}),onBlur:()=>x("time")}))),a("div",{className:"capital-automation-triggersettings"},a("span",{className:"capital-automation-triggerzone"},a("span",{className:"capital-automation-triggerlabel"},e.timezoneField),a(ua,{value:t.timezone,options:fe(t.timezone),onChange:f=>d({timezone:f}),disabled:o,label:e.timezoneField,size:"sm",align:"end"})),a("label",{className:"capital-automation-triggerswitch"},a(st,{checked:t.tradingDaysOnly===!0,onChange:f=>d({tradingDaysOnly:f}),label:e.tradingDaysField,disabled:o}),a("span",null,e.tradingDaysField))),N.length>0?a("div",{className:"capital-automation-triggererrors"},N.map(f=>a("span",{key:f,className:"capital-automation-fielderror",role:"alert"},f))):null,l?.calendar?.available===!1?a("p",{className:"capital-automation-hint"},e.nextRunUnavailable):null)}function aa(i){let{label:t,hint:n,checked:o,onChange:l,disabled:r}=i;return a("div",{className:"capital-automation-switchrow"},a("div",null,a("span",null,t),n?a("small",null,n):null),a(st,{checked:o===!0,onChange:l,label:t,disabled:r}))}function It(i){let{label:t,note:n,error:o}=i,l=typeof o=="string"&&o.length>0;return a("span",{className:"capital-automation-fieldhead"},a("span",{className:"capital-automation-fieldlabel"},t),l?a("span",{className:"capital-automation-fielderror",role:"alert"},o):n?a("span",{className:"capital-automation-fieldhint"},n):null)}function Da(i){let{value:t,onChange:n,onBlur:o,placeholder:l,disabled:r,ariaLabel:s,invalid:d,className:u,maxLength:c}=i,x=q(null),v=typeof c=="number"?c:void 0;j(()=>{let g=x.current;if(g==null)return;let N=t??"";document.activeElement!==g&&g.innerText!==N&&(g.innerText=N)},[t]);let w=g=>(g.innerText??"").replace(/\r\n?/g,`
404
- `),h=g=>{let N=w(g);if(v!==void 0&&Array.from(N).length>v){N=Array.from(N).slice(0,v).join(""),g.innerText=N;let b=document.createRange();b.selectNodeContents(g),b.collapse(!1);let f=window.getSelection();f?.removeAllRanges(),f?.addRange(b)}N.length===0&&g.innerHTML!==""&&(g.innerHTML=""),n(N)};return a("div",{ref:x,className:u,contentEditable:r===!0?"false":"true",role:"textbox","aria-multiline":"true","aria-label":s,"aria-invalid":d?"true":void 0,"data-placeholder":l,spellCheck:!1,suppressContentEditableWarning:!0,onInput:g=>h(g.currentTarget),onBlur:g=>{h(g.currentTarget),typeof o=="function"&&o()},onPaste:g=>{let N=g.clipboardData?.getData("text/plain");if(typeof N!="string")return;g.preventDefault();let b=window.getSelection();if(b===null||b.rangeCount===0)return;b.deleteFromDocument();let f=b.getRangeAt(0),k=document.createTextNode(N);f.insertNode(k),f.setStartAfter(k),f.collapse(!0),b.removeAllRanges(),b.addRange(f),h(g.currentTarget)}})}function ra(i){let{label:t,hint:n,note:o,error:l,children:r}=i,s=typeof l=="string"&&l.length>0;return a("label",{className:"capital-automation-field","data-invalid":s?"true":void 0},a(It,{label:t,note:o,error:l}),r,n?a("span",{className:"capital-automation-hint"},n):null)}function ua(i){let{value:t,options:n,onChange:o,disabled:l,label:r,block:s,size:d,align:u="start",title:c}=i,[x,v]=z(!1),w=q(null),h=n.map(F=>({id:String(F.value),label:F.label,disabled:F.disabled===!0})),g=String(t??""),N=h.find(F=>F.id===g)??h[0];j(()=>{l===!0&&x&&v(!1)},[l,x]);let b=()=>v(!1),f=F=>{v(!1),w.current?.focus?.({preventScroll:!0}),F!==g&&o(F)},k=a("button",{ref:w,type:"button",className:"capital-automation-select","data-block":s===!0?"true":void 0,"data-size":d,disabled:l,"aria-label":N?.label?`${r}\uFF1A${N.label}`:r,"aria-haspopup":"menu","aria-expanded":x?"true":"false",title:c??N?.label,onClick:()=>v(F=>!F)},a("span",{className:"capital-automation-selectvalue",title:c??N?.label},N?.label??""),a(Ma,{size:d==="sm"?12:14}));return a(wa,{open:x,anchor:k,items:h,selectedId:g,onSelect:f,onClose:b,align:u,portal:!0})}function nt(i){let{label:t,hint:n,note:o,error:l,ariaLabel:r,block:s=!0,title:d,...u}=i,c=typeof l=="string"&&l.length>0;return a("div",{className:"capital-automation-field",title:d,"data-invalid":c?"true":void 0},a(It,{label:t,note:o,error:l}),a(ua,{...u,label:r??t,block:s,title:d}),n?a("span",{className:"capital-automation-hint"},n):null)}function Z(i){let{label:t,value:n,min:o,max:l,disabled:r,onChange:s,error:d,onBlur:u}=i;return a(ra,{label:t,error:d},a("input",{type:"number",min:o,max:l,value:n,disabled:r,"aria-invalid":d?"true":void 0,onChange:c=>s(Number(c.target.value)),onBlur:u}))}function We(i){let{value:t,counts:n,onChange:o}=i,l=[["all",e.runFilterAll],["active",e.runFilterActive],["succeeded",e.runFilterSucceeded],["failed",e.runFilterFailed]];return a("div",{className:"capital-automation-filters",role:"group","aria-label":e.runFilterLabel},l.map(([r,s])=>a(Rt,{key:r,label:s,count:n[r],active:t===r,onClick:()=>o(r)})))}function Ke(i){let{runs:t,tasks:n,onCancel:o,onOpenSession:l,onOpenTask:r,onGoTasks:s,onNewTask:d,busy:u}=i,[c,x]=z("all"),v={all:t.length,active:t.filter(h=>L(h)).length,succeeded:t.filter(h=>h.status==="succeeded").length,failed:t.filter(h=>ta(h.status)).length},w=t.filter(h=>c==="active"?L(h):c==="succeeded"?h.status==="succeeded":c==="failed"?ta(h.status):!0);return a("div",null,a(Ct,{runs:t,showLink:!1}),a("section",{className:"capital-automation-section"},a("div",{className:"capital-automation-sectionhead"},a("h2",null,e.runsTitle),a("span",null,e.runsHint),a("div",{className:"capital-automation-sectiontools"},a(We,{value:c,counts:v,onChange:x}))),t.length===0?a("div",{className:"capital-automation-empty"},a("span",{className:"capital-automation-emptyicon"},a(Ba,{size:19})),a("h3",null,e.runsEmptyTitle),a("p",null,e.runsEmptyBody),a("div",{style:{display:"flex",gap:8,marginTop:8}},a("button",{type:"button",className:"capital-automation-btn",onClick:s},e.runsEmptyAction),a("button",{type:"button",className:"capital-automation-btn","data-variant":"primary",onClick:d},e.newTask))):w.length===0?a(Ia,{title:e.emptyFiltered,body:e.filterNoRuns,action:()=>x("all"),actionLabel:e.clearFilter}):a("section",{className:"capital-automation-card capital-automation-panel"},a(Ga,{runs:w,tasks:n,onCancel:o,onOpenSession:l,onOpenTask:r,busy:u}),t.length>=200?a("p",{className:"capital-automation-hint",style:{paddingTop:10}},e.runsLimitHint.replace("{n}","200")):null)))}function Ye(i){let{detail:t,meta:n,onGoRuns:o,onCancelRun:l,onOpenSession:r}=i,s=t.runs[0],d=wt(t.task),u=me(s,t.task.trigger.timezone),c=t.runs.some(g=>L(g)),x=c?e.status.running:ut(t.task.state),v=t.task.origin==="builtin"?e.origin.builtin:e.origin.custom,w=`${pe(t.task.trigger)}${t.task.trigger.tradingDaysOnly===!0?` \xB7 ${e.tradingDaysField}`:""}`,h=t.task.trigger.cadence==="once"?e.triggerHintOnce:t.task.trigger.tradingDaysOnly===!0?e.triggerHint:e.triggerHintNatural;return a("div",{className:"capital-automation-overview"},a("div",{className:"capital-automation-statgrid"},a("div",{className:"capital-automation-stat"},a("span",{className:"capital-automation-statlabel"},e.stateLabel),a("span",{className:"capital-automation-statvalue","data-tone":c?"running":void 0},x),a("span",{className:"capital-automation-statsub"},v)),a("div",{className:"capital-automation-stat"},a("span",{className:"capital-automation-statlabel"},e.nextRun),a("span",{className:"capital-automation-statvalue"},d.value),a("span",{className:"capital-automation-statsub"},d.sub)),a("div",{className:"capital-automation-stat"},a("span",{className:"capital-automation-statlabel"},e.lastResult),a("span",{className:"capital-automation-statvalue","data-tone":u.tone},u.value),a("span",{className:"capital-automation-statsub"},u.sub)),a("div",{className:"capital-automation-stat",title:h},a("span",{className:"capital-automation-statlabel"},e.triggerSummary),a("span",{className:"capital-automation-statvalue"},w),a("span",{className:"capital-automation-statsub"},`${t.task.trigger.time} \xB7 ${t.task.trigger.timezone}`))),a("section",{className:"capital-automation-card capital-automation-panel"},a("div",{className:"capital-automation-panelhead"},a("h3",null,e.detailRecentRuns.replace("{n}",String(et))),a("button",{type:"button",className:"capital-automation-btn","data-size":"sm","data-variant":"ghost",onClick:o},e.detailAllRuns,a(La,{size:13}))),a(Ga,{runs:t.runs.slice(0,et),tasks:[t.task],onCancel:l,onOpenSession:r,compact:!0})),a("section",{className:"capital-automation-card capital-automation-panel"},a("div",{className:"capital-automation-panelhead"},a("h3",null,e.environment)),a("div",{className:"capital-automation-kv"},a("div",{className:"capital-automation-kvitem"},a("span",{className:"capital-automation-kvlabel"},e.presetLabel),a("span",{className:"capital-automation-kvvalue"},e.presetValue)),a("div",{className:"capital-automation-kvitem"},a("span",{className:"capital-automation-kvlabel"},e.workspaceField),a("span",{className:"capital-automation-kvvalue"},ge(n,t.task.workspaceId))),a("div",{className:"capital-automation-kvitem"},a("span",{className:"capital-automation-kvlabel"},e.categoryField),a("span",{className:"capital-automation-kvvalue"},sa(t.task.category)))),a("section",{className:"capital-automation-technical"},a("h4",{className:"capital-automation-technicaltitle"},e.techInfo),a("dl",null,a("dt",null,e.profileKey),a("dd",{title:"profileKey \u662F profile \u540D\u79F0\u7684\u7A33\u5B9A\u54C8\u5E0C\uFF1B\u4E0E session \u6807\u9898\u91CC\u7684 run id \u65E0\u5173\u3002"},n?.profile?.key??"\u2014"),a("dt",null,e.presetLabel),a("dd",null,e.presetValue),a("dt",null,e.policyField),a("dd",null,n?.execution?.policy??"automation-v1"),a("dt",null,e.cwdKind),a("dd",{title:"\u5F53\u524D\u56FA\u5B9A\u4E3A profile\uFF08\u4E13\u5C5E\u81EA\u52A8\u5316\u5DE5\u4F5C\u533A\uFF09\uFF1B\u6CA1\u6709 storage \u7B49\u5176\u4ED6\u6765\u6E90\u3002"},n?.execution?.cwdKind??"profile"),a("dt",null,"profile \u540D\u79F0"),a("dd",null,n?.profile?.name??"\u2014"),a("dt",null,e.calendarField),a("dd",null,ce(n?.calendar))))))}function Ze(i){let{draft:t,setDraft:n,meta:o,busy:l,dirty:r,save:s,reset:d,disabled:u}=i,c=t,{issues:x,errorFor:v,touch:w,touchAll:h,clear:g}=Tt(c,c.id),N=q(null),b=v("title"),f=v("instruction"),k=C=>n(A=>({...A,...typeof C=="function"?C(A):C})),F=()=>{if(Object.keys(x).length>0){h(),setTimeout(()=>{N.current?.querySelector('[data-invalid="true"] input, [data-invalid="true"] .capital-automation-texteditor')?.focus?.()},0);return}s()},O=Y(o,"runTimeoutMinutes",[5,120]),D=Y(o,"idleTimeoutMinutes",[1,30]),E=Y(o,"maxSteps",[10,2e3]),B=Y(o,"maxToolCalls",[10,6e3]),y=a(ra,{label:e.instructionField,error:f},a(Da,{className:"capital-automation-texteditor",value:c.instruction,disabled:l||u,placeholder:e.instructionPlaceholder,ariaLabel:e.instructionField,invalid:f?!0:void 0,onChange:C=>k({instruction:C}),onBlur:()=>w("instruction")})),p=a("div",{className:"capital-automation-instructionside"},a(nt,{label:e.workspaceField,value:c.workspaceId??"",options:ja(o,c.workspaceId).map(C=>({value:C.id,label:C.title})),disabled:l||u,onChange:C=>k({workspaceId:C})}),o?.workspaceError?a("p",{className:"capital-automation-hint","data-tone":"error"},e.workspaceUnavailable):null,a("div",null,a("span",{className:"capital-automation-formlabel"},e.triggerField),a(At,{trigger:c.trigger,disabled:l||u,onChange:C=>k({trigger:C}),meta:o,errorFor:v,touch:w}))),_=a("details",{className:"capital-automation-advanced"},a("summary",null,e.advanced),a("div",{className:"capital-automation-advancedbody"},a("div",{className:"capital-automation-formgrid"},a(Z,{label:e.runTimeout,value:c.limits.runTimeoutMinutes,min:O[0],max:O[1],disabled:l||u,error:v("runTimeoutMinutes"),onBlur:()=>w("runTimeoutMinutes"),onChange:C=>k(A=>({limits:{...A.limits,runTimeoutMinutes:C}}))}),a(Z,{label:e.idleTimeout,value:c.limits.idleTimeoutMinutes,min:D[0],max:D[1],disabled:l||u,error:v("idleTimeoutMinutes"),onBlur:()=>w("idleTimeoutMinutes"),onChange:C=>k(A=>({limits:{...A.limits,idleTimeoutMinutes:C}}))}),a(Z,{label:e.maxSteps,value:c.limits.maxSteps,min:E[0],max:E[1],disabled:l||u,error:v("maxSteps"),onBlur:()=>w("maxSteps"),onChange:C=>k(A=>({limits:{...A.limits,maxSteps:C}}))}),a(Z,{label:e.maxToolCalls,value:c.limits.maxToolCalls,min:B[0],max:B[1],disabled:l||u,error:v("maxToolCalls"),onBlur:()=>w("maxToolCalls"),onChange:C=>k(A=>({limits:{...A.limits,maxToolCalls:C}}))})),a("p",{className:"capital-automation-hint"},e.budgetHint))),G=a("div",null,a("span",{className:"capital-automation-formlabel"},e.notifyField),a("div",{className:"capital-automation-switchlist"},a(aa,{label:e.notifyInApp,checked:c.notifications.inApp,disabled:l||u,onChange:C=>k(A=>({notifications:{...A.notifications,inApp:C}}))}),a(aa,{label:e.notifyFailure,checked:c.notifications.onFailure,disabled:l||u,onChange:C=>k(A=>({notifications:{...A.notifications,onFailure:C}}))}),a(aa,{label:e.notifySuccess,checked:c.notifications.onSuccess,disabled:l||u,onChange:C=>k(A=>({notifications:{...A.notifications,onSuccess:C}}))})),a("p",{className:"capital-automation-hint"},e.notifyHint));return a("div",{className:"capital-automation-form",ref:N},a("div",{className:"capital-automation-titlerow"},a(ra,{label:e.titleField,error:b,note:e.charCount.replace("{n}",String(Array.from(c.title??"").length)).replace("{max}",String(Aa))},a("input",{value:c.title,maxLength:Aa,disabled:l||u,"aria-invalid":b?"true":void 0,onChange:C=>k({title:C.target.value}),onBlur:()=>w("title")})),a(nt,{label:e.categoryField,title:c.origin==="builtin"?e.categoryFixed:void 0,value:c.category,options:Object.entries(e.category).map(([C,A])=>({value:C,label:A})),disabled:l||u||c.origin==="builtin",onChange:C=>k({category:C})})),a(ra,{label:e.descriptionField,note:e.charCount.replace("{n}",String(Array.from(c.description??"").length)).replace("{max}",String(va))},a(Da,{className:"capital-automation-texteditor capital-automation-descriptioninput",value:c.description??"",maxLength:va,disabled:l||u,placeholder:e.descriptionPlaceholder,ariaLabel:e.descriptionField,onChange:C=>k({description:C})})),a("div",{className:"capital-automation-instructionrow"},y,p),_,G,a("div",{className:"capital-automation-formactions","data-sticky":"true"},a("span",{className:"capital-automation-formstatus"},u?e.storageUnavailable:r?e.dirty:e.noDirty),a("button",{type:"button",className:"capital-automation-btn",disabled:l||!r,onClick:()=>{g(),d()}},e.cancel),a("button",{type:"button",className:"capital-automation-btn","data-variant":"primary",disabled:l||!r||u,onClick:F},l==="save"?e.saving:e.save)))}function Qe(i){let{detail:t,busy:n,onMarkTaskRead:o}=i,l=t.notifications,r=l.filter(s=>s.readAt===void 0).length;return a("section",{className:"capital-automation-card capital-automation-panel"},a("div",{className:"capital-automation-panelhead"},a("h3",null,e.detailTaskNotifications),r>0?a("button",{type:"button",className:"capital-automation-btn","data-size":"sm",disabled:n,onClick:o},e.markTaskRead):null),l.length===0?a("p",{className:"capital-automation-hint"},e.notificationsEmpty):a("div",null,l.map(s=>a(Ot,{key:s.id,item:s}))))}function Ot(i){let{item:t,onClick:n,onOpenTask:o}=i,l=typeof n=="function"&&t.taskId!==void 0;return a(l?"button":"div",{type:l?"button":void 0,className:"capital-automation-notification","data-clickable":l?"true":"false",onClick:l?n:void 0},a("span",{className:"capital-automation-notificationicon","data-tone":za(t.kind)},za(t.kind)==="error"?a(rt,{size:15}):za(t.kind)==="warn"?a(Yt,{size:15}):a(Ea,{size:15})),a("span",{className:"capital-automation-notificationbody"},a("span",{className:"capital-automation-notificationtitle"},t.title,t.readAt===void 0?a("span",{className:"capital-automation-count"},e.unread):null),a("span",{className:"capital-automation-notificationmessage"},Re(t)),a("span",{className:"capital-automation-notificationtime"},qa(t.createdAt))),o!==void 0&&t.taskId!==void 0?a("span",{className:"capital-automation-hint"},e.notificationOpenTask):null)}function Je(i){return a("div",{className:"capital-automation-detailbar"},a("button",{type:"button",className:"capital-automation-back",onClick:i.onBack},a(Ut,{size:14}),e.backToTasks))}function Xe(i){let{detail:t,meta:n,api:o,onChanged:l,openSession:r,tab:s,onTab:d,onRequestConfirm:u,onRequestCancelRun:c,schedulerActive:x,storageReady:v}=i,[w,h]=z(null),[g,N]=z(""),[b,f]=z(""),[k,F]=z(""),[O,D]=z(!1),E=q(null);if(j(()=>{h(t.task?{...t.task,trigger:ca(t.task.trigger),limits:{...t.task.limits},notifications:{...t.task.notifications}}:null)},[t]),j(()=>{let R=t.task?.id??null;E.current!==R&&(E.current=R,f(""),F(""))},[t]),w===null)return a("p",{className:"capital-automation-empty"},e.loading);let B=w,y=v!==!1,p=t.runs.some(R=>L(R)),_=t.runs.find(R=>L(R)),G=t.notifications.filter(R=>R.readAt===void 0).length,C=Se(w,t.task),A=y&&x===!0&&!p,J=R=>h(I=>({...I,...typeof R=="function"?R(I):R}));async function V(R,I,M){if(!g){N(R),F("");try{await I(),await l(t.task.id),f(M)}catch(K){F(K.message??e.errorGeneric)}finally{N("")}}}async function pa(){await V("save",async()=>{await o.patch(t.task.id,ya(B))},e.saved)}async function ea(){let R=t.task.state==="active"?"pause":"activate";await V(R,async()=>{await o.action(t.task.id,R)},R==="pause"?e.paused.replace("{title}",t.task.title):mt(t.task))}async function ia(){await V("run",async()=>{await o.run(t.task.id)},e.runSubmitted.replace("{title}",t.task.title))}async function X(){let R=t.notifications.filter(I=>I.readAt===void 0).map(I=>I.id);R.length!==0&&await V("read-notifications",async()=>{await o.markRead({ids:R})},e.markReadDone)}async function H(){await V("copy",async()=>{await o.action(t.task.id,"copy")},e.copied.replace("{title}",t.task.title))}let ma=p?a("button",{type:"button",className:"capital-automation-btn","data-variant":"danger",disabled:g||!y||_===void 0,onClick:()=>{_!==void 0&&c(_)}},e.cancelRun):a("button",{type:"button",className:"capital-automation-btn","data-variant":t.task.state==="active"?"primary":void 0,disabled:g||!A,title:x===!1?e.schedulerBlocked:p?e.runBlocked:void 0,onClick:()=>{ia()}},a(_a,{size:14}),e.runNow),W=()=>{h({...t.task,trigger:ca(t.task.trigger),limits:{...t.task.limits},notifications:{...t.task.notifications}}),F(""),f("")};return a("div",null,a("div",{className:"capital-automation-hero"},a(da,{task:B,large:!0}),a("div",{className:"capital-automation-herobody"},a("div",{className:"capital-automation-herotitle"},a("h2",null,t.task.title),a(ft,{state:t.task.state,running:p}),G>0?a("span",{className:"capital-automation-count",title:e.unread},String(G)):null),a("p",{className:"capital-automation-herodesc"},t.task.description||e.subtitle)),a("div",{className:"capital-automation-heroactions"},ma,p?null:a("button",{type:"button",className:"capital-automation-btn","data-variant":t.task.state==="active"?void 0:"primary",disabled:g||!y,onClick:()=>{ea()}},a(pt(t.task),{size:14}),dt(t.task)),a(St,{task:t.task,open:O,onToggle:()=>D(R=>!R),onClose:()=>D(!1),onEdit:()=>{D(!1),d("config")},onAction:(R,I)=>{I==="run"?ia():I==="copy"?H():(I==="activate"||I==="pause")&&ea()},onRequestConfirm:(R,I)=>{D(!1),u(R,I)},canRun:A,running:p,busy:g.length>0,disabled:!y,align:"end"}))),a("div",{className:"capital-automation-detailtabs",role:"tablist","aria-label":e.details},[["overview",e.overview],["config",e.config],["runs",e.runs],["notifications",e.notifications]].map(([R,I])=>a("button",{key:R,type:"button",role:"tab",className:"capital-automation-detailtab","aria-selected":s===R?"true":"false",onClick:()=>d(R)},I))),b.length>0||k.length>0?a("div",{style:{paddingTop:12}},b.length>0?a("p",{className:"capital-automation-notice",role:"status"},b):null,k.length>0?a("p",{className:"capital-automation-error",role:"alert"},k):null):null,p?a("p",{className:"capital-automation-hint",style:{paddingTop:10}},e.configWhileRunning):null,a("div",{className:"capital-automation-detailbody"},s==="overview"?a(Ye,{detail:t,meta:n,onGoRuns:()=>d("runs"),onCancelRun:c,onOpenSession:r}):null,s==="config"?a(Ze,{draft:w,setDraft:h,meta:n,busy:g,dirty:C,save:pa,reset:W,disabled:!y}):null,s==="runs"?a("section",{className:"capital-automation-card capital-automation-panel"},a("div",{className:"capital-automation-panelhead"},a("h3",null,e.runs),a("span",{className:"capital-automation-hint"},e.taskRunsLimit)),a(Ga,{runs:t.runs,tasks:[t.task],onCancel:R=>c(R),onOpenSession:r,busy:g.length>0})):null,s==="notifications"?a(Qe,{detail:t,busy:g.length>0,onMarkTaskRead:()=>{X()}}):null))}function ai(i){let{open:t,onClose:n,api:o,onCreated:l,meta:r}=i,[s,d]=z(it),[u,c]=z(!1),[x,v]=z(""),{issues:w,errorFor:h,touch:g,touchAll:N}=Tt(s,t),b=h("title"),f=h("instruction");j(()=>{t&&(d(it()),c(!1),v(""))},[t]);let k=y=>d(p=>({...p,...typeof y=="function"?y(p):y})),F=Y(r,"runTimeoutMinutes",[5,120]),O=Y(r,"idleTimeoutMinutes",[1,30]),D=Y(r,"maxSteps",[10,2e3]),E=Y(r,"maxToolCalls",[10,6e3]);async function B(){if(Object.keys(w).length>0){N();return}c(!0),v("");try{let y=await o.create(ya(s));l(y?.task?.id??null)}catch(y){v(y.message??e.errorGeneric)}finally{c(!1)}}return t?a(Pa,{open:t,onClose:()=>{u||n()},title:e.newTaskTitle,closeLabel:e.close,className:"capital-automation-modal",contentClassName:"capital-automation-modal-content",footer:a("div",{className:"capital-automation-formactions",style:{borderTop:0,paddingTop:0}},a("button",{type:"button",className:"capital-automation-btn",disabled:u,onClick:n},e.cancel),a("button",{type:"button",className:"capital-automation-btn","data-variant":"primary",disabled:u||r?.storage?.state==="unavailable",onClick:B},u?e.creating:e.create))},a("div",{className:"capital-automation-wizard"},a("div",{className:"capital-automation-modalheadline","data-invalid":b?"true":void 0},a(da,{task:s,size:42}),a("input",{className:"capital-automation-modaltitleinput",value:s.title,maxLength:Aa,placeholder:e.titlePlaceholder,"aria-label":e.titleField,"aria-invalid":b?"true":void 0,onChange:y=>k({title:y.target.value}),onBlur:()=>g("title")})),b?a("span",{className:"capital-automation-fielderror",role:"alert"},b):null,a("p",{className:"capital-automation-hint"},e.newTaskHint),a(ra,{label:e.descriptionField,note:e.charCount.replace("{n}",String(Array.from(s.description??"").length)).replace("{max}",String(va))},a("input",{value:s.description,maxLength:va,placeholder:e.descriptionPlaceholder,onChange:y=>k({description:y.target.value})})),a("div",null,a("span",{className:"capital-automation-formlabel"},e.triggerField),a(At,{trigger:s.trigger,onChange:y=>k({trigger:y}),meta:r,errorFor:h,touch:g})),a("div",null,a("span",{className:"capital-automation-formlabel"},e.instructionField),a("div",{className:"capital-automation-promptfield","data-invalid":f?"true":void 0},a("div",{className:"capital-automation-promptbox"},a(Da,{className:"capital-automation-texteditor",value:s.instruction,placeholder:e.instructionPlaceholder,ariaLabel:e.instructionField,invalid:f?!0:void 0,onChange:y=>k({instruction:y}),onBlur:()=>g("instruction")}),a("div",{className:"capital-automation-prompttoolbar"},a("div",{className:"capital-automation-toolbarfield"},a(Vt,{size:13}),a("span",null,e.workspaceField),a(ua,{value:s.workspaceId??"",options:ja(r,s.workspaceId).map(y=>({value:y.id,label:y.title})),onChange:y=>k({workspaceId:y}),label:e.workspaceField,size:"sm",align:"end"})),a("div",{className:"capital-automation-toolbarfield"},a("span",null,e.categoryField),a(ua,{value:s.category,options:Object.entries(e.category).map(([y,p])=>({value:y,label:p})),onChange:y=>k({category:y}),label:e.categoryField,size:"sm",align:"end"})),a("span",{className:"capital-automation-presetchip",title:e.presetHint},a(lt,{size:12}),e.presetValue))),f?a("span",{className:"capital-automation-fielderror",role:"alert"},f):null)),r?.workspaceError?a("p",{className:"capital-automation-hint","data-tone":"error"},e.workspaceUnavailable):null,a("details",{className:"capital-automation-advanced"},a("summary",null,e.advanced),a("div",{className:"capital-automation-advancedbody"},a("div",{className:"capital-automation-formgrid"},a(Z,{label:e.runTimeout,value:s.limits.runTimeoutMinutes,min:F[0],max:F[1],error:h("runTimeoutMinutes"),onBlur:()=>g("runTimeoutMinutes"),onChange:y=>k(p=>({limits:{...p.limits,runTimeoutMinutes:y}}))}),a(Z,{label:e.idleTimeout,value:s.limits.idleTimeoutMinutes,min:O[0],max:O[1],error:h("idleTimeoutMinutes"),onBlur:()=>g("idleTimeoutMinutes"),onChange:y=>k(p=>({limits:{...p.limits,idleTimeoutMinutes:y}}))}),a(Z,{label:e.maxSteps,value:s.limits.maxSteps,min:D[0],max:D[1],error:h("maxSteps"),onBlur:()=>g("maxSteps"),onChange:y=>k(p=>({limits:{...p.limits,maxSteps:y}}))}),a(Z,{label:e.maxToolCalls,value:s.limits.maxToolCalls,min:E[0],max:E[1],error:h("maxToolCalls"),onBlur:()=>g("maxToolCalls"),onChange:y=>k(p=>({limits:{...p.limits,maxToolCalls:y}}))})),a("p",{className:"capital-automation-hint"},e.advancedHint))),a("div",null,a("span",{className:"capital-automation-formlabel"},e.notifyField),a("div",{className:"capital-automation-switchlist"},a(aa,{label:e.notifyInApp,checked:s.notifications.inApp,onChange:y=>k(p=>({notifications:{...p.notifications,inApp:y}}))}),a(aa,{label:e.notifyFailure,checked:s.notifications.onFailure,onChange:y=>k(p=>({notifications:{...p.notifications,onFailure:y}}))}),a(aa,{label:e.notifySuccess,checked:s.notifications.onSuccess,onChange:y=>k(p=>({notifications:{...p.notifications,onSuccess:y}}))})),a("p",{className:"capital-automation-hint"},e.notifyHint)),x.length>0?a("p",{className:"capital-automation-error",role:"alert"},x):null)):null}function ti(i){let{confirm:t,busy:n,error:o,onCancel:l,onConfirm:r}=i,s=t!==null,d=t?.kind==="cancel-run",u=t?.kind==="delete",c=d?e.cancelRunConfirmTitle:u?e.confirmDeleteTitle:e.confirmHibernateTitle,x=d?e.cancelRunConfirmBody:u?e.confirmDeleteBody:e.confirmHibernateBody,v=d?e.cancelRunConfirm:u?e.confirmDelete:e.confirmHibernate;return a(Pa,{open:s,onClose:()=>{n||l()},title:c,closeLabel:e.close,className:"capital-automation-modal capital-automation-modal-narrow",footer:a("div",{className:"capital-automation-formactions",style:{borderTop:0,paddingTop:0}},a("button",{type:"button",className:"capital-automation-btn",disabled:n,onClick:l},e.cancel),a("button",{type:"button",className:"capital-automation-btn","data-variant":"danger",disabled:n,onClick:r},n?e.processing:v))},a("div",null,a("p",{className:"capital-automation-policy"},x),o.length>0?a("p",{className:"capital-automation-error",role:"alert",style:{marginTop:8}},o):null))}function ei(i){let{open:t,onClose:n,notifications:o,onMarkAllRead:l,onOpenTask:r,busy:s}=i,d=o.filter(u=>u.readAt===void 0).length;return a(Pa,{open:t,onClose:n,title:e.notificationsTitle,closeLabel:e.close,className:"capital-automation-modal",contentClassName:"capital-automation-modal-content",footer:a("div",{className:"capital-automation-formactions",style:{borderTop:0,paddingTop:0}},a("span",{className:"capital-automation-formstatus"},d>0?e.notificationsUnread.replace("{n}",String(d)):o.length>0?e.allRead:e.notificationsEmpty),a("button",{type:"button",className:"capital-automation-btn",disabled:s||d===0,onClick:l},e.markRead),a("button",{type:"button",className:"capital-automation-btn","data-variant":"primary",onClick:n},e.close))},o.length===0?a("div",{className:"capital-automation-empty"},a("span",{className:"capital-automation-emptyicon"},a(Ea,{size:19})),a("h3",null,e.notificationsEmpty),a("p",null,e.notificationsHint)):a("div",null,a("p",{className:"capital-automation-hint",style:{marginBottom:4}},e.notificationsHint),o.map(u=>a(Ot,{key:u.id,item:u,onOpenTask:r,onClick:u.taskId===void 0?void 0:()=>r(u.taskId)}))))}function ii(i){let{api:t,openSession:n}=i,[o,l]=z(null),[r,s]=z([]),[d,u]=z([]),[c,x]=z([]),[v,w]=z(0),[h,g]=z(null),[N,b]=z(null),[f,k]=z("tasks"),[F,O]=z("overview"),[D,E]=z(!1),[B,y]=z(!1),[p,_]=z(null),[G,C]=z(!1),[A,J]=z(""),[V,pa]=z(null),[ea,ia]=z(!1),[X,H]=z(""),[ma,W]=z(""),R=q(!1),I=q([]),M=q(null),K=q(null),na=q(0),P=q(0),Va=q(null);j(()=>{if(X.length===0)return;let m=setTimeout(()=>H(""),3200);return()=>clearTimeout(m)},[X]);async function U(){if(K.current!==null)return K.current;let m=na.current+1;na.current=m;let T=(async()=>{try{let[$,Qa,Ja,fa]=await Promise.all([t.meta(),t.tasks(),t.runs("?limit=200"),t.notifications()]);if(!R.current||m!==na.current)return;let Ca=Array.isArray(Qa.tasks)?Qa.tasks:[];l($),I.current=Ca,s(Ca),u(Array.isArray(Ja.runs)?Ja.runs:[]),x(Array.isArray(fa.notifications)?fa.notifications:[]),w(typeof fa.unread=="number"?fa.unread:0),W("");let ba=M.current,ha=ba!==null&&Ca.some(Pt=>Pt.id===ba)?ba:null;ha!==ba&&(M.current=ha,P.current+=1,b(null),g(ha),ha===null&&O("overview"))}catch($){R.current&&m===na.current&&W($.message??e.errorGeneric)}})();K.current=T;try{await T}finally{K.current===T&&(K.current=null)}}async function ga(m){let T=P.current+1;P.current=T;try{let $=await t.detail(m);if(!R.current||T!==P.current||M.current!==m)return;b($)}catch($){R.current&&T===P.current&&M.current===m&&W($.message??e.errorGeneric)}}function Na(){let m=Va.current;m!==null&&typeof m.scrollTo=="function"&&m.scrollTo({top:0,behavior:"auto"})}function Q(m,T="overview"){M.current=m,P.current+=1,O(T),b(null),g(m),k("tasks"),Na()}function Dt(){M.current=null,P.current+=1,b(null),g(null),O("overview"),Na()}function Ta(m){m===f&&m==="tasks"&&M.current!==null||(m==="runs"&&M.current!==null&&(M.current=null,P.current+=1,b(null),g(null)),k(m),Na())}function oa(m,T,$){J(""),_({kind:m,task:T,run:$})}async function Wa(m,T){if(V===null){pa(m.id),W("");try{if(T==="run")await t.run(m.id),H(e.runSubmitted.replace("{title}",m.title));else if(T==="copy"){let $=await t.action(m.id,"copy");if(H(e.copied.replace("{title}",m.title)),$?.task?.id){await U(),Q($.task.id,"config");return}}else await t.action(m.id,T),H(T==="pause"?e.paused.replace("{title}",m.title):mt(m));await U(),M.current===m.id&&await ga(m.id)}catch($){W($.message??e.errorGeneric)}finally{pa(null)}}}async function Et(m){await Wa(m,"activate")}async function $t(){if(p===null||G)return;let{kind:m,task:T}=p;C(!0),J("");try{m==="cancel-run"?(await t.cancel(p.run.id),H(e.runCanceled)):m==="delete"?(await t.remove(T.id),H(e.deleted.replace("{title}",T.title))):(await t.action(T.id,"hibernate"),H(e.hibernated.replace("{title}",T.title))),_(null),J(""),await U(),M.current===T.id&&await ga(T.id)}catch($){J($.message??e.errorGeneric)}finally{C(!1)}}async function Mt(){if(!ea){ia(!0);try{await t.markRead({all:!0}),H(e.markReadDone),await U()}catch(m){W(m.message??e.errorGeneric)}finally{ia(!1)}}}async function Lt(m){if(y(!1),I.current.some(T=>T.id===m)){Q(m);return}await U(),I.current.some(T=>T.id===m)&&Q(m)}j(()=>{R.current=!0,U();let m=setInterval(()=>{document.visibilityState!=="hidden"&&U()},15e3),T=()=>{document.visibilityState==="visible"&&U()};return document.addEventListener?.("visibilitychange",T),()=>{R.current=!1,na.current+=1,P.current+=1,K.current=null,clearInterval(m),document.removeEventListener?.("visibilitychange",T)}},[]),j(()=>{if(h===null){b(null),P.current+=1;return}return b(null),ga(h),()=>{P.current+=1}},[h]);let Ka=o?.scheduler?.state==="active",Ya=o?.storage?.state!=="unavailable",Bt=r.filter(m=>m.origin==="builtin"&&m.state==="dormant"),_t=r.find(m=>m.id===h),Ht=f==="tasks"&&h!==null,Za=o===null&&ma.length===0;return a("div",{className:"capital-automation-page"},Ht?null:a(Oe,{tab:f,onTab:Ta,onNewTask:()=>E(!0),unread:v,onOpenInbox:()=>y(!0)}),a(De,{meta:o,loadError:ma,onRetry:()=>{U()}}),a("div",{className:"capital-automation-scroll",ref:Va},a("div",{className:"capital-automation-container"},f==="tasks"?h!==null?a("div",null,a(Je,{onBack:Dt}),N===null?a("div",{className:"capital-automation-empty"},e.loading):a(Xe,{detail:N,meta:o,api:t,openSession:n,tab:F,onTab:O,onRequestConfirm:oa,onRequestCancelRun:m=>oa("cancel-run",_t??{id:m.taskId,title:m.taskTitle},m),schedulerActive:Ka,storageReady:Ya,onChanged:async m=>{await U();let T=m??M.current;T!==null&&M.current===T&&await ga(T)}})):Za?a(Ue):a(je,{tasks:r,templates:Bt,runs:d,onOpenTask:Q,onNewTask:()=>E(!0),onEnableTemplate:m=>{Et(m)},onAction:(m,T)=>{Wa(m,T)},onRequestConfirm:oa,onEdit:m=>Q(m,"config"),onGoRuns:()=>Ta("runs"),onRequestCancelRun:(m,T)=>oa("cancel-run",m,T),schedulerActive:Ka,storageReady:Ya,busyTaskId:V}):Za?a(qe):a(Ke,{runs:d,tasks:r,onCancel:m=>oa("cancel-run",{id:m.taskId,title:m.taskTitle},m),onOpenSession:n,onOpenTask:m=>{I.current.some(T=>T.id===m)&&Q(m)},onGoTasks:()=>Ta("tasks"),onNewTask:()=>E(!0),busy:G}))),a(ai,{open:D,onClose:()=>E(!1),api:t,meta:o,onCreated:async m=>{E(!1),H(e.created),await U(),m!==null&&I.current.some(T=>T.id===m)&&Q(m)}}),a(ei,{open:B,onClose:()=>y(!1),notifications:c,onMarkAllRead:()=>{Mt()},onOpenTask:m=>{Lt(m)},busy:ea}),a(ti,{confirm:p,busy:G,error:A,onCancel:()=>{G||(_(null),J(""))},onConfirm:()=>{$t()}}),X.length>0?a("div",{className:"capital-automation-toast",role:"status"},X):null)}function ni(){return a($a,{width:18,height:18})}function oi(i){let t=se(),n=o=>{try{i.get("uiWorkspace")?.openSession?.(o)}catch{}};i.effect(()=>re(),`${Fa}: styles`),i.slots.inject("main",()=>i.slots.register({name:"main",key:at,inject:()=>({api:t,openSession:n})},ii)),i.slots.inject("sidebar.panellist",()=>i.slots.register({name:"sidebar.panellist",id:at,order:11,label:()=>e.panel},ni)),i.logger?.info?.(`${Fa}: \u5BA2\u6237\u7AEF\u534A\u8FB9\u5DF2\u6302\u8F7D\uFF08\u9875\u9762 + \u4FA7\u680F\u5165\u53E3\uFF09`)}exports.name=Fa;exports.inject=["slots"];exports.apply=oi;
404
+ `,document.head.appendChild(i),()=>i.remove()}function se(){async function i(t,n={}){let o=typeof AbortController=="function"?new AbortController:void 0,l=setTimeout(()=>o?.abort(),2e4),r,s;try{r=await fetch(`${ee}${t}`,{method:n.method??"GET",credentials:"same-origin",headers:n.body===void 0?{}:{"content-type":"application/json"},body:n.body===void 0?void 0:JSON.stringify(n.body),...o===void 0?{}:{signal:o.signal}});try{s=await r.json()}catch{throw new Error(e.errorGeneric)}}finally{clearTimeout(l)}if(!r.ok||s?.ok===!1){let d=new Error(s?.message??e.errorGeneric);throw d.code=s?.code,d}return s}return{meta:()=>i("/meta"),tasks:()=>i("/tasks"),detail:t=>i(`/tasks/${encodeURIComponent(t)}`),create:t=>i("/tasks",{method:"POST",body:t}),patch:(t,n)=>i(`/tasks/${encodeURIComponent(t)}`,{method:"PATCH",body:n}),remove:t=>i(`/tasks/${encodeURIComponent(t)}`,{method:"DELETE"}),action:(t,n)=>i(`/tasks/${encodeURIComponent(t)}/${n}`,{method:"POST"}),run:t=>i(`/tasks/${encodeURIComponent(t)}/run`,{method:"POST"}),cancel:t=>i(`/runs/${encodeURIComponent(t)}/cancel`,{method:"POST"}),runs:(t="")=>i(`/runs${t}`),notifications:()=>i("/notifications"),markRead:t=>i("/notifications/read",{method:"POST",body:t})}}function ct(i){return e.status[i]??i}function ut(i){return e.state[i]??i}function dt(i){return i?.state==="active"?e.pause:i?.state==="dormant"?e.add:e.activate}function pt(i){return i?.state==="active"?Jt:i?.state==="dormant"?Ha:_a}function mt(i){return(i?.state==="dormant"?e.added:e.activated).replace("{title}",i?.title??"")}function sa(i){return e.category[i]??i}function gt(i,t=12){let n=String(i??""),o=Array.from(n);return o.length>t?`${o.slice(0,t).join("")}\u2026`:n}function ce(i){if(i==null||i.available===!1)return e.calendarSourceNone;let t=i.source==="szse"?e.calendarSourceSzse:i.source==="bundled"?e.calendarSourceBundled:e.calendarSourceNone,n=i.through??e.calendarUnknown;return`${t} \xB7 ${e.calendarThrough.replace("{date}",n)}`}function L(i){return i!=null&&ie.includes(i.status)}function ta(i){return ne.includes(i)}function Ua(i){return i?.origin==="custom"?"custom":i?.category??"news"}function ue(i){return i?.origin==="custom"?lt:i?.sourceBuiltinId==="morning-brief"?Zt:i?.category==="market"?Wt:i?.category==="review"?Qt:i?.category==="research"?ot:Kt}function da(i){let{task:t,size:n=34,large:o=!1}=i,l=ue(t),r=o?44:n;return a("span",{className:"capital-automation-glyph","data-tone":Ua(t),style:{width:r,height:r,borderRadius:o?13:10}},a(l,{size:o?22:17}))}function ft(i){let{state:t,running:n}=i,o=n?e.status.running:ut(t);return a("span",{className:"capital-automation-state","data-state":n?"running":t},a("span",{className:"capital-automation-statedot"}),o)}function de(i,t={}){if(typeof i!="string"||i.length===0)return e.never;let n=new Date(i);return Number.isNaN(n.getTime())?i:new Intl.DateTimeFormat("zh-CN",{year:t.short===!0?void 0:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hourCycle:"h23",...typeof t.timeZone=="string"&&t.timeZone.length>0?{timeZone:t.timeZone}:{}}).format(n)}function qa(i,t){return de(i,{short:!0,timeZone:t})}function bt(i){if(typeof i!="number"||i<0)return e.never;let t=Math.round(i/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);return n<60?`${n}m ${t%60}s`:`${Math.floor(n/60)}h ${n%60}m`}function ht(i){if(typeof i!="string"||i.length===0)return"";let t=Date.parse(i);if(Number.isNaN(t))return"";let n=t-Date.now(),o=Math.abs(n);if(o<45e3)return e.relativeNow;let l=[[864e5,"day"],[36e5,"hour"],[6e4,"minute"]],r=new Intl.RelativeTimeFormat("zh-CN",{numeric:"auto"});for(let[s,d]of l)if(o>=s||d==="minute")return r.format(Math.round(n/s),d);return""}function Sa(i){return new Intl.DateTimeFormat("zh-CN",{month:"short",day:"numeric"}).format(i)}function xt(i){return(i.weekdays??[]).slice().sort((t,n)=>t-n).map(t=>la.find(n=>n.value===t)?.label??"").join("\u3001")}function vt(i){return i.dayOfMonth==="last"?"\u6BCF\u6708\u6700\u540E\u4E00\u5929":`\u6BCF\u6708 ${i.dayOfMonth??1} \u65E5`}function yt(i){if(i==null)return e.never;let t=i.tradingDaysOnly===!0?e.tradingSuffix:"";return i.cadence==="weekly"?`${e.weeklyPrefix}${xt(i)} ${i.time}${t}`:i.cadence==="monthly"?`${vt(i)} ${i.time}${t}`:i.cadence==="once"?`${Nt(i.date)} ${i.time}${t}`:`${e.dailyPrefix} ${i.time}${t}`}function pe(i){return i?.cadence==="weekly"?`${e.weeklyPrefix}${xt(i)}`:i?.cadence==="monthly"?vt(i):i?.cadence==="once"?Nt(i.date):e.dailyPrefix}function wt(i){if(i?.state==="dormant")return{value:e.nextRunDormant,sub:e.notScheduled};if(i?.state==="paused")return{value:e.nextRunPaused,sub:e.notScheduled};if(i?.trigger?.cadence==="once"&&!i.nextRunAt&&i.nextRunUnavailable!==!0)return we(i.trigger)?{value:e.onceEnded,sub:e.onceEndedHint}:{value:e.onceSkipped,sub:e.onceSkippedHint};let t=i?.nextRunLocal??(i?.nextRunUnavailable?e.calendarUnavailable:e.never),n=i?.nextRunAt?ht(i.nextRunAt):i?.nextRunUnavailable?e.nextRunUnavailable:e.never;return{value:t,sub:n}}function me(i,t){if(i==null)return{value:e.neverRun,sub:e.lastRunEmpty};let n=L(i),o=[qa(i.queuedAt,t)];!n&&typeof i.durationMs=="number"&&o.push(bt(i.durationMs));let l=Array.isArray(i.errors)?i.errors.length:0;l>0&&o.push(e.runErrors.replace("{n}",String(l)));let r;return i.status==="succeeded"?r="ok":ta(i.status)?r="error":n?r="running":oe.includes(i.status)&&(r="warn"),{value:ct(i.status),sub:o.filter(Boolean).join(" \xB7 "),tone:r}}function ja(i,t){let n=[{id:"",title:e.workspaceDefault}],o=Array.isArray(i?.workspaces)?i.workspaces:[];for(let l of o)typeof l?.id!="string"||l.id.length===0||n.push({id:l.id,title:l.default===!0?`${l.title}\uFF08\u9ED8\u8BA4\uFF09`:l.title});return typeof t=="string"&&t.length>0&&!n.some(l=>l.id===t)&&n.push({id:t,title:e.workspaceMissing}),n}function ge(i,t){return typeof t!="string"||t.length===0?e.workspaceDefault:ja(i,t).find(n=>n.id===t)?.title??e.workspaceMissing}function fe(i){let t=String(i??"").trim();return(t.length>0&&!Ra.includes(t)?[t,...Ra]:Ra).map(o=>({value:o,label:o}))}function ka(i,t,n){return new Date(Date.UTC(i,t-1,n)).toISOString().slice(0,10)}function be(i){try{let t=new Intl.DateTimeFormat("en-US",{timeZone:i,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(new Date),n=o=>Number(t.find(l=>l.type===o)?.value);return ka(n("year"),n("month"),n("day"))}catch{return new Date().toISOString().slice(0,10)}}function he(i){let[t,n,o]=be(i).split("-").map(Number);return ka(t,n,o+1)}function xe(i){let t=i;for(let n=0;n<7;n+=1){let o=new Date(`${t}T00:00:00Z`).getUTCDay();if(o!==0&&o!==6)return t;let[l,r,s]=t.split("-").map(Number);t=ka(l,r,s+1)}return t}function ve(i,t){let n=he(i);return t===!0?xe(n):n}function ye(i){try{let t=new Intl.DateTimeFormat("en-US",{timeZone:i,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(new Date),n=o=>Number(t.find(l=>l.type===o)?.value);return{date:ka(n("year"),n("month"),n("day")),minutes:n("hour")*60+n("minute")}}catch{let t=new Date;return{date:t.toISOString().slice(0,10),minutes:t.getUTCHours()*60+t.getUTCMinutes()}}}function we(i){if(i?.cadence!=="once"||!kt(i.date))return!1;let t=ye(i.timezone);if(i.date!==t.date)return i.date<t.date;let[n,o]=String(i.time??"").split(":").map(Number);return!Number.isInteger(n)||!Number.isInteger(o)?!1:t.minutes>=n*60+o}function kt(i){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(String(i??""));if(t===null)return!1;let n=Number(t[1]),o=Number(t[2]),l=Number(t[3]);if(n<1970||o<1||o>12||l<1||l>31)return!1;let r=new Date(Date.UTC(n,o-1,l));return r.getUTCFullYear()===n&&r.getUTCMonth()===o-1&&r.getUTCDate()===l}function Nt(i){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(String(i??""));return t===null?String(i??""):`${Number(t[1])} \u5E74 ${Number(t[2])} \u6708 ${Number(t[3])} \u65E5`}function ca(i){let n={kind:"schedule",cadence:Object.prototype.hasOwnProperty.call(e.cadence,i?.cadence)?i.cadence:"daily",time:i?.time??"09:00",timezone:i?.timezone??"Asia/Shanghai",tradingDaysOnly:i?.tradingDaysOnly===!0};if(n.cadence==="weekly"&&(n.weekdays=(i?.weekdays??[1,3,5]).slice().sort((o,l)=>o-l)),n.cadence==="monthly"){let o=i?.dayOfMonth;n.dayOfMonth=o==="last"||Number.isInteger(o)&&o>=1&&o<=31?o:1}return n.cadence==="once"&&(n.date=typeof i?.date=="string"?i.date:ve(n.timezone,n.tradingDaysOnly)),n}function ke(i,t){let n=ca({...t,cadence:i});return i==="weekly"&&(n.weekdays??[]).length===0&&(n.weekdays=[1,3,5]),n}function it(){return{title:"\u6211\u7684\u6295\u7814\u4EFB\u52A1",description:"",instruction:"",category:"research",trigger:{kind:"schedule",cadence:"daily",time:"09:00",timezone:"Asia/Shanghai",tradingDaysOnly:!0},workspaceId:"",limits:{...le},notifications:{inApp:!0,onFailure:!0,onSuccess:!1}}}function ya(i){return{title:String(i.title??"").trim(),description:i.description??"",instruction:i.instruction??"",category:i.category,trigger:ca(i.trigger),workspaceId:i.workspaceId??"",limits:i.limits,notifications:i.notifications}}function Ne(i,t){return JSON.stringify(ya(i))===JSON.stringify(ya(t))}function Te(i){let t=new Date;t.setHours(0,0,0,0),t.setDate(t.getDate()-(xa-1));let n=[],o=new Map;for(let d=0;d<xa;d+=1){let u=new Date(t);u.setDate(t.getDate()+d);let c=`${u.getFullYear()}-${u.getMonth()}-${u.getDate()}`,x={date:u,key:c,runs:[]};n.push(x),o.set(c,x)}let l=0,r=0,s=0;for(let d of i){let u=new Date(d.queuedAt);if(Number.isNaN(u.getTime())||u<t)continue;d.status==="succeeded"&&(l+=1),ta(d.status)&&(r+=1),s+=1;let c=`${u.getFullYear()}-${u.getMonth()}-${u.getDate()}`,x=o.get(c);x!==void 0&&x.runs.push(d)}return{days:n,success:l,failure:r,total:s}}function Ce(i){return i.runs.some(t=>L(t))?"active":i.runs.some(t=>ta(t.status))?"error":i.runs.some(t=>t.status==="succeeded")?"ok":i.runs.length>0?"warn":null}function za(i){return i==="run_failed"||i==="run_timeout"?"error":i==="scheduler_standby"||i==="calendar_unavailable"?"warn":"neutral"}function Re(i){return typeof i.message=="string"&&i.message.length>0?i.message:i.kind==="run_failed"?e.notificationFallbackFailed:i.kind==="run_timeout"?e.notificationFallbackTimeout:i.kind==="run_succeeded"?e.notificationFallbackSuccess:i.kind==="scheduler_standby"?e.notificationFallbackStandby:i.kind==="calendar_unavailable"?e.notificationFallbackCalendar:i.kind==="skipped"?e.notificationFallbackSkipped:""}function Se(i,t){return!Ne(i,t)}function ze(i){let t={};String(i.title??"").trim().length===0&&(t.title=e.titleRequired),String(i.instruction??"").trim().length===0&&(t.instruction=e.instructionRequired);let n=i.trigger??{};/^([01]\d|2[0-3]):[0-5]\d$/.test(n.time??"")||(t.time=e.invalidTime);let o=String(n.timezone??"").trim();if(o.length===0)t.timezone=e.invalidTimezone;else try{new Intl.DateTimeFormat("zh-CN",{timeZone:o})}catch{t.timezone=e.invalidTimezoneValue}n.cadence==="weekly"&&(n.weekdays??[]).length===0&&(t.weekdays=e.weekdayRequired),n.cadence==="once"&&(typeof n.date!="string"||n.date.length===0?t.date=e.dateRequired:kt(n.date)||(t.date=e.invalidDate));let l=i.limits??{};for(let r of["runTimeoutMinutes","idleTimeoutMinutes","maxSteps","maxToolCalls"])Number.isFinite(l[r])||(t[r]=e.invalidLimit);return t}function Tt(i,t){let[n,o]=z({}),l=ze(i);return j(()=>{o({})},[t]),{issues:l,errorFor:c=>n[c]===!0?l[c]:void 0,touch:c=>o(x=>x[c]===!0?x:{...x,[c]:!0}),touchAll:()=>o(c=>{let x={...c};for(let v of Object.keys(l))x[v]=!0;return x}),clear:()=>o({})}}function Y(i,t,n){let o=i?.execution?.limits?.[t];return Array.isArray(o)&&o.length===2?o:n}function Ct(i){let{runs:t,onViewAll:n,showLink:o=!0}=i,{days:l,success:r,failure:s,total:d}=Te(t);return a("section",{className:"capital-automation-card capital-automation-history","aria-label":e.runHistory},a("div",{className:"capital-automation-historyhead"},a("div",{className:"capital-automation-historytitle"},a("h2",null,e.runHistory),a("span",null,e.last30Days)),a("div",{className:"capital-automation-historystats"},a("span",{className:"capital-automation-historystat","data-tone":"ok"},a("span",{className:"capital-automation-statusdot"}),e.successCount.replace("{n}",String(r))),a("span",{className:"capital-automation-historystat","data-tone":"error"},a("span",{className:"capital-automation-statusdot"}),e.failureCount.replace("{n}",String(s))),o&&n!==void 0?a("button",{type:"button",className:"capital-automation-historylink",onClick:n},e.runCount.replace("{n}",String(d)),a(La,{size:13})):a("span",{className:"capital-automation-historystat"},e.runCount.replace("{n}",String(d))))),a("div",{className:"capital-automation-timeline","aria-hidden":"true"},l.map(u=>{let c=Ce(u);return a("div",{key:u.key,className:"capital-automation-timeline-day",title:`${Sa(u.date)}\uFF1A${u.runs.length} \u6B21\u8FD0\u884C`},c===null?null:a("span",{className:"capital-automation-timeline-dot","data-tone":c}))})),a("div",{className:"capital-automation-timelinelabels"},a("span",null,Sa(l[0].date)),a("span",null,Sa(l[l.length-1].date))),d===0?a("p",{className:"capital-automation-historyempty"},e.historyEmpty):null)}function Fe(i){let{status:t}=i;return a("span",{className:"capital-automation-runstatus","data-status":t},a("span",{className:"capital-automation-rundot"}),ct(t))}function Ae(i){let{run:t,task:n,onCancel:o,onOpenSession:l,onOpenTask:r,busy:s}=i,d=L(t),u=Array.isArray(t.errors)?t.errors.length:0,[c,x]=z(!1),v=`capital-automation-run-errors-${t.id}`,w=u>0?a("button",{type:"button",className:"capital-automation-runerrorbadge","data-tone":ta(t.status)?"error":"warn","aria-expanded":c?"true":"false","aria-controls":v,"aria-label":`${e.runErrors.replace("{n}",String(u))}\uFF0C${c?e.hideErrorDetails:e.showErrorDetails}`,title:c?e.hideErrorDetails:e.showErrorDetails,onClick:()=>x(b=>!b)},a(rt,{size:12}),e.runErrors.replace("{n}",String(u)),a(La,{size:12})):null;return a("div",{className:"capital-automation-run"},a("div",{className:"capital-automation-runhead"},a("div",{className:"capital-automation-runmain"},a("div",{className:"capital-automation-runline"},n!==void 0&&r!==void 0?a("button",{type:"button",className:"capital-automation-runtitle capital-automation-runmaintitle",onClick:()=>r(n.id)},n.title):a("span",{className:"capital-automation-runtitle"},t.taskTitle),a(Fe,{status:t.status})),a("div",{className:"capital-automation-runmetaline"},a("span",{className:"capital-automation-runmeta"},`${qa(t.queuedAt,n?.trigger?.timezone)} \xB7 ${t.trigger==="manual"?e.triggerManual:e.triggerScheduled}`),typeof t.durationMs=="number"?a("span",{className:"capital-automation-runmeta"},`${e.duration} ${bt(t.durationMs)}`):null,a("span",{className:"capital-automation-runmeta"},`${e.steps} ${t.steps} \xB7 ${e.tools} ${t.toolCalls}`),w)),a("div",{className:"capital-automation-runactions"},d&&typeof o=="function"?a("button",{type:"button",className:"capital-automation-btn","data-size":"sm","data-variant":"danger",disabled:s,onClick:()=>o(t)},e.cancelRun):t.sessionId&&l?a("button",{type:"button",className:"capital-automation-btn","data-size":"sm","data-variant":"primary",onClick:()=>l(t.sessionId)},a(ae,{size:13}),e.openSession):null)),c&&u>0?a("div",{id:v,className:"capital-automation-runerrors",role:"region","aria-label":e.errorDetailsLabel},t.errors.map((b,g)=>a("div",{key:`${t.id}-error-${g}`,className:"capital-automation-runerror","data-severity":b.severity},a("span",{className:"capital-automation-runerrordot"}),a("span",{className:"capital-automation-runerrormessage"},b.message),b.code?a("code",{className:"capital-automation-runerrorcode",title:b.code},b.code):null))):null)}function Ga(i){let{runs:t,tasks:n,onCancel:o,onOpenSession:l,onOpenTask:r,busy:s,compact:d}=i,u=new Map(n.map(c=>[c.id,c]));return t.length===0?d?a("p",{className:"capital-automation-hint"},e.detailNoRuns):a("div",{className:"capital-automation-empty"},a("span",{className:"capital-automation-emptyicon"},a(Ba,{size:19})),a("h3",null,e.detailNoRuns),a("p",null,e.runsEmptyBody)):a("div",{className:"capital-automation-runs"},t.map(c=>a(Ae,{key:c.id,run:c,task:u.get(c.taskId),onCancel:o,onOpenSession:l,onOpenTask:r,busy:s})))}function Ie(i){let{unread:t,onClick:n}=i;return a("button",{type:"button",className:"capital-automation-btn","data-variant":"ghost",onClick:n,title:e.notificationsTitle,"aria-label":e.notificationsTitle},a(Ea,{size:14}),a("span",{className:"capital-automation-btnlabel"},e.notifications),t>0?a("span",{className:"capital-automation-count"},String(t>99?"99+":t)):null)}function Oe(i){let{tab:t,onTab:n,onNewTask:o,unread:l,onOpenInbox:r}=i;return a("header",{className:"capital-automation-head"},a("div",{className:"capital-automation-headinner"},a("div",{className:"capital-automation-topbar"},a("div",{className:"capital-automation-brand"},a("span",{className:"capital-automation-brandmark","aria-hidden":"true"},a($a,{size:16})),a("h1",null,e.title)),a("div",{className:"capital-automation-tabs",role:"tablist","aria-label":e.title},["tasks","runs"].map(s=>a("button",{key:s,type:"button",role:"tab",className:"capital-automation-tab","aria-selected":t===s?"true":"false",onClick:()=>n(s)},e.tabs[s]))),a("div",{className:"capital-automation-topactions"},a(Ie,{unread:l,onClick:r}),a("button",{type:"button",className:"capital-automation-btn","data-variant":"contrast",onClick:o,title:e.newTask,"aria-label":e.newTask},a(Ha,{size:14}),a("span",{className:"capital-automation-btnlabel"},e.newTask))))))}function De(i){let{meta:t,loadError:n,onRetry:o}=i,l=[];t?.storage?.state==="unavailable"&&l.push(a("div",{key:"storage",className:"capital-automation-banner","data-tone":"error",role:"alert"},`${e.storageBanner}${t.storage.error?`\uFF1A${t.storage.error}`:""}`));let r=t?.scheduler?.state;t!=null&&t.storage?.state!=="unavailable"&&(r==="standby"||r==="stopped")&&l.push(a("div",{key:"standby",className:"capital-automation-banner","data-tone":"warn",role:"status"},e.standbyBanner));let s=t!=null&&t.calendar?.available===!1;t!=null&&t.storage?.state!=="unavailable"&&s&&l.push(a("div",{key:"calendar",className:"capital-automation-banner","data-tone":"warn",role:"status"},e.calendarBanner));let d=t?.calendar?.coverageDays;return t!=null&&t.storage?.state!=="unavailable"&&!s&&typeof d=="number"&&d>=0&&d<30&&l.push(a("div",{key:"calendar-coverage",className:"capital-automation-banner","data-tone":"warn",role:"status"},e.calendarCoverageBanner.replace("{through}",t.calendar.through??e.calendarUnknown))),n.length>0&&l.push(a("div",{key:"load",className:"capital-automation-banner","data-tone":"error",role:"alert"},n,a("button",{type:"button",className:"capital-automation-btn","data-size":"sm",onClick:o},e.loadRetry))),l.length===0?null:a("div",{className:"capital-automation-headinner",style:{paddingBottom:0}},l)}function Rt(i){let{active:t,count:n,label:o,onClick:l}=i;return a("button",{type:"button",className:"capital-automation-filter","aria-pressed":t?"true":"false",onClick:l},a("span",{className:"capital-automation-filterlabel"},o),n>0?a("span",{className:"capital-automation-filtercount"},String(n)):null)}function Ee(i){let{task:t}=i,n=[[sa(t.category),Ua(t)]];return t.origin==="builtin"&&n.push([e.origin.builtin,void 0]),t.origin==="custom"&&n.push([e.origin.custom,void 0]),a("span",{className:"capital-automation-tasktags"},n.map(([o,l])=>a("span",{key:o,className:"capital-automation-tag","data-tone":l,title:o},gt(o))))}function St(i){let{task:t,open:n,onToggle:o,onClose:l,onEdit:r,onAction:s,onRequestConfirm:d,canRun:u,running:c,busy:x,disabled:v,align:w="end"}=i,b=t.state==="active"?"pause":"activate",g=x||v===!0,N=[{id:"edit",label:e.edit,icon:a(jt,{size:14}),disabled:x},{id:b,label:dt(t),icon:a(pt(t),{size:14}),disabled:g},{id:"run",label:e.runNow,icon:a(_a,{size:14}),disabled:g||!u||c},...t.origin==="builtin"?[{id:"copy",label:e.copy,icon:a(qt,{size:14}),disabled:g}]:[]],h=[];return t.origin==="builtin"&&t.state!=="dormant"&&h.push(a(Xa,{key:"hibernate",separatorBefore:!0,icon:a(Xt,{size:14}),disabled:g||c,onSelect:()=>{l(),d("hibernate",t)}},e.hibernate)),t.origin==="custom"&&h.push(a(Xa,{key:"remove",danger:!0,separatorBefore:!0,icon:a(te,{size:14}),disabled:g||c,onSelect:()=>{l(),d("delete",t)}},e.remove)),a(wa,{open:n,anchor:a("button",{type:"button",className:"capital-automation-iconbtn",disabled:x,title:e.more,"aria-label":`${e.more}\uFF1A${t.title}`,"aria-haspopup":"menu","aria-expanded":n?"true":"false",onClick:o},a(Gt,{size:16})),items:N,children:h,onSelect:f=>{if(l(),f==="edit"){r(t.id);return}s(t,f)},onClose:l,align:w,portal:!0})}function $e(i){let{task:t,onOpen:n,menuOpen:o,onMenuToggle:l,onMenuClose:r,onEdit:s,onAction:d,onRequestConfirm:u,canRun:c,busy:x,mutationsDisabled:v}=i,w=t.lastRun,b=L(w),g=wt(t);return a("div",{className:"capital-automation-trow"},a("button",{type:"button",className:"capital-automation-trowmain",onClick:()=>n(t.id)},a("span",{className:"capital-automation-cell capital-automation-identity"},a(da,{task:t}),a("span",{className:"capital-automation-identitytext"},a("span",{className:"capital-automation-tasktitlerow"},a("span",{className:"capital-automation-tasktitle"},t.title),a(Ee,{task:t}),(t.unread??0)>0?a("span",{className:"capital-automation-count",title:e.unread},String(t.unread)):null),a("span",{className:"capital-automation-taskdesc"},t.description||e.subtitle))),a("span",{className:"capital-automation-cell","data-cell":"schedule"},a("span",{className:"capital-automation-schedule"},yt(t.trigger)),a("span",{className:"capital-automation-schedulesub"},t.trigger?.timezone??"")),a("span",{className:"capital-automation-cell","data-cell":"next"},a("span",{className:"capital-automation-nextmain"},g.value),a("span",{className:"capital-automation-nextsub"},g.sub)),a("span",{className:"capital-automation-cell"},a(ft,{state:t.state,running:b}))),a("div",{className:"capital-automation-trowmenu"},a(St,{task:t,open:o,onToggle:l,onClose:r,onEdit:s,onAction:d,onRequestConfirm:u,canRun:c,running:b,busy:x,disabled:v})))}function Me(i){let{tasks:t,onOpen:n,onAction:o,onRequestConfirm:l,onEdit:r,schedulerActive:s,storageReady:d,busyTaskId:u}=i,[c,x]=z(null),v=d&&s;return a("div",{className:"capital-automation-table","aria-label":e.taskSection},a("div",{className:"capital-automation-thead"},a("div",{className:"capital-automation-theadmain"},a("span",null,e.taskSection),a("span",null,e.triggerSummary),a("span",null,e.nextRun),a("span",null,e.stateLabel)),a("span",null)),t.map(w=>a($e,{key:w.id,task:w,onOpen:n,menuOpen:c===w.id,onMenuToggle:()=>x(b=>b===w.id?null:w.id),onMenuClose:()=>x(null),onEdit:r,onAction:o,onRequestConfirm:l,canRun:v,busy:u===w.id,mutationsDisabled:!d})))}function Le(i){let{task:t,onOpen:n,onEnable:o,busy:l,disabled:r}=i;return a("article",{className:"capital-automation-template"},a("button",{type:"button",className:"capital-automation-templatemain",onClick:()=>n(t.id)},a(da,{task:t,size:38}),a("span",{className:"capital-automation-templatebody"},a("span",{className:"capital-automation-templatetitlerow"},a("strong",null,t.title),a("span",{className:"capital-automation-tag","data-tone":Ua(t),title:sa(t.category)},gt(sa(t.category)))),a("span",{className:"capital-automation-templatedesc"},t.description||e.subtitle))),a("div",{className:"capital-automation-templatefoot"},a("span",{className:"capital-automation-templatemeta"},a(Ba,{size:12}),`${e.templateMeta} \xB7 ${yt(t.trigger)}`),a("button",{type:"button",className:"capital-automation-btn","data-size":"sm","data-variant":"primary",onClick:()=>o(t),disabled:l||r},a(Ha,{size:12}),l?e.templateAdding:e.templateAdd)))}function Ia(i){let{title:t,body:n,action:o,actionLabel:l,icon:r}=i;return a("div",{className:"capital-automation-empty"},a("span",{className:"capital-automation-emptyicon"},a(r??$a,{size:19})),a("h3",null,t),a("p",null,n),o&&l?a("button",{type:"button",className:"capital-automation-btn",onClick:o},l):null)}function S(i){let{width:t="100%",height:n=10,radius:o=6}=i;return a("span",{className:"capital-automation-skeleton",style:{width:t,height:n,borderRadius:o},"aria-hidden":"true"})}function zt(){return a("section",{className:"capital-automation-card capital-automation-history","aria-hidden":"true"},a("div",{className:"capital-automation-historyhead"},a("div",{className:"capital-automation-historytitle"},a(S,{width:92,height:14}),a(S,{width:52,height:11})),a("div",{className:"capital-automation-historystats"},a(S,{width:64,height:12}),a(S,{width:64,height:12}),a(S,{width:56,height:12}))),a("div",{className:"capital-automation-skeletontimeline"},Array.from({length:xa},(i,t)=>a(S,{key:t,height:6+t*11%22,radius:2}))),a("div",{className:"capital-automation-timelinelabels"},a(S,{width:34,height:9}),a(S,{width:34,height:9})))}function Oa(i){let{trailing:t=[210,132]}=i;return a("div",{className:"capital-automation-sectionhead"},a(S,{width:78,height:14}),a(S,{width:210,height:11}),t.length===0?null:a("div",{className:"capital-automation-sectiontools"},t.map((n,o)=>a(S,{key:o,width:n,height:o===0?28:30,radius:999}))))}function Be(){return a("div",{className:"capital-automation-trow capital-automation-skeletonrow","aria-hidden":"true"},a("div",{className:"capital-automation-trowmain"},a("span",{className:"capital-automation-cell capital-automation-identity"},a(S,{width:34,height:34,radius:10}),a("span",{className:"capital-automation-skeletonstack"},a(S,{width:"52%",height:12}),a(S,{width:"82%",height:9}),a(S,{width:92,height:16,radius:999}))),a("span",{className:"capital-automation-cell","data-cell":"schedule"},a(S,{width:"64%",height:10}),a(S,{width:"42%",height:8})),a("span",{className:"capital-automation-cell","data-cell":"next"},a(S,{width:"58%",height:10}),a(S,{width:"36%",height:8})),a("span",{className:"capital-automation-cell"},a(S,{width:52,height:22,radius:999}))),a("div",{className:"capital-automation-trowmenu"},a(S,{width:18,height:18,radius:6})))}function _e(i){let{rows:t=4}=i;return a("div",{className:"capital-automation-table","aria-hidden":"true"},a("div",{className:"capital-automation-thead"},a("div",{className:"capital-automation-theadmain"},a(S,{width:"52%",height:9}),a(S,{width:"58%",height:9}),a(S,{width:"56%",height:9}),a(S,{width:44,height:9})),a("span",null)),Array.from({length:t},(n,o)=>a(Be,{key:o})))}function He(){return a("div",{className:"capital-automation-template capital-automation-skeletontemplate","aria-hidden":"true"},a("div",{className:"capital-automation-skeletontemplatemain"},a(S,{width:38,height:38,radius:11}),a("div",{className:"capital-automation-skeletonstack"},a(S,{width:"58%",height:11}),a(S,{width:"100%",height:9}),a(S,{width:"76%",height:9}))),a("div",{className:"capital-automation-templatefoot"},a(S,{width:118,height:11}),a(S,{width:64,height:28,radius:999})))}function Pe(){return a("div",{className:"capital-automation-run capital-automation-skeletonrun","aria-hidden":"true"},a("div",{className:"capital-automation-runhead"},a("div",{className:"capital-automation-runmain"},a("div",{className:"capital-automation-runline"},a(S,{width:168,height:11}),a(S,{width:54,height:10,radius:999})),a("div",{className:"capital-automation-runmetaline"},a(S,{width:86,height:9}),a(S,{width:58,height:9}),a(S,{width:104,height:9}))),a("div",{className:"capital-automation-runactions"},a(S,{width:64,height:26,radius:999}))))}function Ft(i){let{children:t}=i;return a("div",{className:"capital-automation-loading","aria-busy":"true"},a("span",{className:"capital-automation-skeletonlabel",role:"status","aria-live":"polite"},e.loading),t)}function Ue(){return a(Ft,null,a(zt),a("section",{className:"capital-automation-section"},a(Oa),a(_e,{rows:4})),a("section",{className:"capital-automation-section"},a(Oa,{trailing:[64]}),a("div",{className:"capital-automation-templates"},[0,1,2].map(i=>a(He,{key:i})))))}function qe(){return a(Ft,null,a(zt),a("section",{className:"capital-automation-section"},a(Oa,{trailing:[260]}),a("section",{className:"capital-automation-card capital-automation-panel"},a("div",{className:"capital-automation-runs"},[0,1,2,3].map(i=>a(Pe,{key:i}))))))}function je(i){let{tasks:t,templates:n,runs:o,onOpenTask:l,onNewTask:r,onEnableTemplate:s,onAction:d,onRequestConfirm:u,onEdit:c,onGoRuns:x,onRequestCancelRun:v,schedulerActive:w,storageReady:b,busyTaskId:g}=i,[N,h]=z("all"),[f,k]=z(""),F=t.filter(p=>L(p.lastRun)),O=n.filter(p=>!L(p.lastRun)),D=t.filter(p=>!L(p.lastRun)&&!(p.origin==="builtin"&&p.state==="dormant")),E=D.filter(p=>{if(N==="custom"&&p.origin!=="custom"||N!=="all"&&N!=="custom"&&p.category!==N)return!1;if(f.trim().length===0)return!0;let _=f.trim().toLowerCase();return`${p.title} ${p.description??""} ${p.instruction??""}`.toLowerCase().includes(_)}),B={all:D.length,custom:D.filter(p=>p.origin==="custom").length,news:D.filter(p=>p.category==="news").length,market:D.filter(p=>p.category==="market").length,review:D.filter(p=>p.category==="review").length,research:D.filter(p=>p.category==="research").length},y=["all","custom","news","market","review","research"];return a("div",null,a(Ct,{runs:o,onViewAll:x}),a("section",{className:"capital-automation-section"},a("div",{className:"capital-automation-sectionhead"},a("h2",null,e.taskSection),a("span",null,e.taskSectionHint),a("div",{className:"capital-automation-sectiontools"},a("div",{className:"capital-automation-filters",role:"group","aria-label":e.filterLabel},y.map(p=>a(Rt,{key:p,label:p==="all"?e.filterAll:p==="custom"?e.filterCustom:sa(p),count:B[p],active:N===p,onClick:()=>h(p)}))),a("label",{className:"capital-automation-search"},a(ot,{size:13}),a("input",{type:"search",value:f,placeholder:e.searchPlaceholder,"aria-label":e.searchPlaceholder,onChange:p=>k(p.target.value)})))),F.length>0?a("div",{className:"capital-automation-running",role:"status"},F.map(p=>a("div",{key:p.id,className:"capital-automation-runningrow"},a("span",{className:"capital-automation-live"},a("span",{className:"capital-automation-livedot"}),e.status.running),a(da,{task:p,size:28}),a("button",{type:"button",className:"capital-automation-tasktitle",style:{padding:0,border:0,background:"transparent",cursor:"pointer"},onClick:()=>l(p.id)},p.title),a("span",{className:"capital-automation-runmeta"},`${e.runningSince} ${ht(p.lastRun.startedAt??p.lastRun.queuedAt)} \xB7 ${e.steps} ${p.lastRun.steps} \xB7 ${e.tools} ${p.lastRun.toolCalls}`),a("span",{className:"capital-automation-runningactions"},a("button",{type:"button",className:"capital-automation-btn","data-size":"sm","data-variant":"danger",onClick:()=>v(p,p.lastRun)},e.cancelRun),a("button",{type:"button",className:"capital-automation-btn","data-size":"sm",onClick:()=>l(p.id)},e.details))))):null,E.length>0?a(Me,{tasks:E,onOpen:l,onAction:d,onRequestConfirm:u,onEdit:c,schedulerActive:w,storageReady:b,busyTaskId:g}):D.length===0?F.length>0?null:a(Ia,{title:O.length>0?e.emptyTasksTitle:e.emptyNoTemplates,body:O.length>0?e.emptyTasksBody:e.emptyNoTemplatesBody,action:O.length===0?r:void 0,actionLabel:O.length===0?e.newTask:void 0}):a(Ia,{title:e.emptyFiltered,body:e.emptyTasksBody,action:()=>{h("all"),k("")},actionLabel:e.clearFilter})),O.length>0?a("section",{className:"capital-automation-section"},a("div",{className:"capital-automation-sectionhead"},a("h2",null,e.templateSection)),a("div",{className:"capital-automation-templates"},O.map(p=>a(Le,{key:p.id,task:p,onOpen:l,onEnable:s,busy:g===p.id,disabled:!b})))):null)}function Ge(i){let{value:t,onChange:n,disabled:o}=i,[l,r]=z(!1),s=Array.isArray(t)?t:[],d=h=>s.includes(h),u=h=>s.length===h.length&&h.every(d),c=u([1,2,3,4,5]),x=u([6,7]),v=u(la.map(h=>h.value)),w=s.length===0?e.weekdayNone:v?e.weekdayEvery:c?e.weekdayWorkdayQuick:x?e.weekdayWeekendQuick:la.filter(h=>d(h.value)).map(h=>h.label).join("\u3001");j(()=>{o===!0&&l&&r(!1)},[o,l]);let b=[{id:"workday",label:e.weekdayWorkdayQuick},{id:"weekend",label:e.weekdayWeekendQuick},{type:"separator",id:"weekday-separator"},...la.map(h=>({id:`weekday-${h.value}`,label:`\u5468${h.label}`}))],g=[...s.map(h=>`weekday-${h}`),...c?["workday"]:[],...x?["weekend"]:[]],N=h=>{if(h==="workday"){n([1,2,3,4,5]);return}if(h==="weekend"){n([6,7]);return}let f=Number(h.slice(8));if(!la.some(F=>F.value===f))return;let k=d(f)?s.filter(F=>F!==f):[...s,f].sort((F,O)=>F-O);k.length>0&&n(k)};return a(wa,{open:l,anchor:a("button",{type:"button",className:"capital-automation-select capital-automation-triggerpick",disabled:o,"aria-label":`${e.weekdayField}\uFF1A${w}`,"aria-haspopup":"menu","aria-expanded":l?"true":"false",title:`${e.weekdayField}\uFF1A${w}`,onClick:()=>r(h=>!h)},a("span",{className:"capital-automation-selectvalue"},w),a(Ma,{size:14})),items:b,selectedIds:g,onSelect:N,onClose:()=>r(!1),align:"start",portal:!0})}function Ve(i){let{value:t,onChange:n,disabled:o}=i,[l,r]=z(!1),s=t==="last"?"last":Number(t??1),d=s==="last"?e.monthlyLast:s===1?e.monthlyFirst:s===15?e.monthlyMid:e.dayOfMonth.replace("{n}",String(s)),u=s==="last"?"last":s===1?"first":s===15?"mid":"custom";j(()=>{o===!0&&l&&r(!1)},[o,l]);let c=[{id:"first",label:e.monthlyFirst},{id:"mid",label:e.monthlyMid},{id:"last",label:e.monthlyLast},{id:"custom",label:e.monthlyCustom,submenu:Array.from({length:31},(v,w)=>({id:`monthly-day-${w+1}`,label:e.dayOfMonth.replace("{n}",String(w+1))}))}],x=v=>{if(v==="first"){n(1),r(!1);return}if(v==="mid"){n(15),r(!1);return}if(v==="last"){n("last"),r(!1);return}v.startsWith("monthly-day-")&&(n(Number(v.slice(12))),r(!1))};return a(wa,{open:l,className:"capital-automation-monthpick",anchor:a("button",{type:"button",className:"capital-automation-select capital-automation-triggerpick",disabled:o,"aria-label":`${e.monthlyField}\uFF1A${d}`,"aria-haspopup":"menu","aria-expanded":l?"true":"false",title:`${e.monthlyField}\uFF1A${d}`,onClick:()=>r(v=>!v)},a("span",{className:"capital-automation-selectvalue"},d),a(Ma,{size:14})),items:c,selectedId:u,onSelect:x,onClose:()=>r(!1),align:"start",portal:!1})}function At(i){let{trigger:t,onChange:n,disabled:o,meta:l,errorFor:r,touch:s}=i,d=f=>n(ca({...t,...f})),u=f=>n(ke(f,t)),c=f=>typeof r=="function"?r(f):void 0,x=f=>{typeof s=="function"&&s(f)},v=c("time"),w=c("timezone"),b=c("weekdays"),g=c("date"),N=[v,w,b,g].filter(f=>typeof f=="string"&&f.length>0),h=Object.entries(e.cadence).map(([f,k])=>({value:f,label:k}));return a("div",{className:"capital-automation-triggerbox","data-cadence":t.cadence,"data-invalid":N.length>0?"true":void 0},a("div",{className:"capital-automation-triggerhead"},a("div",{className:"capital-automation-triggerfield"},a("span",{className:"capital-automation-triggerlabel"},e.cadenceField),a(ua,{value:t.cadence,options:h,onChange:u,disabled:o,label:e.cadenceField}),a("div",{className:"capital-automation-triggerdetail","data-cadence":t.cadence},t.cadence==="weekly"?a("div",{className:"capital-automation-triggerfield"},a("span",{className:"capital-automation-triggerlabel"},e.weekdayField),a(Ge,{value:t.weekdays??[],onChange:f=>d({weekdays:f}),disabled:o})):t.cadence==="monthly"?a("div",{className:"capital-automation-triggerfield"},a("span",{className:"capital-automation-triggerlabel"},e.dayField),a(Ve,{value:t.dayOfMonth??1,onChange:f=>d({dayOfMonth:f}),disabled:o})):t.cadence==="once"?a("div",{className:"capital-automation-triggerfield"},a("span",{className:"capital-automation-triggerlabel"},e.dayField),a("input",{type:"date",className:"capital-automation-triggerdate",value:t.date??"",disabled:o,title:e.onceHint,"aria-label":e.dayField,"aria-invalid":g?"true":void 0,"data-invalid":g?"true":void 0,onChange:f=>d({date:f.target.value}),onBlur:()=>x("date")})):null)),a("div",{className:"capital-automation-triggerfield"},a("span",{className:"capital-automation-triggerlabel"},e.timeField),a("input",{type:"time",className:"capital-automation-triggertime",value:t.time,disabled:o,"aria-label":e.timeField,"aria-invalid":v?"true":void 0,"data-invalid":v?"true":void 0,onChange:f=>d({time:f.target.value}),onBlur:()=>x("time")}))),a("div",{className:"capital-automation-triggersettings"},a("span",{className:"capital-automation-triggerzone"},a("span",{className:"capital-automation-triggerlabel"},e.timezoneField),a(ua,{value:t.timezone,options:fe(t.timezone),onChange:f=>d({timezone:f}),disabled:o,label:e.timezoneField,size:"sm",align:"end"})),a("label",{className:"capital-automation-triggerswitch"},a(st,{checked:t.tradingDaysOnly===!0,onChange:f=>d({tradingDaysOnly:f}),label:e.tradingDaysField,disabled:o}),a("span",null,e.tradingDaysField))),N.length>0?a("div",{className:"capital-automation-triggererrors"},N.map(f=>a("span",{key:f,className:"capital-automation-fielderror",role:"alert"},f))):null,l?.calendar?.available===!1?a("p",{className:"capital-automation-hint"},e.nextRunUnavailable):null)}function aa(i){let{label:t,hint:n,checked:o,onChange:l,disabled:r}=i;return a("div",{className:"capital-automation-switchrow"},a("div",null,a("span",null,t),n?a("small",null,n):null),a(st,{checked:o===!0,onChange:l,label:t,disabled:r}))}function It(i){let{label:t,note:n,error:o}=i,l=typeof o=="string"&&o.length>0;return a("span",{className:"capital-automation-fieldhead"},a("span",{className:"capital-automation-fieldlabel"},t),l?a("span",{className:"capital-automation-fielderror",role:"alert"},o):n?a("span",{className:"capital-automation-fieldhint"},n):null)}function Da(i){let{value:t,onChange:n,onBlur:o,placeholder:l,disabled:r,ariaLabel:s,invalid:d,className:u,maxLength:c}=i,x=q(null),v=typeof c=="number"?c:void 0;j(()=>{let g=x.current;if(g==null)return;let N=t??"";document.activeElement!==g&&g.innerText!==N&&(g.innerText=N)},[t]);let w=g=>(g.innerText??"").replace(/\r\n?/g,`
405
+ `),b=g=>{let N=w(g);if(v!==void 0&&Array.from(N).length>v){N=Array.from(N).slice(0,v).join(""),g.innerText=N;let h=document.createRange();h.selectNodeContents(g),h.collapse(!1);let f=window.getSelection();f?.removeAllRanges(),f?.addRange(h)}N.length===0&&g.innerHTML!==""&&(g.innerHTML=""),n(N)};return a("div",{ref:x,className:u,contentEditable:r===!0?"false":"true",role:"textbox","aria-multiline":"true","aria-label":s,"aria-invalid":d?"true":void 0,"data-placeholder":l,spellCheck:!1,suppressContentEditableWarning:!0,onInput:g=>b(g.currentTarget),onBlur:g=>{b(g.currentTarget),typeof o=="function"&&o()},onPaste:g=>{let N=g.clipboardData?.getData("text/plain");if(typeof N!="string")return;g.preventDefault();let h=window.getSelection();if(h===null||h.rangeCount===0)return;h.deleteFromDocument();let f=h.getRangeAt(0),k=document.createTextNode(N);f.insertNode(k),f.setStartAfter(k),f.collapse(!0),h.removeAllRanges(),h.addRange(f),b(g.currentTarget)}})}function ra(i){let{label:t,hint:n,note:o,error:l,children:r}=i,s=typeof l=="string"&&l.length>0;return a("label",{className:"capital-automation-field","data-invalid":s?"true":void 0},a(It,{label:t,note:o,error:l}),r,n?a("span",{className:"capital-automation-hint"},n):null)}function ua(i){let{value:t,options:n,onChange:o,disabled:l,label:r,block:s,size:d,align:u="start",title:c}=i,[x,v]=z(!1),w=q(null),b=n.map(F=>({id:String(F.value),label:F.label,disabled:F.disabled===!0})),g=String(t??""),N=b.find(F=>F.id===g)??b[0];j(()=>{l===!0&&x&&v(!1)},[l,x]);let h=()=>v(!1),f=F=>{v(!1),w.current?.focus?.({preventScroll:!0}),F!==g&&o(F)},k=a("button",{ref:w,type:"button",className:"capital-automation-select","data-block":s===!0?"true":void 0,"data-size":d,disabled:l,"aria-label":N?.label?`${r}\uFF1A${N.label}`:r,"aria-haspopup":"menu","aria-expanded":x?"true":"false",title:c??N?.label,onClick:()=>v(F=>!F)},a("span",{className:"capital-automation-selectvalue",title:c??N?.label},N?.label??""),a(Ma,{size:d==="sm"?12:14}));return a(wa,{open:x,anchor:k,items:b,selectedId:g,onSelect:f,onClose:h,align:u,portal:!0})}function nt(i){let{label:t,hint:n,note:o,error:l,ariaLabel:r,block:s=!0,title:d,...u}=i,c=typeof l=="string"&&l.length>0;return a("div",{className:"capital-automation-field",title:d,"data-invalid":c?"true":void 0},a(It,{label:t,note:o,error:l}),a(ua,{...u,label:r??t,block:s,title:d}),n?a("span",{className:"capital-automation-hint"},n):null)}function Z(i){let{label:t,value:n,min:o,max:l,disabled:r,onChange:s,error:d,onBlur:u}=i;return a(ra,{label:t,error:d},a("input",{type:"number",min:o,max:l,value:n,disabled:r,"aria-invalid":d?"true":void 0,onChange:c=>s(Number(c.target.value)),onBlur:u}))}function We(i){let{value:t,counts:n,onChange:o}=i,l=[["all",e.runFilterAll],["active",e.runFilterActive],["succeeded",e.runFilterSucceeded],["failed",e.runFilterFailed]];return a("div",{className:"capital-automation-filters",role:"group","aria-label":e.runFilterLabel},l.map(([r,s])=>a(Rt,{key:r,label:s,count:n[r],active:t===r,onClick:()=>o(r)})))}function Ke(i){let{runs:t,tasks:n,onCancel:o,onOpenSession:l,onOpenTask:r,onGoTasks:s,onNewTask:d,busy:u}=i,[c,x]=z("all"),v={all:t.length,active:t.filter(b=>L(b)).length,succeeded:t.filter(b=>b.status==="succeeded").length,failed:t.filter(b=>ta(b.status)).length},w=t.filter(b=>c==="active"?L(b):c==="succeeded"?b.status==="succeeded":c==="failed"?ta(b.status):!0);return a("div",null,a(Ct,{runs:t,showLink:!1}),a("section",{className:"capital-automation-section"},a("div",{className:"capital-automation-sectionhead"},a("h2",null,e.runsTitle),a("span",null,e.runsHint),a("div",{className:"capital-automation-sectiontools"},a(We,{value:c,counts:v,onChange:x}))),t.length===0?a("div",{className:"capital-automation-empty"},a("span",{className:"capital-automation-emptyicon"},a(Ba,{size:19})),a("h3",null,e.runsEmptyTitle),a("p",null,e.runsEmptyBody),a("div",{style:{display:"flex",gap:8,marginTop:8}},a("button",{type:"button",className:"capital-automation-btn",onClick:s},e.runsEmptyAction),a("button",{type:"button",className:"capital-automation-btn","data-variant":"primary",onClick:d},e.newTask))):w.length===0?a(Ia,{title:e.emptyFiltered,body:e.filterNoRuns,action:()=>x("all"),actionLabel:e.clearFilter}):a("section",{className:"capital-automation-card capital-automation-panel"},a(Ga,{runs:w,tasks:n,onCancel:o,onOpenSession:l,onOpenTask:r,busy:u}),t.length>=200?a("p",{className:"capital-automation-hint",style:{paddingTop:10}},e.runsLimitHint.replace("{n}","200")):null)))}function Ye(i){let{detail:t,meta:n,onGoRuns:o,onCancelRun:l,onOpenSession:r}=i,s=t.runs[0],d=wt(t.task),u=me(s,t.task.trigger.timezone),c=t.runs.some(g=>L(g)),x=c?e.status.running:ut(t.task.state),v=t.task.origin==="builtin"?e.origin.builtin:e.origin.custom,w=`${pe(t.task.trigger)}${t.task.trigger.tradingDaysOnly===!0?` \xB7 ${e.tradingDaysField}`:""}`,b=t.task.trigger.cadence==="once"?e.triggerHintOnce:t.task.trigger.tradingDaysOnly===!0?e.triggerHint:e.triggerHintNatural;return a("div",{className:"capital-automation-overview"},a("div",{className:"capital-automation-statgrid"},a("div",{className:"capital-automation-stat"},a("span",{className:"capital-automation-statlabel"},e.stateLabel),a("span",{className:"capital-automation-statvalue","data-tone":c?"running":void 0},x),a("span",{className:"capital-automation-statsub"},v)),a("div",{className:"capital-automation-stat"},a("span",{className:"capital-automation-statlabel"},e.nextRun),a("span",{className:"capital-automation-statvalue"},d.value),a("span",{className:"capital-automation-statsub"},d.sub)),a("div",{className:"capital-automation-stat"},a("span",{className:"capital-automation-statlabel"},e.lastResult),a("span",{className:"capital-automation-statvalue","data-tone":u.tone},u.value),a("span",{className:"capital-automation-statsub"},u.sub)),a("div",{className:"capital-automation-stat",title:b},a("span",{className:"capital-automation-statlabel"},e.triggerSummary),a("span",{className:"capital-automation-statvalue"},w),a("span",{className:"capital-automation-statsub"},`${t.task.trigger.time} \xB7 ${t.task.trigger.timezone}`))),a("section",{className:"capital-automation-card capital-automation-panel"},a("div",{className:"capital-automation-panelhead"},a("h3",null,e.detailRecentRuns.replace("{n}",String(et))),a("button",{type:"button",className:"capital-automation-btn","data-size":"sm","data-variant":"ghost",onClick:o},e.detailAllRuns,a(La,{size:13}))),a(Ga,{runs:t.runs.slice(0,et),tasks:[t.task],onCancel:l,onOpenSession:r,compact:!0})),a("section",{className:"capital-automation-card capital-automation-panel"},a("div",{className:"capital-automation-panelhead"},a("h3",null,e.environment)),a("div",{className:"capital-automation-kv"},a("div",{className:"capital-automation-kvitem"},a("span",{className:"capital-automation-kvlabel"},e.presetLabel),a("span",{className:"capital-automation-kvvalue"},e.presetValue)),a("div",{className:"capital-automation-kvitem"},a("span",{className:"capital-automation-kvlabel"},e.workspaceField),a("span",{className:"capital-automation-kvvalue"},ge(n,t.task.workspaceId))),a("div",{className:"capital-automation-kvitem"},a("span",{className:"capital-automation-kvlabel"},e.categoryField),a("span",{className:"capital-automation-kvvalue"},sa(t.task.category)))),a("section",{className:"capital-automation-technical"},a("h4",{className:"capital-automation-technicaltitle"},e.techInfo),a("dl",null,a("dt",null,e.profileKey),a("dd",{title:"profileKey \u662F profile \u540D\u79F0\u7684\u7A33\u5B9A\u54C8\u5E0C\uFF1B\u4E0E session \u6807\u9898\u91CC\u7684 run id \u65E0\u5173\u3002"},n?.profile?.key??"\u2014"),a("dt",null,e.presetLabel),a("dd",null,e.presetValue),a("dt",null,e.policyField),a("dd",null,n?.execution?.policy??"automation-v1"),a("dt",null,e.cwdKind),a("dd",{title:"\u5F53\u524D\u56FA\u5B9A\u4E3A profile\uFF08\u4E13\u5C5E\u81EA\u52A8\u5316\u5DE5\u4F5C\u533A\uFF09\uFF1B\u6CA1\u6709 storage \u7B49\u5176\u4ED6\u6765\u6E90\u3002"},n?.execution?.cwdKind??"profile"),a("dt",null,"profile \u540D\u79F0"),a("dd",null,n?.profile?.name??"\u2014"),a("dt",null,e.calendarField),a("dd",null,ce(n?.calendar))))))}function Ze(i){let{draft:t,setDraft:n,meta:o,busy:l,dirty:r,save:s,reset:d,disabled:u}=i,c=t,{issues:x,errorFor:v,touch:w,touchAll:b,clear:g}=Tt(c,c.id),N=q(null),h=v("title"),f=v("instruction"),k=C=>n(A=>({...A,...typeof C=="function"?C(A):C})),F=()=>{if(Object.keys(x).length>0){b(),setTimeout(()=>{N.current?.querySelector('[data-invalid="true"] input, [data-invalid="true"] .capital-automation-texteditor')?.focus?.()},0);return}s()},O=Y(o,"runTimeoutMinutes",[5,120]),D=Y(o,"idleTimeoutMinutes",[1,30]),E=Y(o,"maxSteps",[10,2e3]),B=Y(o,"maxToolCalls",[10,6e3]),y=a(ra,{label:e.instructionField,error:f},a(Da,{className:"capital-automation-texteditor",value:c.instruction,disabled:l||u,placeholder:e.instructionPlaceholder,ariaLabel:e.instructionField,invalid:f?!0:void 0,onChange:C=>k({instruction:C}),onBlur:()=>w("instruction")})),p=a("div",{className:"capital-automation-instructionside"},a(nt,{label:e.workspaceField,value:c.workspaceId??"",options:ja(o,c.workspaceId).map(C=>({value:C.id,label:C.title})),disabled:l||u,onChange:C=>k({workspaceId:C})}),o?.workspaceError?a("p",{className:"capital-automation-hint","data-tone":"error"},e.workspaceUnavailable):null,a("div",null,a("span",{className:"capital-automation-formlabel"},e.triggerField),a(At,{trigger:c.trigger,disabled:l||u,onChange:C=>k({trigger:C}),meta:o,errorFor:v,touch:w}))),_=a("details",{className:"capital-automation-advanced"},a("summary",null,e.advanced),a("div",{className:"capital-automation-advancedbody"},a("div",{className:"capital-automation-formgrid"},a(Z,{label:e.runTimeout,value:c.limits.runTimeoutMinutes,min:O[0],max:O[1],disabled:l||u,error:v("runTimeoutMinutes"),onBlur:()=>w("runTimeoutMinutes"),onChange:C=>k(A=>({limits:{...A.limits,runTimeoutMinutes:C}}))}),a(Z,{label:e.idleTimeout,value:c.limits.idleTimeoutMinutes,min:D[0],max:D[1],disabled:l||u,error:v("idleTimeoutMinutes"),onBlur:()=>w("idleTimeoutMinutes"),onChange:C=>k(A=>({limits:{...A.limits,idleTimeoutMinutes:C}}))}),a(Z,{label:e.maxSteps,value:c.limits.maxSteps,min:E[0],max:E[1],disabled:l||u,error:v("maxSteps"),onBlur:()=>w("maxSteps"),onChange:C=>k(A=>({limits:{...A.limits,maxSteps:C}}))}),a(Z,{label:e.maxToolCalls,value:c.limits.maxToolCalls,min:B[0],max:B[1],disabled:l||u,error:v("maxToolCalls"),onBlur:()=>w("maxToolCalls"),onChange:C=>k(A=>({limits:{...A.limits,maxToolCalls:C}}))})),a("p",{className:"capital-automation-hint"},e.budgetHint))),G=a("div",null,a("span",{className:"capital-automation-formlabel"},e.notifyField),a("div",{className:"capital-automation-switchlist"},a(aa,{label:e.notifyInApp,checked:c.notifications.inApp,disabled:l||u,onChange:C=>k(A=>({notifications:{...A.notifications,inApp:C}}))}),a(aa,{label:e.notifyFailure,checked:c.notifications.onFailure,disabled:l||u,onChange:C=>k(A=>({notifications:{...A.notifications,onFailure:C}}))}),a(aa,{label:e.notifySuccess,checked:c.notifications.onSuccess,disabled:l||u,onChange:C=>k(A=>({notifications:{...A.notifications,onSuccess:C}}))})),a("p",{className:"capital-automation-hint"},e.notifyHint));return a("div",{className:"capital-automation-form",ref:N},a("div",{className:"capital-automation-titlerow"},a(ra,{label:e.titleField,error:h,note:e.charCount.replace("{n}",String(Array.from(c.title??"").length)).replace("{max}",String(Aa))},a("input",{value:c.title,maxLength:Aa,disabled:l||u,"aria-invalid":h?"true":void 0,onChange:C=>k({title:C.target.value}),onBlur:()=>w("title")})),a(nt,{label:e.categoryField,title:c.origin==="builtin"?e.categoryFixed:void 0,value:c.category,options:Object.entries(e.category).map(([C,A])=>({value:C,label:A})),disabled:l||u||c.origin==="builtin",onChange:C=>k({category:C})})),a(ra,{label:e.descriptionField,note:e.charCount.replace("{n}",String(Array.from(c.description??"").length)).replace("{max}",String(va))},a(Da,{className:"capital-automation-texteditor capital-automation-descriptioninput",value:c.description??"",maxLength:va,disabled:l||u,placeholder:e.descriptionPlaceholder,ariaLabel:e.descriptionField,onChange:C=>k({description:C})})),a("div",{className:"capital-automation-instructionrow"},y,p),_,G,a("div",{className:"capital-automation-formactions","data-sticky":"true"},a("span",{className:"capital-automation-formstatus"},u?e.storageUnavailable:r?e.dirty:e.noDirty),a("button",{type:"button",className:"capital-automation-btn",disabled:l||!r,onClick:()=>{g(),d()}},e.cancel),a("button",{type:"button",className:"capital-automation-btn","data-variant":"primary",disabled:l||!r||u,onClick:F},l==="save"?e.saving:e.save)))}function Qe(i){let{detail:t,busy:n,onMarkTaskRead:o}=i,l=t.notifications,r=l.filter(s=>s.readAt===void 0).length;return a("section",{className:"capital-automation-card capital-automation-panel"},a("div",{className:"capital-automation-panelhead"},a("h3",null,e.detailTaskNotifications),r>0?a("button",{type:"button",className:"capital-automation-btn","data-size":"sm",disabled:n,onClick:o},e.markTaskRead):null),l.length===0?a("p",{className:"capital-automation-hint"},e.notificationsEmpty):a("div",null,l.map(s=>a(Ot,{key:s.id,item:s}))))}function Ot(i){let{item:t,onClick:n,onOpenTask:o}=i,l=typeof n=="function"&&t.taskId!==void 0;return a(l?"button":"div",{type:l?"button":void 0,className:"capital-automation-notification","data-clickable":l?"true":"false",onClick:l?n:void 0},a("span",{className:"capital-automation-notificationicon","data-tone":za(t.kind)},za(t.kind)==="error"?a(rt,{size:15}):za(t.kind)==="warn"?a(Yt,{size:15}):a(Ea,{size:15})),a("span",{className:"capital-automation-notificationbody"},a("span",{className:"capital-automation-notificationtitle"},t.title,t.readAt===void 0?a("span",{className:"capital-automation-count"},e.unread):null),a("span",{className:"capital-automation-notificationmessage"},Re(t)),a("span",{className:"capital-automation-notificationtime"},qa(t.createdAt))),o!==void 0&&t.taskId!==void 0?a("span",{className:"capital-automation-hint"},e.notificationOpenTask):null)}function Je(i){return a("div",{className:"capital-automation-detailbar"},a("button",{type:"button",className:"capital-automation-back",onClick:i.onBack},a(Ut,{size:14}),e.backToTasks))}function Xe(i){let{detail:t,meta:n,api:o,onChanged:l,openSession:r,tab:s,onTab:d,onRequestConfirm:u,onRequestCancelRun:c,schedulerActive:x,storageReady:v}=i,[w,b]=z(null),[g,N]=z(""),[h,f]=z(""),[k,F]=z(""),[O,D]=z(!1),E=q(null);if(j(()=>{b(t.task?{...t.task,trigger:ca(t.task.trigger),limits:{...t.task.limits},notifications:{...t.task.notifications}}:null)},[t]),j(()=>{let R=t.task?.id??null;E.current!==R&&(E.current=R,f(""),F(""))},[t]),w===null)return a("p",{className:"capital-automation-empty"},e.loading);let B=w,y=v!==!1,p=t.runs.some(R=>L(R)),_=t.runs.find(R=>L(R)),G=t.notifications.filter(R=>R.readAt===void 0).length,C=Se(w,t.task),A=y&&x===!0&&!p,J=R=>b(I=>({...I,...typeof R=="function"?R(I):R}));async function V(R,I,M){if(!g){N(R),F("");try{await I(),await l(t.task.id),f(M)}catch(K){F(K.message??e.errorGeneric)}finally{N("")}}}async function pa(){await V("save",async()=>{await o.patch(t.task.id,ya(B))},e.saved)}async function ea(){let R=t.task.state==="active"?"pause":"activate";await V(R,async()=>{await o.action(t.task.id,R)},R==="pause"?e.paused.replace("{title}",t.task.title):mt(t.task))}async function ia(){await V("run",async()=>{await o.run(t.task.id)},e.runSubmitted.replace("{title}",t.task.title))}async function X(){let R=t.notifications.filter(I=>I.readAt===void 0).map(I=>I.id);R.length!==0&&await V("read-notifications",async()=>{await o.markRead({ids:R})},e.markReadDone)}async function H(){await V("copy",async()=>{await o.action(t.task.id,"copy")},e.copied.replace("{title}",t.task.title))}let ma=p?a("button",{type:"button",className:"capital-automation-btn","data-variant":"danger",disabled:g||!y||_===void 0,onClick:()=>{_!==void 0&&c(_)}},e.cancelRun):a("button",{type:"button",className:"capital-automation-btn","data-variant":t.task.state==="active"?"primary":void 0,disabled:g||!A,title:x===!1?e.schedulerBlocked:p?e.runBlocked:void 0,onClick:()=>{ia()}},a(_a,{size:14}),e.runNow),W=()=>{b({...t.task,trigger:ca(t.task.trigger),limits:{...t.task.limits},notifications:{...t.task.notifications}}),F(""),f("")};return a("div",null,a("div",{className:"capital-automation-hero"},a(da,{task:B,large:!0}),a("div",{className:"capital-automation-herobody"},a("div",{className:"capital-automation-herotitle"},a("h2",null,t.task.title),a(ft,{state:t.task.state,running:p}),G>0?a("span",{className:"capital-automation-count",title:e.unread},String(G)):null),a("p",{className:"capital-automation-herodesc"},t.task.description||e.subtitle)),a("div",{className:"capital-automation-heroactions"},ma,p?null:a("button",{type:"button",className:"capital-automation-btn","data-variant":t.task.state==="active"?void 0:"primary",disabled:g||!y,onClick:()=>{ea()}},a(pt(t.task),{size:14}),dt(t.task)),a(St,{task:t.task,open:O,onToggle:()=>D(R=>!R),onClose:()=>D(!1),onEdit:()=>{D(!1),d("config")},onAction:(R,I)=>{I==="run"?ia():I==="copy"?H():(I==="activate"||I==="pause")&&ea()},onRequestConfirm:(R,I)=>{D(!1),u(R,I)},canRun:A,running:p,busy:g.length>0,disabled:!y,align:"end"}))),a("div",{className:"capital-automation-detailtabs",role:"tablist","aria-label":e.details},[["overview",e.overview],["config",e.config],["runs",e.runs],["notifications",e.notifications]].map(([R,I])=>a("button",{key:R,type:"button",role:"tab",className:"capital-automation-detailtab","aria-selected":s===R?"true":"false",onClick:()=>d(R)},I))),h.length>0||k.length>0?a("div",{style:{paddingTop:12}},h.length>0?a("p",{className:"capital-automation-notice",role:"status"},h):null,k.length>0?a("p",{className:"capital-automation-error",role:"alert"},k):null):null,p?a("p",{className:"capital-automation-hint",style:{paddingTop:10}},e.configWhileRunning):null,a("div",{className:"capital-automation-detailbody"},s==="overview"?a(Ye,{detail:t,meta:n,onGoRuns:()=>d("runs"),onCancelRun:c,onOpenSession:r}):null,s==="config"?a(Ze,{draft:w,setDraft:b,meta:n,busy:g,dirty:C,save:pa,reset:W,disabled:!y}):null,s==="runs"?a("section",{className:"capital-automation-card capital-automation-panel"},a("div",{className:"capital-automation-panelhead"},a("h3",null,e.runs),a("span",{className:"capital-automation-hint"},e.taskRunsLimit)),a(Ga,{runs:t.runs,tasks:[t.task],onCancel:R=>c(R),onOpenSession:r,busy:g.length>0})):null,s==="notifications"?a(Qe,{detail:t,busy:g.length>0,onMarkTaskRead:()=>{X()}}):null))}function ai(i){let{open:t,onClose:n,api:o,onCreated:l,meta:r}=i,[s,d]=z(it),[u,c]=z(!1),[x,v]=z(""),{issues:w,errorFor:b,touch:g,touchAll:N}=Tt(s,t),h=b("title"),f=b("instruction");j(()=>{t&&(d(it()),c(!1),v(""))},[t]);let k=y=>d(p=>({...p,...typeof y=="function"?y(p):y})),F=Y(r,"runTimeoutMinutes",[5,120]),O=Y(r,"idleTimeoutMinutes",[1,30]),D=Y(r,"maxSteps",[10,2e3]),E=Y(r,"maxToolCalls",[10,6e3]);async function B(){if(Object.keys(w).length>0){N();return}c(!0),v("");try{let y=await o.create(ya(s));l(y?.task?.id??null)}catch(y){v(y.message??e.errorGeneric)}finally{c(!1)}}return t?a(Pa,{open:t,onClose:()=>{u||n()},title:e.newTaskTitle,closeLabel:e.close,className:"capital-automation-modal capital-automation-modal-wizard",contentClassName:"capital-automation-modal-content",footer:a("div",{className:"capital-automation-formactions",style:{borderTop:0,paddingTop:0}},a("button",{type:"button",className:"capital-automation-btn",disabled:u,onClick:n},e.cancel),a("button",{type:"button",className:"capital-automation-btn","data-variant":"primary",disabled:u||r?.storage?.state==="unavailable",onClick:B},u?e.creating:e.create))},a("div",{className:"capital-automation-wizard"},a("div",{className:"capital-automation-modalheadline","data-invalid":h?"true":void 0},a(da,{task:s,size:42}),a("input",{className:"capital-automation-modaltitleinput",value:s.title,maxLength:Aa,placeholder:e.titlePlaceholder,"aria-label":e.titleField,"aria-invalid":h?"true":void 0,onChange:y=>k({title:y.target.value}),onBlur:()=>g("title")})),h?a("span",{className:"capital-automation-fielderror",role:"alert"},h):null,a("p",{className:"capital-automation-hint"},e.newTaskHint),a(ra,{label:e.descriptionField,note:e.charCount.replace("{n}",String(Array.from(s.description??"").length)).replace("{max}",String(va))},a("input",{value:s.description,maxLength:va,placeholder:e.descriptionPlaceholder,onChange:y=>k({description:y.target.value})})),a("div",null,a("span",{className:"capital-automation-formlabel"},e.triggerField),a(At,{trigger:s.trigger,onChange:y=>k({trigger:y}),meta:r,errorFor:b,touch:g})),a("div",null,a("span",{className:"capital-automation-formlabel"},e.instructionField),a("div",{className:"capital-automation-promptfield","data-invalid":f?"true":void 0},a("div",{className:"capital-automation-promptbox"},a(Da,{className:"capital-automation-texteditor",value:s.instruction,placeholder:e.instructionPlaceholder,ariaLabel:e.instructionField,invalid:f?!0:void 0,onChange:y=>k({instruction:y}),onBlur:()=>g("instruction")}),a("div",{className:"capital-automation-prompttoolbar"},a("div",{className:"capital-automation-toolbarfield"},a(Vt,{size:13}),a("span",null,e.workspaceField),a(ua,{value:s.workspaceId??"",options:ja(r,s.workspaceId).map(y=>({value:y.id,label:y.title})),onChange:y=>k({workspaceId:y}),label:e.workspaceField,size:"sm",align:"end"})),a("div",{className:"capital-automation-toolbarfield"},a("span",null,e.categoryField),a(ua,{value:s.category,options:Object.entries(e.category).map(([y,p])=>({value:y,label:p})),onChange:y=>k({category:y}),label:e.categoryField,size:"sm",align:"end"})),a("span",{className:"capital-automation-presetchip",title:e.presetHint},a(lt,{size:12}),e.presetValue))),f?a("span",{className:"capital-automation-fielderror",role:"alert"},f):null)),r?.workspaceError?a("p",{className:"capital-automation-hint","data-tone":"error"},e.workspaceUnavailable):null,a("details",{className:"capital-automation-advanced"},a("summary",null,e.advanced),a("div",{className:"capital-automation-advancedbody"},a("div",{className:"capital-automation-formgrid"},a(Z,{label:e.runTimeout,value:s.limits.runTimeoutMinutes,min:F[0],max:F[1],error:b("runTimeoutMinutes"),onBlur:()=>g("runTimeoutMinutes"),onChange:y=>k(p=>({limits:{...p.limits,runTimeoutMinutes:y}}))}),a(Z,{label:e.idleTimeout,value:s.limits.idleTimeoutMinutes,min:O[0],max:O[1],error:b("idleTimeoutMinutes"),onBlur:()=>g("idleTimeoutMinutes"),onChange:y=>k(p=>({limits:{...p.limits,idleTimeoutMinutes:y}}))}),a(Z,{label:e.maxSteps,value:s.limits.maxSteps,min:D[0],max:D[1],error:b("maxSteps"),onBlur:()=>g("maxSteps"),onChange:y=>k(p=>({limits:{...p.limits,maxSteps:y}}))}),a(Z,{label:e.maxToolCalls,value:s.limits.maxToolCalls,min:E[0],max:E[1],error:b("maxToolCalls"),onBlur:()=>g("maxToolCalls"),onChange:y=>k(p=>({limits:{...p.limits,maxToolCalls:y}}))})),a("p",{className:"capital-automation-hint"},e.advancedHint))),a("div",null,a("span",{className:"capital-automation-formlabel"},e.notifyField),a("div",{className:"capital-automation-switchlist"},a(aa,{label:e.notifyInApp,checked:s.notifications.inApp,onChange:y=>k(p=>({notifications:{...p.notifications,inApp:y}}))}),a(aa,{label:e.notifyFailure,checked:s.notifications.onFailure,onChange:y=>k(p=>({notifications:{...p.notifications,onFailure:y}}))}),a(aa,{label:e.notifySuccess,checked:s.notifications.onSuccess,onChange:y=>k(p=>({notifications:{...p.notifications,onSuccess:y}}))})),a("p",{className:"capital-automation-hint"},e.notifyHint)),x.length>0?a("p",{className:"capital-automation-error",role:"alert"},x):null)):null}function ti(i){let{confirm:t,busy:n,error:o,onCancel:l,onConfirm:r}=i,s=t!==null,d=t?.kind==="cancel-run",u=t?.kind==="delete",c=d?e.cancelRunConfirmTitle:u?e.confirmDeleteTitle:e.confirmHibernateTitle,x=d?e.cancelRunConfirmBody:u?e.confirmDeleteBody:e.confirmHibernateBody,v=d?e.cancelRunConfirm:u?e.confirmDelete:e.confirmHibernate;return a(Pa,{open:s,onClose:()=>{n||l()},title:c,closeLabel:e.close,className:"capital-automation-modal capital-automation-modal-narrow",footer:a("div",{className:"capital-automation-formactions",style:{borderTop:0,paddingTop:0}},a("button",{type:"button",className:"capital-automation-btn",disabled:n,onClick:l},e.cancel),a("button",{type:"button",className:"capital-automation-btn","data-variant":"danger",disabled:n,onClick:r},n?e.processing:v))},a("div",null,a("p",{className:"capital-automation-policy"},x),o.length>0?a("p",{className:"capital-automation-error",role:"alert",style:{marginTop:8}},o):null))}function ei(i){let{open:t,onClose:n,notifications:o,onMarkAllRead:l,onOpenTask:r,busy:s}=i,d=o.filter(u=>u.readAt===void 0).length;return a(Pa,{open:t,onClose:n,title:e.notificationsTitle,closeLabel:e.close,className:"capital-automation-modal",contentClassName:"capital-automation-modal-content",footer:a("div",{className:"capital-automation-formactions",style:{borderTop:0,paddingTop:0}},a("span",{className:"capital-automation-formstatus"},d>0?e.notificationsUnread.replace("{n}",String(d)):o.length>0?e.allRead:e.notificationsEmpty),a("button",{type:"button",className:"capital-automation-btn",disabled:s||d===0,onClick:l},e.markRead),a("button",{type:"button",className:"capital-automation-btn","data-variant":"primary",onClick:n},e.close))},o.length===0?a("div",{className:"capital-automation-empty"},a("span",{className:"capital-automation-emptyicon"},a(Ea,{size:19})),a("h3",null,e.notificationsEmpty),a("p",null,e.notificationsHint)):a("div",null,a("p",{className:"capital-automation-hint",style:{marginBottom:4}},e.notificationsHint),o.map(u=>a(Ot,{key:u.id,item:u,onOpenTask:r,onClick:u.taskId===void 0?void 0:()=>r(u.taskId)}))))}function ii(i){let{api:t,openSession:n}=i,[o,l]=z(null),[r,s]=z([]),[d,u]=z([]),[c,x]=z([]),[v,w]=z(0),[b,g]=z(null),[N,h]=z(null),[f,k]=z("tasks"),[F,O]=z("overview"),[D,E]=z(!1),[B,y]=z(!1),[p,_]=z(null),[G,C]=z(!1),[A,J]=z(""),[V,pa]=z(null),[ea,ia]=z(!1),[X,H]=z(""),[ma,W]=z(""),R=q(!1),I=q([]),M=q(null),K=q(null),na=q(0),P=q(0),Va=q(null);j(()=>{if(X.length===0)return;let m=setTimeout(()=>H(""),3200);return()=>clearTimeout(m)},[X]);async function U(){if(K.current!==null)return K.current;let m=na.current+1;na.current=m;let T=(async()=>{try{let[$,Qa,Ja,fa]=await Promise.all([t.meta(),t.tasks(),t.runs("?limit=200"),t.notifications()]);if(!R.current||m!==na.current)return;let Ca=Array.isArray(Qa.tasks)?Qa.tasks:[];l($),I.current=Ca,s(Ca),u(Array.isArray(Ja.runs)?Ja.runs:[]),x(Array.isArray(fa.notifications)?fa.notifications:[]),w(typeof fa.unread=="number"?fa.unread:0),W("");let ba=M.current,ha=ba!==null&&Ca.some(Pt=>Pt.id===ba)?ba:null;ha!==ba&&(M.current=ha,P.current+=1,h(null),g(ha),ha===null&&O("overview"))}catch($){R.current&&m===na.current&&W($.message??e.errorGeneric)}})();K.current=T;try{await T}finally{K.current===T&&(K.current=null)}}async function ga(m){let T=P.current+1;P.current=T;try{let $=await t.detail(m);if(!R.current||T!==P.current||M.current!==m)return;h($)}catch($){R.current&&T===P.current&&M.current===m&&W($.message??e.errorGeneric)}}function Na(){let m=Va.current;m!==null&&typeof m.scrollTo=="function"&&m.scrollTo({top:0,behavior:"auto"})}function Q(m,T="overview"){M.current=m,P.current+=1,O(T),h(null),g(m),k("tasks"),Na()}function Dt(){M.current=null,P.current+=1,h(null),g(null),O("overview"),Na()}function Ta(m){m===f&&m==="tasks"&&M.current!==null||(m==="runs"&&M.current!==null&&(M.current=null,P.current+=1,h(null),g(null)),k(m),Na())}function oa(m,T,$){J(""),_({kind:m,task:T,run:$})}async function Wa(m,T){if(V===null){pa(m.id),W("");try{if(T==="run")await t.run(m.id),H(e.runSubmitted.replace("{title}",m.title));else if(T==="copy"){let $=await t.action(m.id,"copy");if(H(e.copied.replace("{title}",m.title)),$?.task?.id){await U(),Q($.task.id,"config");return}}else await t.action(m.id,T),H(T==="pause"?e.paused.replace("{title}",m.title):mt(m));await U(),M.current===m.id&&await ga(m.id)}catch($){W($.message??e.errorGeneric)}finally{pa(null)}}}async function Et(m){await Wa(m,"activate")}async function $t(){if(p===null||G)return;let{kind:m,task:T}=p;C(!0),J("");try{m==="cancel-run"?(await t.cancel(p.run.id),H(e.runCanceled)):m==="delete"?(await t.remove(T.id),H(e.deleted.replace("{title}",T.title))):(await t.action(T.id,"hibernate"),H(e.hibernated.replace("{title}",T.title))),_(null),J(""),await U(),M.current===T.id&&await ga(T.id)}catch($){J($.message??e.errorGeneric)}finally{C(!1)}}async function Mt(){if(!ea){ia(!0);try{await t.markRead({all:!0}),H(e.markReadDone),await U()}catch(m){W(m.message??e.errorGeneric)}finally{ia(!1)}}}async function Lt(m){if(y(!1),I.current.some(T=>T.id===m)){Q(m);return}await U(),I.current.some(T=>T.id===m)&&Q(m)}j(()=>{R.current=!0,U();let m=setInterval(()=>{document.visibilityState!=="hidden"&&U()},15e3),T=()=>{document.visibilityState==="visible"&&U()};return document.addEventListener?.("visibilitychange",T),()=>{R.current=!1,na.current+=1,P.current+=1,K.current=null,clearInterval(m),document.removeEventListener?.("visibilitychange",T)}},[]),j(()=>{if(b===null){h(null),P.current+=1;return}return h(null),ga(b),()=>{P.current+=1}},[b]);let Ka=o?.scheduler?.state==="active",Ya=o?.storage?.state!=="unavailable",Bt=r.filter(m=>m.origin==="builtin"&&m.state==="dormant"),_t=r.find(m=>m.id===b),Ht=f==="tasks"&&b!==null,Za=o===null&&ma.length===0;return a("div",{className:"capital-automation-page"},Ht?null:a(Oe,{tab:f,onTab:Ta,onNewTask:()=>E(!0),unread:v,onOpenInbox:()=>y(!0)}),a(De,{meta:o,loadError:ma,onRetry:()=>{U()}}),a("div",{className:"capital-automation-scroll",ref:Va},a("div",{className:"capital-automation-container"},f==="tasks"?b!==null?a("div",null,a(Je,{onBack:Dt}),N===null?a("div",{className:"capital-automation-empty"},e.loading):a(Xe,{detail:N,meta:o,api:t,openSession:n,tab:F,onTab:O,onRequestConfirm:oa,onRequestCancelRun:m=>oa("cancel-run",_t??{id:m.taskId,title:m.taskTitle},m),schedulerActive:Ka,storageReady:Ya,onChanged:async m=>{await U();let T=m??M.current;T!==null&&M.current===T&&await ga(T)}})):Za?a(Ue):a(je,{tasks:r,templates:Bt,runs:d,onOpenTask:Q,onNewTask:()=>E(!0),onEnableTemplate:m=>{Et(m)},onAction:(m,T)=>{Wa(m,T)},onRequestConfirm:oa,onEdit:m=>Q(m,"config"),onGoRuns:()=>Ta("runs"),onRequestCancelRun:(m,T)=>oa("cancel-run",m,T),schedulerActive:Ka,storageReady:Ya,busyTaskId:V}):Za?a(qe):a(Ke,{runs:d,tasks:r,onCancel:m=>oa("cancel-run",{id:m.taskId,title:m.taskTitle},m),onOpenSession:n,onOpenTask:m=>{I.current.some(T=>T.id===m)&&Q(m)},onGoTasks:()=>Ta("tasks"),onNewTask:()=>E(!0),busy:G}))),a(ai,{open:D,onClose:()=>E(!1),api:t,meta:o,onCreated:async m=>{E(!1),H(e.created),await U(),m!==null&&I.current.some(T=>T.id===m)&&Q(m)}}),a(ei,{open:B,onClose:()=>y(!1),notifications:c,onMarkAllRead:()=>{Mt()},onOpenTask:m=>{Lt(m)},busy:ea}),a(ti,{confirm:p,busy:G,error:A,onCancel:()=>{G||(_(null),J(""))},onConfirm:()=>{$t()}}),X.length>0?a("div",{className:"capital-automation-toast",role:"status"},X):null)}function ni(){return a($a,{width:18,height:18})}function oi(i){let t=se(),n=o=>{try{i.get("uiWorkspace")?.openSession?.(o)}catch{}};i.effect(()=>re(),`${Fa}: styles`),i.slots.inject("main",()=>i.slots.register({name:"main",key:at,inject:()=>({api:t,openSession:n})},ii)),i.slots.inject("sidebar.panellist",()=>i.slots.register({name:"sidebar.panellist",id:at,order:11,label:()=>e.panel},ni)),i.logger?.info?.(`${Fa}: \u5BA2\u6237\u7AEF\u534A\u8FB9\u5DF2\u6302\u8F7D\uFF08\u9875\u9762 + \u4FA7\u680F\u5165\u53E3\uFF09`)}exports.name=Fa;exports.inject=["slots"];exports.apply=oi;
405
406
  return module.exports
406
407
  },
407
408
  })
@@ -204,7 +204,6 @@ const zh = {
204
204
  weekdayWeekendQuick: '周末',
205
205
  weekdayNone: '未选择',
206
206
  weekdayEvery: '每天',
207
- done: '完成',
208
207
  tradingDaysField: '仅交易日',
209
208
  weekdayRequired: '每周至少选择一天。',
210
209
  dateRequired: '请选择运行日期。',
@@ -670,6 +669,7 @@ function installStyles() {
670
669
  .capital-automation-notificationmessage { display: -webkit-box; overflow: hidden; margin-top: 2px; color: var(--ca-muted); font-size: 11.5px; line-height: 18px; overflow-wrap: anywhere; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
671
670
  .capital-automation-notificationtime { display: block; margin-top: 3px; color: var(--ca-caption); font-size: 11px; line-height: 16px; }
672
671
  .capital-automation-modal { width: min(720px, calc(100vw - 32px)); max-width: min(720px, calc(100vw - 32px)); max-height: calc(100dvh - 40px); }
672
+ .capital-automation-modal-wizard { width: min(600px, calc(100vw - 32px)); max-width: min(600px, calc(100vw - 32px)); }
673
673
  .capital-automation-modal-content { max-height: calc(100dvh - 128px); overflow: auto; }
674
674
  .capital-automation-modal-narrow { width: min(480px, calc(100vw - 32px)); max-width: min(480px, calc(100vw - 32px)); }
675
675
  .capital-automation-wizard { display: flex; flex-direction: column; gap: 14px; }
@@ -1900,7 +1900,6 @@ function WeekdaySelect(props) {
1900
1900
  ...(weekend ? ['weekend'] : []),
1901
1901
  ]
1902
1902
  const pick = (id) => {
1903
- if (id === 'weekday-done') { setOpen(false); return }
1904
1903
  if (id === 'workday') { onChange([1, 2, 3, 4, 5]); return }
1905
1904
  if (id === 'weekend') { onChange([6, 7]); return }
1906
1905
  const day = Number(id.slice('weekday-'.length))
@@ -1926,7 +1925,6 @@ function WeekdaySelect(props) {
1926
1925
  selectedIds,
1927
1926
  onSelect: pick,
1928
1927
  onClose: () => setOpen(false),
1929
- footer: [{ id: 'weekday-done', label: zh.done }],
1930
1928
  align: 'start',
1931
1929
  portal: true,
1932
1930
  })
@@ -2800,7 +2798,7 @@ function NewTaskModal(props) {
2800
2798
  onClose: () => { if (!busy) onClose() },
2801
2799
  title: zh.newTaskTitle,
2802
2800
  closeLabel: zh.close,
2803
- className: 'capital-automation-modal',
2801
+ className: 'capital-automation-modal capital-automation-modal-wizard',
2804
2802
  contentClassName: 'capital-automation-modal-content',
2805
2803
  footer: h('div', { className: 'capital-automation-formactions', style: { borderTop: 0, paddingTop: 0 } },
2806
2804
  h('button', { type: 'button', className: 'capital-automation-btn', disabled: busy, onClick: onClose }, zh.cancel),
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@v587d/capital-automation",
3
- "version": "2.14.0",
3
+ "version": "2.15.0",
4
4
  "description": "CapGen 投研自动化:独立 host bundle(固定 capital_automation 域、单 scheduler owner、/capital-automation 路由与浏览器页面)。",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@v587d/capital-charts",
3
- "version": "2.14.0",
3
+ "version": "2.15.0",
4
4
  "description": "自动模式的图表前端组件(浏览器半边 + 序列旁路路由):由 @v587d/capital-generation 随包携带并作为 host 平面行挂载。",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@v587d/config",
3
- "version": "2.14.0",
3
+ "version": "2.15.0",
4
4
  "description": "自动模式的取数凭据与偏好配置行:卡片坐在 @v587d/capital-generation 插件主页的「配置」段,点这一行本身没有表单。",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -3,7 +3,7 @@
3
3
  * Known limit: DNS resolves per request but the IP is not pinned to the connection,
4
4
  * so a rebinding window remains (same trade-off as dsh-search-first).
5
5
  */
6
- export declare const LOCAL_FETCH_CLIENT_VERSION = "2.14.0";
6
+ export declare const LOCAL_FETCH_CLIENT_VERSION = "2.15.0";
7
7
  export declare const LOCAL_FETCH_MAX_URL_LENGTH = 2048;
8
8
  export type LocalFetchErrorCode = 'ABORTED' | 'TIMEOUT' | 'INVALID_URL' | 'BLOCKED_URL' | 'DNS' | 'REDIRECT' | 'HTTP' | 'TOO_LARGE' | 'UNSUPPORTED_CONTENT_TYPE';
9
9
  export declare class LocalFetchError extends Error {
@@ -4,7 +4,7 @@
4
4
  * so a rebinding window remains (same trade-off as dsh-search-first).
5
5
  */
6
6
  import { htmlToMarkdown, stripInvisibleText } from './html-markdown.js';
7
- export const LOCAL_FETCH_CLIENT_VERSION = '2.14.0';
7
+ export const LOCAL_FETCH_CLIENT_VERSION = '2.15.0';
8
8
  export const LOCAL_FETCH_MAX_URL_LENGTH = 2048;
9
9
  export class LocalFetchError extends Error {
10
10
  code;
@@ -87,8 +87,10 @@ export declare function resolveSseCompanyUid(transport: Requester, code: string,
87
87
  /** Split Q/A on the reply block class; per-item id markers differ between the two list kinds. */
88
88
  export declare function parseSseFeed(text: string): SourceItem[];
89
89
  /**
90
- * Normalize to Beijing "YYYY-MM-DD HH:MM" (never host local time). All three observed
91
- * forms (X分钟前 / 昨天 HH:MM / absolute) must parse or one row fails the page.
90
+ * Normalize a feed label to Beijing "YYYY-MM-DD HH:MM"; unknown shapes return undefined so
91
+ * the caller fails the page instead of carrying a blank column. The site mixes absolute
92
+ * question times with relative reply times ("昨天 18:22"): every form must parse or one row
93
+ * fails the page. Relative forms use Beijing wall clock, never host local time.
92
94
  */
93
95
  export declare function sseTime(text: string, now?: Date): string | undefined;
94
96
  export declare function sseinfoQa(transport: Requester, input: {
@@ -473,31 +473,87 @@ export function parseSseFeed(text) {
473
473
  }
474
474
  return items;
475
475
  }
476
+ const BEIJING_OFFSET_MS = 8 * 3600 * 1000;
477
+ const ONE_DAY_MS = 86_400_000;
478
+ const SSE_DAY_WORD_DAYS = { 今天: 0, 昨天: 1, 前天: 2 };
479
+ const SSE_ELAPSED_MS = { 秒: 1_000, 分钟: 60_000, 小时: 3_600_000, 天: ONE_DAY_MS };
480
+ /** Beijing wall clock carried in UTC fields, so UTC getters read as Beijing local time. */
481
+ function beijingClock(now) {
482
+ return new Date(now.getTime() + BEIJING_OFFSET_MS);
483
+ }
484
+ function beijingStamp(at) {
485
+ return new Date(at.getTime() + BEIJING_OFFSET_MS).toISOString().slice(0, 16).replace('T', ' ');
486
+ }
487
+ function pad2(value) {
488
+ return String(value).padStart(2, '0');
489
+ }
490
+ /** "HH:MM" from numeric fields; undefined means the label is not a real clock time. */
491
+ function clockText(hour, minute) {
492
+ return hour >= 0 && hour <= 23 && minute >= 0 && minute <= 59 ? `${pad2(hour)}:${pad2(minute)}` : undefined;
493
+ }
494
+ function realDate(year, month, day) {
495
+ if (month < 1 || month > 12 || day < 1)
496
+ return false;
497
+ const leap = year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
498
+ const lengths = [31, leap ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
499
+ return day <= (lengths[month - 1] ?? 0);
500
+ }
476
501
  /**
477
- * Normalize to Beijing "YYYY-MM-DD HH:MM" (never host local time). All three observed
478
- * forms (X分钟前 / 昨天 HH:MM / absolute) must parse or one row fails the page.
502
+ * Normalize a feed label to Beijing "YYYY-MM-DD HH:MM"; unknown shapes return undefined so
503
+ * the caller fails the page instead of carrying a blank column. The site mixes absolute
504
+ * question times with relative reply times ("昨天 18:22"): every form must parse or one row
505
+ * fails the page. Relative forms use Beijing wall clock, never host local time.
479
506
  */
480
507
  export function sseTime(text, now = new Date()) {
481
- const absolute = /(\d{4})年(\d{2})月(\d{2})日\s*(\d{2}:\d{2})/u.exec(text);
508
+ const label = text.trim();
509
+ const absolute = /(\d{4})\s*[年\-/]\s*(\d{1,2})\s*[月\-/]\s*(\d{1,2})\s*日?\s*(\d{1,2}):(\d{2})/u.exec(label);
482
510
  if (absolute !== null) {
483
- return `${absolute[1]}-${absolute[2]}-${absolute[3]} ${absolute[4]}`;
484
- }
485
- const beijing = new Date(now.getTime() + 8 * 3600 * 1000);
486
- const stamp = () => beijing.toISOString().slice(0, 16).replace('T', ' ');
487
- const relative = /(今天|昨天)\s*(\d{2}:\d{2})/u.exec(text);
488
- if (relative !== null) {
489
- if (relative[1] === '昨天')
490
- beijing.setUTCDate(beijing.getUTCDate() - 1);
491
- return `${beijing.toISOString().slice(0, 10)} ${relative[2]}`;
511
+ const [year, month, day] = [Number(absolute[1]), Number(absolute[2]), Number(absolute[3])];
512
+ const time = clockText(Number(absolute[4]), Number(absolute[5]));
513
+ return time === undefined || !realDate(year, month, day)
514
+ ? undefined
515
+ : `${absolute[1]}-${pad2(month)}-${pad2(day)} ${time}`;
516
+ }
517
+ const wall = beijingClock(now);
518
+ const dayWord = /^(今天|昨天|前天)\s*(\d{1,2}):(\d{2})$/u.exec(label);
519
+ if (dayWord !== null) {
520
+ const time = clockText(Number(dayWord[2]), Number(dayWord[3]));
521
+ if (time === undefined)
522
+ return undefined;
523
+ wall.setUTCDate(wall.getUTCDate() - SSE_DAY_WORD_DAYS[dayWord[1]]);
524
+ return `${wall.toISOString().slice(0, 10)} ${time}`;
525
+ }
526
+ // Month-day without a year: more than a day ahead means last year ("12-31" seen in January).
527
+ const monthDay = /^(\d{1,2})-(\d{1,2})\s+(\d{1,2}):(\d{2})$/u.exec(label);
528
+ if (monthDay !== null) {
529
+ const [month, day] = [Number(monthDay[1]), Number(monthDay[2])];
530
+ const time = clockText(Number(monthDay[3]), Number(monthDay[4]));
531
+ if (time === undefined || !realDate(wall.getUTCFullYear(), month, day))
532
+ return undefined;
533
+ let year = wall.getUTCFullYear();
534
+ const candidate = Date.UTC(year, month - 1, day, Number(monthDay[3]), Number(monthDay[4]));
535
+ if (candidate - wall.getTime() > ONE_DAY_MS) {
536
+ if (!realDate(year - 1, month, day))
537
+ return undefined;
538
+ year -= 1;
539
+ }
540
+ return `${String(year)}-${pad2(month)}-${pad2(day)} ${time}`;
492
541
  }
493
- const elapsed = /(\d+)\s*(分钟|小时)前/u.exec(text);
542
+ const elapsed = /^(\d+)\s*(秒|分钟|小时|天)前$/u.exec(label);
494
543
  if (elapsed !== null) {
495
- const amount = Number(elapsed[1]) * (elapsed[2] === '小时' ? 60 : 1);
496
- beijing.setUTCMinutes(beijing.getUTCMinutes() - amount);
497
- return stamp();
544
+ const when = new Date(now.getTime() - Number(elapsed[1]) * SSE_ELAPSED_MS[elapsed[2]]);
545
+ return Number.isNaN(when.getTime()) ? undefined : beijingStamp(when);
498
546
  }
499
547
  // 「刚刚」has no minute precision: use the current minute; otherwise fail (no guessing).
500
- return /^刚刚$/u.test(text.trim()) ? stamp() : undefined;
548
+ if (label === '刚刚' || label === '刚才')
549
+ return beijingStamp(now);
550
+ // Clock only means today in Beijing.
551
+ const clockOnly = /^(\d{1,2}):(\d{2})$/u.exec(label);
552
+ if (clockOnly !== null) {
553
+ const time = clockText(Number(clockOnly[1]), Number(clockOnly[2]));
554
+ return time === undefined ? undefined : `${wall.toISOString().slice(0, 10)} ${time}`;
555
+ }
556
+ return undefined;
501
557
  }
502
558
  export async function sseinfoQa(transport, input) {
503
559
  const type = SSE_KIND[input.kind];
@@ -35,7 +35,7 @@ export interface WindCallResult {
35
35
  code?: WindErrorCode;
36
36
  }
37
37
  /** Must match `package.json` version; a test pins the two together. */
38
- export declare const WIND_CLIENT_VERSION = "2.14.0";
38
+ export declare const WIND_CLIENT_VERSION = "2.15.0";
39
39
  export interface WindClient {
40
40
  callTool(toolName: string, args: Record<string, unknown>, signal?: AbortSignal): Promise<WindCallResult>;
41
41
  }
@@ -19,7 +19,7 @@ export const WIND_SERVER_ENDPOINTS = {
19
19
  analytics_data: 'https://mcp.wind.com.cn/vserver_analytics_data/mcp/',
20
20
  };
21
21
  /** Must match `package.json` version; a test pins the two together. */
22
- export const WIND_CLIENT_VERSION = '2.14.0';
22
+ export const WIND_CLIENT_VERSION = '2.15.0';
23
23
  function errorText(error) {
24
24
  return error instanceof Error ? error.message : String(error);
25
25
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@v587d/capital-generation",
3
- "version": "2.14.0",
3
+ "version": "2.15.0",
4
4
  "description": "Capital Generation:面向中国散户的 AI 投资助手插件(自动模式 Agent Preset)",
5
5
  "icon": "assets/cg-icon.png",
6
6
  "author": "v587d",
@@ -162,14 +162,14 @@
162
162
  },
163
163
  "peerDependencies": {
164
164
  "@deepseek-ai/cordis": "^4.0.2",
165
- "@deepseek-ai/dsh-skill": "0.2.1-rc.3",
166
- "@deepseek-ai/dsh-skill-filesystem": "0.2.1-rc.3"
165
+ "@deepseek-ai/dsh-skill": "0.2.1-rc.5",
166
+ "@deepseek-ai/dsh-skill-filesystem": "0.2.1-rc.5"
167
167
  },
168
168
  "devDependencies": {
169
169
  "@deepseek-ai/cordis": "^4.0.2",
170
- "@deepseek-ai/dsh-skill": "^0.2.1-rc.3",
171
- "@deepseek-ai/dsh-skill-filesystem": "^0.2.1-rc.3",
172
- "@deepseek-ai/dsh-system-prompt": "^0.2.1-rc.3",
170
+ "@deepseek-ai/dsh-skill": "^0.2.1-rc.5",
171
+ "@deepseek-ai/dsh-skill-filesystem": "^0.2.1-rc.5",
172
+ "@deepseek-ai/dsh-system-prompt": "^0.2.1-rc.5",
173
173
  "@deepseek-ai/schemastery": "^3.18.4",
174
174
  "esbuild": "^0.28.2",
175
175
  "js-yaml": "^5.4.1",
@@ -23,7 +23,7 @@
23
23
 
24
24
  ## 2. 人设(persona)承载与官方语义
25
25
 
26
- 实测 `dsh 0.2.1-rc.3`(`test/persona.test.mjs` 对着本机 dsh 核对字段名),两层载体注册的是
26
+ 实测 `dsh 0.2.1-rc.5`(`test/persona.test.mjs` 对着本机 dsh 核对字段名),两层载体注册的是
27
27
  **同一个 system-prompt 节名**:
28
28
 
29
29
  | 载体 | 位置 | 字段 | 生效范围 |
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@v587d/watchlist",
3
- "version": "2.14.0",
3
+ "version": "2.15.0",
4
4
  "description": "自动模式的用户自选股(宿主级清单 + Fuyao 报价快照 + /capital-watchlist 路由 + 输入框菜单弹窗):由 @v587d/capital-generation 随包携带并作为 host 平面行挂载。",
5
5
  "license": "MIT",
6
6
  "type": "module",