@bf-meishijian/aip 0.0.5 → 0.0.7

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.
Files changed (143) hide show
  1. package/README.md +114 -3
  2. package/dist/cli.d.ts +1 -1
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +57 -23
  5. package/dist/cli.js.map +1 -1
  6. package/dist/coding-run-manager.d.ts +83 -17
  7. package/dist/coding-run-manager.d.ts.map +1 -1
  8. package/dist/coding-run-manager.js +861 -644
  9. package/dist/coding-run-manager.js.map +1 -1
  10. package/dist/coding-subagent-child.d.ts +22 -0
  11. package/dist/coding-subagent-child.d.ts.map +1 -0
  12. package/dist/coding-subagent-child.js +83 -0
  13. package/dist/coding-subagent-child.js.map +1 -0
  14. package/dist/coding-subagents.d.ts +65 -0
  15. package/dist/coding-subagents.d.ts.map +1 -0
  16. package/dist/coding-subagents.js +521 -0
  17. package/dist/coding-subagents.js.map +1 -0
  18. package/dist/command-wakeup.d.ts +19 -0
  19. package/dist/command-wakeup.d.ts.map +1 -0
  20. package/dist/command-wakeup.js +109 -0
  21. package/dist/command-wakeup.js.map +1 -0
  22. package/dist/daemon.d.ts +4 -1
  23. package/dist/daemon.d.ts.map +1 -1
  24. package/dist/daemon.js +189 -79
  25. package/dist/daemon.js.map +1 -1
  26. package/dist/delivery-files.d.ts +24 -9
  27. package/dist/delivery-files.d.ts.map +1 -1
  28. package/dist/delivery-files.js +171 -45
  29. package/dist/delivery-files.js.map +1 -1
  30. package/dist/delivery-tools.d.ts +28 -0
  31. package/dist/delivery-tools.d.ts.map +1 -0
  32. package/dist/delivery-tools.js +167 -0
  33. package/dist/delivery-tools.js.map +1 -0
  34. package/dist/diagnostics.d.ts +1 -0
  35. package/dist/diagnostics.d.ts.map +1 -1
  36. package/dist/diagnostics.js +48 -14
  37. package/dist/diagnostics.js.map +1 -1
  38. package/dist/installer.d.ts +5 -8
  39. package/dist/installer.d.ts.map +1 -1
  40. package/dist/installer.js +155 -65
  41. package/dist/installer.js.map +1 -1
  42. package/dist/linux-service.d.ts +14 -0
  43. package/dist/linux-service.d.ts.map +1 -0
  44. package/dist/linux-service.js +63 -0
  45. package/dist/linux-service.js.map +1 -0
  46. package/dist/live-employee.d.ts +6 -3
  47. package/dist/live-employee.d.ts.map +1 -1
  48. package/dist/live-employee.js +245 -49
  49. package/dist/live-employee.js.map +1 -1
  50. package/dist/local-handoff-workspace.d.ts +20 -0
  51. package/dist/local-handoff-workspace.d.ts.map +1 -0
  52. package/dist/local-handoff-workspace.js +80 -0
  53. package/dist/local-handoff-workspace.js.map +1 -0
  54. package/dist/local-model-usage.d.ts +6 -0
  55. package/dist/local-model-usage.d.ts.map +1 -0
  56. package/dist/local-model-usage.js +40 -0
  57. package/dist/local-model-usage.js.map +1 -0
  58. package/dist/login-url.d.ts +3 -0
  59. package/dist/login-url.d.ts.map +1 -0
  60. package/dist/login-url.js +30 -0
  61. package/dist/login-url.js.map +1 -0
  62. package/dist/paths.d.ts +9 -0
  63. package/dist/paths.d.ts.map +1 -1
  64. package/dist/paths.js +27 -3
  65. package/dist/paths.js.map +1 -1
  66. package/dist/pi-message-queue.d.ts +15 -0
  67. package/dist/pi-message-queue.d.ts.map +1 -0
  68. package/dist/pi-message-queue.js +57 -0
  69. package/dist/pi-message-queue.js.map +1 -0
  70. package/dist/pi-model-service.d.ts +11 -0
  71. package/dist/pi-model-service.d.ts.map +1 -1
  72. package/dist/pi-model-service.js +28 -11
  73. package/dist/pi-model-service.js.map +1 -1
  74. package/dist/platform-client.d.ts +230 -6
  75. package/dist/platform-client.d.ts.map +1 -1
  76. package/dist/platform-client.js +87 -0
  77. package/dist/platform-client.js.map +1 -1
  78. package/dist/profile.d.ts +9 -0
  79. package/dist/profile.d.ts.map +1 -0
  80. package/dist/profile.js +43 -0
  81. package/dist/profile.js.map +1 -0
  82. package/dist/project-facts.d.ts +19 -0
  83. package/dist/project-facts.d.ts.map +1 -0
  84. package/dist/project-facts.js +91 -0
  85. package/dist/project-facts.js.map +1 -0
  86. package/dist/provider-auth-error.d.ts +3 -0
  87. package/dist/provider-auth-error.d.ts.map +1 -0
  88. package/dist/provider-auth-error.js +12 -0
  89. package/dist/provider-auth-error.js.map +1 -0
  90. package/dist/qa-contract.d.ts +2 -0
  91. package/dist/qa-contract.d.ts.map +1 -0
  92. package/dist/qa-contract.js +165 -0
  93. package/dist/qa-contract.js.map +1 -0
  94. package/dist/qa-http-validation.js +145 -0
  95. package/dist/qa-project-checkout.d.ts +12 -0
  96. package/dist/qa-project-checkout.d.ts.map +1 -0
  97. package/dist/qa-project-checkout.js +68 -0
  98. package/dist/qa-project-checkout.js.map +1 -0
  99. package/dist/qa-session-manager.d.ts +101 -0
  100. package/dist/qa-session-manager.d.ts.map +1 -0
  101. package/dist/qa-session-manager.js +581 -0
  102. package/dist/qa-session-manager.js.map +1 -0
  103. package/dist/review-report.d.ts +9 -0
  104. package/dist/review-report.d.ts.map +1 -0
  105. package/dist/review-report.js +61 -0
  106. package/dist/review-report.js.map +1 -0
  107. package/dist/secure-json.d.ts.map +1 -1
  108. package/dist/secure-json.js +64 -2
  109. package/dist/secure-json.js.map +1 -1
  110. package/dist/stage-delivery.js +43 -25
  111. package/dist/state.d.ts +2 -2
  112. package/dist/state.d.ts.map +1 -1
  113. package/dist/state.js +6 -4
  114. package/dist/state.js.map +1 -1
  115. package/dist/test-cli.d.ts +2 -0
  116. package/dist/test-cli.d.ts.map +1 -0
  117. package/dist/test-cli.js +50 -0
  118. package/dist/test-cli.js.map +1 -0
  119. package/dist/test-executor.d.ts +44 -0
  120. package/dist/test-executor.d.ts.map +1 -0
  121. package/dist/test-executor.js +474 -0
  122. package/dist/test-executor.js.map +1 -0
  123. package/dist/test-reports.d.ts +13 -0
  124. package/dist/test-reports.d.ts.map +1 -0
  125. package/dist/test-reports.js +129 -0
  126. package/dist/test-reports.js.map +1 -0
  127. package/dist/test-run-manager.d.ts +24 -0
  128. package/dist/test-run-manager.d.ts.map +1 -0
  129. package/dist/test-run-manager.js +121 -0
  130. package/dist/test-run-manager.js.map +1 -0
  131. package/dist/tool-dispatch.d.ts +14 -0
  132. package/dist/tool-dispatch.d.ts.map +1 -0
  133. package/dist/tool-dispatch.js +56 -0
  134. package/dist/tool-dispatch.js.map +1 -0
  135. package/dist/windows-runtime.d.ts +9 -0
  136. package/dist/windows-runtime.d.ts.map +1 -0
  137. package/dist/windows-runtime.js +64 -0
  138. package/dist/windows-runtime.js.map +1 -0
  139. package/dist/windows-service.d.ts +20 -0
  140. package/dist/windows-service.d.ts.map +1 -0
  141. package/dist/windows-service.js +96 -0
  142. package/dist/windows-service.js.map +1 -0
  143. package/package.json +17 -6
package/README.md CHANGED
@@ -1,14 +1,110 @@
1
1
  # AI Platform Local Coding Host
2
2
 
3
- 通过 npm 安装的本地客户端,支持 macOS Apple Silicon(M 系列)、macOS Intel 与 Windows x64。需要 Node.js 24 或更新版本。
3
+ ## 本地与云端环境
4
+
5
+ 云端使用 `aip`(default profile),本地使用 `aip --local`(local profile)。例如 `aip --local login`、`aip --local host status`、`aip --local doctor`。本地首次登录默认 API 为 `http://127.0.0.1:3000`;云端首次登录需通过安装脚本或 `--platform URL` 明确地址。
6
+
7
+ 两套凭证、模型配置、任务、Runtime 和日志分别位于 `~/.aip/profiles/default`、`~/.aip/profiles/local`;后台服务名称独立,可同时运行。已绑定的平台地址不能通过再次登录覆盖;退出登录保留地址绑定。没有全局环境切换。
8
+
9
+ `AIP_HOME` 表示安装基础目录;`AIP_PROFILE` 是后台服务和子进程继承的内部环境标识。下文 `$AIP_HOME/workspaces` 等旧示例中的 Host 数据根目录现在应使用 `$AIP_HOME/profiles/<default 或 local>`。共享 CLI 入口位于 `$AIP_HOME/bin`,不从另一 profile 回退读取配置。既有安装需执行经核实的一次性迁移,不自动读取旧目录。
10
+
11
+
12
+ 本地 Coding Host 支持 Windows x64、macOS Apple Silicon/Intel,以及 Linux x64/arm64。安装器下载自带 Node.js 的预构建 Runtime,用户不需要预装 Node.js 或 npm。
4
13
 
5
14
  ```bash
6
- npm install -g @bf-meishijian/aip@0.0.5
15
+ npm install -g @bf-meishijian/aip@0.0.6
7
16
  aip host install
8
17
  aip doctor
9
18
  ```
10
19
 
11
- npm 自动安装对应系统架构的 Runtime。首次使用执行 `aip login --platform <平台地址>` 完成登录;升级后必须执行 `aip host install` 激活新 Runtime。平台后端需同步支持 Runtime 0.0.5。
20
+ npm 自动安装对应系统架构的 Runtime。首次使用执行 `aip login --platform <平台地址>` 完成登录;升级后必须执行 `aip host install` 激活新 Runtime。平台后端需同步支持 Runtime 0.0.6。
21
+
22
+ 本地 Docker 验收环境的一条命令如下。
23
+
24
+ Windows PowerShell:
25
+
26
+ ```powershell
27
+ irm "http://127.0.0.1:4174/downloads/aip/install.ps1" | iex
28
+ ```
29
+
30
+ macOS 或 Linux:
31
+
32
+ ```bash
33
+ curl -fsSL "http://127.0.0.1:4174/downloads/aip/install.sh" | bash
34
+ ```
35
+
36
+ 脚本自动选择当前系统与 CPU 架构对应的 Runtime,完成下载、SHA-256 校验、一次解压、后台服务安装、平台登录、设备注册和启动。相同版本重复执行时复用已校验的 Runtime,不再次下载和解压。注册不会自动使用 `--yes` 替换已有活动机器。
37
+
38
+ Runtime 构建时将 Host 与 Pi 的 JavaScript 依赖合并为少量文件;只保留工作区命令所需的 npm,以及依赖旁置 WASM 的 Photon 图像模块。五个平台的 Runtime 清单均约 2,000 个文件。构建脚本在本机目标上验证 CLI、npm、Pi 会话和图像 Worker;发布后的隔离安装还需通过 `scripts/test-aip-fast-install.ps1` 实测。安装耗时会随磁盘、杀毒软件和下载网络变化。
39
+
40
+ 交互式安装会提示输入平台 Web 根地址;直接回车使用脚本中的默认地址。该地址必须能打开平台页面并代理 `/api/health/live` 与 `/api/v1`,不能填仅提供 API 的 `:3000` 端口。非交互安装可预先设置 `AIP_PLATFORM_URL`。一键安装用选定地址生成验证码页面链接,登录和 Host 注册也连接该地址;下载脚本和 Runtime 的来源不随平台地址变化。手动执行 `aip login --platform <API 地址>` 时仍使用平台 API 返回的验证码页面链接。
41
+
42
+ 平台页面的“运行诊断”复核安装包校验凭据和启动关键文件,避免每次扫描上万文件;命令行 `aip doctor` 仍执行 Runtime 清单的逐文件 SHA-256 完整校验。
43
+
44
+ 本地自动验收先构建并发布 Windows Runtime、启动 `platform-web`,再执行:
45
+
46
+ ```powershell
47
+ powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/test-aip-fast-install.ps1
48
+ ```
49
+
50
+ 正式发布需要为五种目标生成 Runtime 压缩包及 `.sha256`:
51
+
52
+ ```bash
53
+ pnpm runtime:release:local-coding-host
54
+ ```
55
+
56
+ 发布服务必须把 `install.ps1`、`install.sh` 与 `releases/` 保持在同一版本。正式公网通过 HTTPS 提供;公司内网阶段允许私网 IPv4 HTTP,并在页面提示明文下载风险。云端发布时将脚本中的平台地址和下载基址渲染为对应环境的固定地址,最终用户只复制无参数的一条命令。
57
+
58
+ ```bash
59
+ node scripts/render-aip-installers.mjs \
60
+ --platform-url "https://platform.example.com" \
61
+ --download-base "https://download.example.com/downloads/aip/releases" \
62
+ --output ".artifacts/aip-release"
63
+ ```
64
+
65
+ 渲染输出不包含凭证;下载地址和平台地址可以不同。将输出脚本与五种 Runtime 发布包部署到固定 HTTPS 或公司私网 IPv4 HTTP 地址后,Windows 使用 `irm <install.ps1> | iex`,macOS/Linux 使用 `curl -fsSL <install.sh> | bash`。
66
+
67
+ ### S3 安装包发布
68
+
69
+ 项目附件使用的 `S3_BUCKET` 存放私有图片和 QA 附件,安装包使用单独的桶。为专用桶配置持续在线的 HTTPS 下载域名,使 `https://download.example.com/aip/` 映射到桶内 `aip/` 对象;脚本和 Runtime 必须可由未登录、没有 S3 凭证的客户端读取。发布环境配置以下变量,不把密钥写进仓库或脚本:
70
+
71
+ | 变量 | 用途 |
72
+ | --- | --- |
73
+ | `AIP_RELEASE_S3_BUCKET` | 安装包专用桶,不能与 `S3_BUCKET` 相同 |
74
+ | `AIP_RELEASE_PUBLIC_BASE_URL` | HTTPS 根地址,或公司私网 IPv4 HTTP 根地址 |
75
+ | `AIP_RELEASE_PLATFORM_URL` | 安装时显示的默认平台 Web 地址;HTTPS 或私网 IPv4 HTTP,用户仍可输入其他平台 |
76
+ | `AIP_RELEASE_S3_REGION` | S3 区域;未设置时使用 `S3_REGION` 或 `us-east-1` |
77
+ | `AIP_RELEASE_S3_ENDPOINT` | 使用 S3 兼容服务时的 API 端点,AWS S3 可省略 |
78
+ | `AIP_RELEASE_KEY_PREFIX` | 桶内对象前缀,默认 `aip`;公开地址路径需匹配 |
79
+ | `AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY` | 仅发布环境使用的上传凭证 |
80
+
81
+ 先运行 `pnpm runtime:release:local-coding-host`,再运行 `node scripts/publish-aip-release.mjs` 做只读发布计划检查;配置完成后显式添加 `--publish` 才写入 S3。脚本先校验五平台包及 SHA-256,上传带版本号的 Runtime 与校验文件,检查公开下载可访问,最后更新固定的 `install.ps1` 和 `install.sh`。上传中途失败不会让安装脚本指向尚未发布的 Runtime。
82
+
83
+ GitLab 中 `aip-v<版本号>` 标签提供手动的 `aip-s3-release` 作业;配置上述 CI 变量后触发发布。无专用桶或可访问的 HTTPS/私网 IPv4 HTTP 地址时只可本地验证发布计划,不能向用户提供云端安装命令。发布后从没有 S3/GitLab 凭证的另一台电脑核对两个脚本、五平台包和 SHA-256,再公布固定命令。
84
+
85
+ ## Windows 安装与后台运行
86
+
87
+ `install.ps1` 使用纯 ASCII 源码,同时兼容 Windows PowerShell 5.1 的 `-File` 和 `irm | iex` 两种执行方式。脚本使用系统自带的 `tar.exe` 解压 Runtime,并通过计划任务 `AI Platform Local Coding Host` 隐藏启动。
88
+
89
+ Windows 安装器生成 `.aip/bin/host-daemon.ps1`,由计划任务 `AI Platform Local Coding Host` 使用隐藏 PowerShell 启动 Runtime。任务在当前用户登录 Windows 后自动启动,不依赖安装终端保持打开;不是未登录时运行的系统服务。`aip host stop/restart` 同时检查该 Runtime 的 daemon 是否退出,不停止其他 Node.js 程序。
90
+
91
+ 重复安装先校验并自检候选,再停止 Host,将 `runtime/current` junction 切换到独立的版本目录。Windows 不再覆盖同名版本目录或删除仍被安装 CLI 占用的 `node.exe`。候选启动失败时停止候选、恢复旧链接并重新启动;失败原因继续返回给用户。历史 Runtime 目录保留供恢复,不在安装过程中清理;登录凭证、工作区和模型配置不变。
92
+
93
+ 以上修复需要重新构建并分发 Runtime 压缩包,已经发布的 npm `0.0.5` 包不会因仓库修改自动更新。打包验收遵循 `docs/development/local-acceptance.md`,不通过重复安装旧 npm 包验证修复。
94
+
95
+ ## macOS 与 Linux 后台运行
96
+
97
+ macOS 使用当前用户的 LaunchAgent,登录系统后自动启动。Linux 写入 `~/.config/systemd/user/aip-local-coding-host.service`,并执行 `systemctl --user enable` 和 `restart`。Linux 环境必须可用 systemd user service;缺失时安装保留已下载 Runtime,但明确返回后台服务安装失败。
98
+
99
+ ## 云平台设备授权地址
100
+
101
+ 手动运行 `aip login --platform <平台 API 可访问地址>` 的设备确认链接由 Platform API 返回。云端仍应将 `PLATFORM_WEB_URL` 设置为用户浏览器实际访问的 Web origin(协议、主机、端口),不要使用开发默认的 `http://127.0.0.1:4174`。一键安装使用用户选择的 Web 地址生成确认链接。测试环境当前入口示例:
102
+
103
+ ```dotenv
104
+ PLATFORM_WEB_URL=http://10.254.208.127:4173
105
+ ```
106
+
107
+ 部署时核对真实入口,不把示例 IP 写死进安装器。配置生效后重新执行 `aip login`,确认输出链接的 origin 正确,并完成一次浏览器设备授权。旧验证码不应作为验收凭证复用。
12
108
 
13
109
  ## 上线准备与 GitLab MR
14
110
 
@@ -28,3 +124,18 @@ aip mr register --work-item BAOFU-91 --project scf-member --iid 128
28
124
  MR 创建成功但平台登记失败时,Runtime 保存待登记结果。重试同一命令会登记原 MR,即使原 MR 后来已合并或关闭,也不会因登记失败重复创建。登记成功后平台保留 MR 历史及当前关联。
29
125
 
30
126
  用户明确要求修改应用代码时,开发会话调用 `request_code_changes` 返回开发,再交接原测试会话和人工确认。仅解释、更新清单或 MR 说明不自动退回。整个研发流程仅按项目及源/目标分支推进,不使用 commit ID 或 tree hash 一致性门禁;实际发布、知识整理和关单不属于上线准备。
127
+
128
+
129
+ ## 测试项目本地仓库
130
+
131
+ 目录采集和正式测试共用 `$AIP_HOME/workspaces/qa-projects/<projectId>/repository`。每个项目首次创建仓库,之后增量 fetch 并检出请求固定的提交;同项目任务串行,不同项目互不占用。通过现有 proper-lockfile 防止 CLI 与 daemon 同时改动同一目录,跨进程占用会如实报错,不重试业务执行。
132
+
133
+ 这是 Host 专用运行目录,不是开发工作区。更新前清理其中的旧产物与修改,防止复用旧 JUnit 结果。同项目同远端同提交最近一次成功采集的 manifest 保存在项目目录,正式运行可复用它并跳过 collect;点击“加载最新 main 目录”仍执行 collect,便于主动刷新。命令事实只记录本次实际执行的阶段,不伪造缓存命中时的 collect。
134
+
135
+ 执行附件先复制到 `$AIP_HOME/workspaces/qa-executions/<executionId>/artifacts`,独立于可更新的项目仓库。平台确认附件和结果回传成功后删除该执行附件目录;回传失败保留原文件供显式重传,后续项目更新不会覆盖。结果 JSON 与回传标记保留用于阻止重复执行。旧版本遗留的逐次仓库不自动删除,也不为失败证据设置隐式过期删除。
136
+
137
+ ## 用例与验收标准
138
+
139
+ 仓库 manifest 只描述可复用用例,不声明 `ac`。工单的 AC 与 `caseId` 通过本工单测试计划中的 `ac`、`automationCaseIds` 建立关联;正式执行绑定计划版本。独立回归没有工单 AC 关联。旧执行原始证据保留,但目录中的旧 AC 不再参与覆盖或验收判断。
140
+
141
+ 移除 AC 契约须与测试仓库、平台 API 和 Host 一起更新。旧格式目录会被新契约拒绝;仍使用旧分支的工单应先将测试资产更新到新契约,再执行,不由平台猜测或补写关联。
package/dist/cli.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- export declare function main(args?: string[]): Promise<void>;
2
+ export declare function main(args?: string[]): Promise<number | void>;
3
3
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA2BA,wBAAsB,IAAI,CAAC,IAAI,WAAwB,iBAmBtD"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAwBA,wBAAsB,IAAI,CAAC,IAAI,WAAwB,0BAoBtD"}
package/dist/cli.js CHANGED
@@ -4,17 +4,20 @@ import { readFile, unlink } from "node:fs/promises";
4
4
  import { homedir } from "node:os";
5
5
  import { basename, join } from "node:path";
6
6
  import { fileURLToPath } from "node:url";
7
- import { runDiagnostics } from "./diagnostics.js";
8
7
  import { installRuntime } from "./installer.js";
9
- import { findMergeRequestContext, prepareMergeRequest, registerMergeRequest, } from "./merge-requests.js";
10
- import { openBrowser } from "./open-browser.js";
11
- import { paths } from "./paths.js";
12
- import { createPiModelService, isDefaultModelValid } from "./pi-model-service.js";
8
+ import { linuxServiceAction } from "./linux-service.js";
9
+ import { verificationUriForLogin } from "./login-url.js";
10
+ import { activeProfile, aipCommand, launchAgentLabel, paths, windowsTaskName } from "./paths.js";
11
+ import { readProfileBinding, resolveLoginPlatform, selectProfile } from "./profile.js";
13
12
  import { PlatformClient, PlatformClientError } from "./platform-client.js";
14
13
  import { hostIdentity, readDeviceAuth, readHostState, registrationCatalogRevision, writeDeviceAuth, writeHostState, } from "./state.js";
14
+ import { testCli } from "./test-cli.js";
15
+ import { stopWindowsTask } from "./windows-service.js";
15
16
  export async function main(args = process.argv.slice(2)) {
16
- const [command, ...commandArgs] = args;
17
+ const [command, ...commandArgs] = selectProfile(args);
17
18
  const [subcommand, ...rest] = commandArgs;
19
+ if (command === "test")
20
+ return testCli(subcommand, rest);
18
21
  if (command === "mr")
19
22
  return mergeRequest(subcommand, rest);
20
23
  if (command === "login")
@@ -22,7 +25,7 @@ export async function main(args = process.argv.slice(2)) {
22
25
  if (command === "logout")
23
26
  return logout();
24
27
  if (command === "host" && subcommand === "install")
25
- return install();
28
+ return install(rest);
26
29
  if (command === "host" && subcommand === "register")
27
30
  return register(rest);
28
31
  if (command === "host" && subcommand === "status")
@@ -44,8 +47,9 @@ export async function main(args = process.argv.slice(2)) {
44
47
  process.stdout.write(help());
45
48
  }
46
49
  async function mergeRequest(action, args) {
50
+ const { findMergeRequestContext, prepareMergeRequest, registerMergeRequest } = await import("./merge-requests.js");
47
51
  if (action !== "submit" && action !== "register")
48
- throw new Error("用法:aip mr submit|register --work-item KEY --project NAME");
52
+ throw new Error(`用法:${aipCommand()} mr submit|register --work-item KEY --project NAME`);
49
53
  const workItem = option(args, "--work-item");
50
54
  const projectName = option(args, "--project");
51
55
  if (!workItem || !projectName)
@@ -71,26 +75,33 @@ async function mergeRequest(action, args) {
71
75
  await registerMergeRequest(new PlatformClient(device.platformUrl, device.deviceToken), context, host, result, pendingFile);
72
76
  print({ workItem: context.workItem.key, ...result });
73
77
  }
74
- async function install() {
78
+ async function install(args) {
75
79
  try {
76
- print(await installRuntime());
80
+ const preparedRuntime = option(args, "--prepared-runtime");
81
+ print(await installRuntime({
82
+ ...(preparedRuntime && preparedRuntime !== "true" ? { preparedRuntime } : {}),
83
+ }));
77
84
  }
78
85
  catch (error) {
79
86
  const message = error instanceof Error ? error.message : String(error);
80
- throw new Error(`${message};请修复制品后重新执行 aip host install`);
87
+ throw new Error(`${message};请修复问题后重新执行 ${aipCommand()} host install`);
81
88
  }
82
89
  }
83
90
  async function login(args) {
84
- const platformUrl = option(args, "--platform") ?? process.env.AIP_PLATFORM_URL ?? "http://127.0.0.1:3000";
91
+ const platformUrl = await resolveLoginPlatform(option(args, "--platform"));
92
+ const verificationWebUrl = option(args, "--verification-web");
85
93
  const identity = hostIdentity();
86
94
  const client = new PlatformClient(platformUrl);
87
95
  const request = await client.request("/api/v1/local-coding-host/device-login/requests", {
88
96
  method: "POST",
89
97
  body: JSON.stringify({ hostName: identity.hostName, os: identity.os, arch: identity.arch }),
90
98
  });
91
- process.stdout.write(`设备验证码:${request.userCode}\n请在平台确认:${request.verificationUri}\n`);
99
+ const verificationUri = verificationUriForLogin(platformUrl, request.userCode, request.verificationUri, verificationWebUrl);
100
+ process.stdout.write(`设备验证码:${request.userCode}\n请在平台确认:${verificationUri}\n`);
92
101
  if (process.env.AIP_NO_OPEN !== "1")
93
- await openBrowser(request.verificationUri).catch(() => undefined);
102
+ await import("./open-browser.js")
103
+ .then(({ openBrowser }) => openBrowser(verificationUri))
104
+ .catch(() => undefined);
94
105
  const deadline = new Date(request.expiresAt).getTime();
95
106
  while (Date.now() < deadline) {
96
107
  const result = await client.request(`/api/v1/local-coding-host/device-login/requests/${request.requestId}/poll`, {
@@ -104,7 +115,7 @@ async function login(args) {
104
115
  expiresAt: result.expiresAt,
105
116
  user: result.user,
106
117
  });
107
- process.stdout.write(`已登录:${result.user.username}\n`);
118
+ process.stdout.write(`已登录:${result.user.username};环境:${activeProfile()};平台:${platformUrl}\n`);
108
119
  return;
109
120
  }
110
121
  if (result.status !== "PENDING")
@@ -121,7 +132,7 @@ async function logout() {
121
132
  await serviceAction("stop", true);
122
133
  await unlink(paths().deviceAuth).catch(() => undefined);
123
134
  await unlink(paths().hostState).catch(() => undefined);
124
- process.stdout.write("已退出本地开发环境\n");
135
+ process.stdout.write(`已退出环境:${activeProfile()}\n`);
125
136
  }
126
137
  async function persistRegisteredHost(identity, registered) {
127
138
  const previous = await readHostState();
@@ -162,15 +173,23 @@ async function register(args) {
162
173
  async function status() {
163
174
  const device = await readDeviceAuth();
164
175
  const host = await readHostState();
165
- print({ platformLogin: Boolean(device), host });
176
+ print({
177
+ profile: activeProfile(),
178
+ platformUrl: (await readProfileBinding())?.platformUrl ?? null,
179
+ root: paths().root,
180
+ platformLogin: Boolean(device),
181
+ host,
182
+ });
166
183
  }
167
184
  async function providerLogin(raw) {
185
+ const { createPiModelService } = await import("./pi-model-service.js");
168
186
  const providerId = parseProvider(raw);
169
187
  const result = await createPiModelService().login(providerId, "local");
170
188
  await refreshBackgroundStatus();
171
189
  print(result);
172
190
  }
173
191
  async function providerLogout(raw) {
192
+ const { createPiModelService } = await import("./pi-model-service.js");
174
193
  const providerId = parseProvider(raw);
175
194
  await createPiModelService().logout(providerId);
176
195
  await refreshBackgroundStatus();
@@ -181,6 +200,10 @@ async function refreshBackgroundStatus() {
181
200
  await serviceAction("start", true);
182
201
  }
183
202
  async function doctor() {
203
+ const [{ createPiModelService, isDefaultModelValid }, { runDiagnostics }] = await Promise.all([
204
+ import("./pi-model-service.js"),
205
+ import("./diagnostics.js"),
206
+ ]);
184
207
  const pi = createPiModelService();
185
208
  const device = await readDeviceAuth();
186
209
  const host = await readHostState();
@@ -209,6 +232,7 @@ async function doctor() {
209
232
  defaultModelValid: isDefaultModelValid(defaultRunConfig, models),
210
233
  providerReady: states.some((state) => state.status === "READY"),
211
234
  });
235
+ process.stdout.write(`环境:${activeProfile()};平台:${(await readProfileBinding())?.platformUrl ?? "未绑定"};目录:${paths().root}\n`);
212
236
  for (const check of checks)
213
237
  process.stdout.write(`${check.status.padEnd(15)} ${check.id} ${check.code};${check.nextAction}\n`);
214
238
  if (checks.some((check) => check.status === "FAIL"))
@@ -217,9 +241,17 @@ async function doctor() {
217
241
  async function serviceAction(action, ignoreFailure = false) {
218
242
  const { spawn } = await import("node:child_process");
219
243
  if (process.platform === "win32") {
220
- const args = action === "start"
221
- ? ["/Run", "/TN", "AI Platform Local Coding Host"]
222
- : ["/End", "/TN", "AI Platform Local Coding Host"];
244
+ if (action === "stop") {
245
+ try {
246
+ await stopWindowsTask(paths().runtimeCurrent);
247
+ }
248
+ catch (error) {
249
+ if (!ignoreFailure)
250
+ throw error;
251
+ }
252
+ return;
253
+ }
254
+ const args = ["/Run", "/TN", windowsTaskName()];
223
255
  const code = await new Promise((resolve) => {
224
256
  const child = spawn("schtasks.exe", args, { stdio: "inherit" });
225
257
  child.once("exit", (value) => resolve(value ?? 1));
@@ -228,9 +260,11 @@ async function serviceAction(action, ignoreFailure = false) {
228
260
  throw new Error(`后台服务操作失败 (${code})`);
229
261
  return;
230
262
  }
263
+ if (process.platform === "linux")
264
+ return linuxServiceAction(action, ignoreFailure);
231
265
  if (process.platform !== "darwin")
232
266
  throw new Error("当前平台不支持后台服务管理");
233
- const label = `com.ai-platform.local-coding-host${process.env.AIP_INSTANCE_SUFFIX ? `.${process.env.AIP_INSTANCE_SUFFIX}` : ""}`;
267
+ const label = launchAgentLabel();
234
268
  const domain = `gui/${process.getuid?.() ?? 0}`;
235
269
  const launchDir = process.env.AIP_LAUNCH_AGENT_DIR || `${homedir()}/Library/LaunchAgents`;
236
270
  const plist = `${launchDir}/${label}.plist`;
@@ -262,7 +296,7 @@ function option(args, key) {
262
296
  function requireDevice() {
263
297
  return readDeviceAuth().then((value) => {
264
298
  if (!value)
265
- throw new Error("请先执行 aip login");
299
+ throw new Error(`请先执行 ${aipCommand()} login`);
266
300
  return value;
267
301
  });
268
302
  }
@@ -273,7 +307,7 @@ function print(value) {
273
307
  process.stdout.write(`${JSON.stringify(value, null, 2)}\n`);
274
308
  }
275
309
  function help() {
276
- return `用法:\n aip login [--platform URL]\n aip logout\n aip host install|register|start|stop|restart|status\n aip provider login|logout chatgpt|claude\n aip doctor\n aip mr submit --work-item KEY --project NAME --description-file PATH [--title TITLE]\n aip mr register --work-item KEY --project NAME --iid NUMBER\n`;
310
+ return `用法(云端默认 default,本地使用 --local):\n aip [--local] login [--platform URL] [--verification-web WEB_URL]\n aip [--local] logout\n aip [--local] host install [--prepared-runtime PATH]\n aip [--local] host register|start|stop|restart|status\n aip [--local] provider login|logout chatgpt|claude\n aip [--local] doctor\n aip [--local] mr submit --work-item KEY --project NAME --description-file PATH [--title TITLE]\n aip [--local] mr register --work-item KEY --project NAME --iid NUMBER\n`;
277
311
  }
278
312
  if (isEntrypoint()) {
279
313
  main().catch((error) => {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
- import type { LocalCodingHostClaimedCommand } from "@ai-platform/api-contracts";
1
+ import type { DeploymentConfigurationSnapshot, LocalCodingHostClaimedCommand } from "@ai-platform/api-contracts";
2
+ import type { Model } from "@earendil-works/pi-ai";
3
+ import { type AgentSession, type ExtensionFactory, type ModelRuntime } from "@earendil-works/pi-coding-agent";
4
+ export { worktreeTreeHash } from "./project-facts.js";
5
+ import { type MaterialSource } from "./delivery-files.js";
2
6
  import type { PiModelService } from "./pi-model-service.js";
3
7
  import { type PlatformClient } from "./platform-client.js";
4
8
  interface HostIdentity {
@@ -6,8 +10,52 @@ interface HostIdentity {
6
10
  generation: number;
7
11
  }
8
12
  interface RunInput {
9
- phase: "PREPARATION" | "DEVELOPMENT" | "INTEGRATION";
13
+ transferContinuation?: boolean;
14
+ transferWorkspaces?: {
15
+ priorRunIds: string[];
16
+ uninitializedProjectIds: string[];
17
+ };
18
+ localIntake?: {
19
+ id: string;
20
+ projects: Array<{
21
+ projectId: string;
22
+ branch: string;
23
+ commitSha: string;
24
+ }>;
25
+ };
26
+ deliveryRequirements: import("@ai-platform/api-contracts").CodingDeliveryRequirements;
27
+ materialPreparation: import("@ai-platform/api-contracts").WorkspaceMaterialPreparation;
28
+ discussionTurn?: boolean;
29
+ conversationContext?: {
30
+ discussionOnly?: boolean;
31
+ };
32
+ autoContinueEnabled?: boolean;
33
+ deliveryCycle?: {
34
+ active: boolean;
35
+ reworkCount: number;
36
+ };
37
+ qualityReview?: {
38
+ enabled: boolean;
39
+ };
40
+ phase: "PREPARATION" | "DEVELOPMENT" | "DEPLOYMENT";
10
41
  executionPurpose?: "RELEASE";
42
+ handoff?: "DEPLOYMENT" | "DEVELOPMENT" | null;
43
+ deploymentRequestId?: string | null;
44
+ deploymentConfiguration?: DeploymentConfigurationSnapshot;
45
+ testHandoff?: {
46
+ summary?: string | null;
47
+ files?: Array<{
48
+ slot: string;
49
+ path: string;
50
+ materialPath: string;
51
+ baseMaterialPath?: string;
52
+ source: MaterialSource;
53
+ baseSource?: MaterialSource;
54
+ artifactRevisionId?: string | null;
55
+ baseRevisionId?: string | null;
56
+ changed?: boolean;
57
+ }>;
58
+ };
11
59
  acceptedProjectFacts?: Array<{
12
60
  projectId: string;
13
61
  commitSha: string;
@@ -27,14 +75,6 @@ interface RunInput {
27
75
  name: string;
28
76
  description: string;
29
77
  }>;
30
- stageDeliverySnapshots?: Partial<Record<"DEVELOPMENT" | "INTEGRATION", {
31
- source: "WORKSPACE" | "TEAM";
32
- revision: number;
33
- prompt: string;
34
- protocolVersion: number;
35
- employeeIds?: string[];
36
- teamRevision?: number | null;
37
- }>>;
38
78
  workItem: {
39
79
  id: string;
40
80
  key: string;
@@ -42,11 +82,15 @@ interface RunInput {
42
82
  };
43
83
  requirement: {
44
84
  title: string;
45
- body_markdown: string;
85
+ source: MaterialSource;
46
86
  };
87
+ prototypeFiles?: Array<{
88
+ path: string;
89
+ source: MaterialSource;
90
+ }>;
47
91
  technicalDesign: {
48
92
  title: string;
49
- content: string;
93
+ source: MaterialSource;
50
94
  } | null;
51
95
  projects: Array<{
52
96
  id: string;
@@ -74,13 +118,35 @@ export declare class CodingRunManager {
74
118
  private readonly active;
75
119
  constructor(pi: PiModelService);
76
120
  isBusy(): boolean;
77
- execute(client: PlatformClient, host: HostIdentity, command: LocalCodingHostClaimedCommand): Promise<void>;
121
+ execute(client: PlatformClient, host: HostIdentity, command: LocalCodingHostClaimedCommand): Promise<{
122
+ recalledMessageIds: string[];
123
+ } | undefined>;
78
124
  private start;
79
125
  private synthetic;
80
126
  }
81
- export declare function prepareProjects(cacheRoot: string, runRoot: string, runId: string, projects: RunInput["projects"], resume: boolean): Promise<string>;
82
- export declare function initialPrompt(input: RunInput, runRoot: string, responsible?: boolean): string;
83
- export declare function worktreeTreeHash(cwd: string, key?: string, committed?: boolean, ref?: string): Promise<string>;
127
+ export declare function openPiSession(options: {
128
+ cwd: string;
129
+ sessionDir: string;
130
+ agentDir: string;
131
+ existingId?: string | undefined;
132
+ modelRuntime: ModelRuntime;
133
+ model: Model<any>;
134
+ thinkingLevel: RunInput["thinkingLevel"];
135
+ extensions: ExtensionFactory[];
136
+ systemPrompt: string;
137
+ runId: string;
138
+ }): Promise<{
139
+ session: AgentSession;
140
+ sessionId: string;
141
+ }>;
142
+ export declare function prepareDeploymentProjects(runRoot: string, projects: Array<Pick<RunInput["projects"][number], "id" | "name" | "repositoryUrl" | "testBranch">>, configuration?: DeploymentConfigurationSnapshot): Promise<string>;
143
+ export declare function prepareProjects(cacheRoot: string, runRoot: string, workItemKey: string, projects: RunInput["projects"], resume: boolean, verifyRemote?: boolean, uninitializedProjectIds?: string[]): Promise<string>;
144
+ export declare function initialPrompt(input: RunInput, runRoot: string, _responsible?: boolean, materialRoot?: string): string;
84
145
  export declare function redactHostText(value: string, roots?: string[]): string;
85
- export {};
146
+ /** 检查失败命令自己的已知工作区,不从空准备结果推测初始化状态。 */
147
+ export declare function inspectWorkspaceInitialization(runId: string, input: RunInput): Promise<{
148
+ projectId: string;
149
+ status: "UNKNOWN" | "NOT_INITIALIZED" | "INITIALIZED";
150
+ }[]>;
151
+ export declare function inspectPriorTransferWorkspaces(root: string, runIds: string[], projects: RunInput["projects"]): Promise<string[]>;
86
152
  //# sourceMappingURL=coding-run-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"coding-run-manager.d.ts","sourceRoot":"","sources":["../src/coding-run-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coding-run-manager.d.ts","sourceRoot":"","sources":["../src/coding-run-manager.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,+BAA+B,EAC/B,6BAA6B,EAC9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAgB,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EACL,KAAK,YAAY,EAGjB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAElB,MAAM,iCAAiC,CAAC;AAWzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAKL,KAAK,cAAc,EAEpB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,KAAK,cAAc,EAAuB,MAAM,sBAAsB,CAAC;AAQhF,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AACD,UAAU,QAAQ;IAChB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,kBAAkB,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QAAC,uBAAuB,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAClF,WAAW,CAAC,EAAE;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,KAAK,CAAC;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC3E,CAAC;IACF,oBAAoB,EAAE,OAAO,4BAA4B,EAAE,0BAA0B,CAAC;IACtF,mBAAmB,EAAE,OAAO,4BAA4B,EAAE,4BAA4B,CAAC;IACvF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACnD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,aAAa,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACrC,KAAK,EAAE,aAAa,GAAG,aAAa,GAAG,YAAY,CAAC;IACpD,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,YAAY,GAAG,aAAa,GAAG,IAAI,CAAC;IAC9C,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,uBAAuB,CAAC,EAAE,+BAA+B,CAAC;IAC1D,WAAW,CAAC,EAAE;QACZ,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,KAAK,CAAC,EAAE,KAAK,CAAC;YACZ,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,YAAY,EAAE,MAAM,CAAC;YACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,MAAM,EAAE,cAAc,CAAC;YACvB,UAAU,CAAC,EAAE,cAAc,CAAC;YAC5B,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YACnC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;SACnB,CAAC,CAAC;KACJ,CAAC;IACF,oBAAoB,CAAC,EAAE,KAAK,CAAC;QAC3B,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;KAC1D,GAAG,IAAI,CAAC;IACT,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtE,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,cAAc,CAAA;KAAE,CAAC;IACvD,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,cAAc,CAAA;KAAE,CAAC,CAAC;IACjE,eAAe,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IAClE,QAAQ,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IACjG,UAAU,EAAE,cAAc,GAAG,WAAW,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;CAChF;AA8CD,qBAAa,gBAAgB;IAEf,OAAO,CAAC,QAAQ,CAAC,EAAE;IAD/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;gBAC1B,EAAE,EAAE,cAAc;IAE/C,MAAM;IAIA,OAAO,CACX,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,6BAA6B;;;YAqV1B,KAAK;YAmcL,SAAS;CA0CxB;AA2GD,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,aAAa,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzC,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;;;GAgEA;AAiTD,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,KAAK,CACb,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,eAAe,GAAG,YAAY,CAAC,CACnF,EACD,aAAa,CAAC,EAAE,+BAA+B,mBAmChD;AAED,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC9B,MAAM,EAAE,OAAO,EACf,YAAY,UAAQ,EACpB,uBAAuB,GAAE,MAAM,EAAO,mBAmHvC;AAsGD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,MAAM,EACf,YAAY,UAAO,EACnB,YAAY,SAAU,UAWvB;AAsBD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,EAAO,UA0BjE;AAED,qCAAqC;AACrC,wBAAsB,8BAA8B,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ;;;KAwClF;AAED,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EAAE,EAChB,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,qBAsD/B"}