dsh-plugin-specflow 0.0.0-stage → 0.1.1

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/LICENSE ADDED
@@ -0,0 +1,201 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright [yyyy] [name of copyright owner]
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
package/README.md CHANGED
@@ -1,3 +1,167 @@
1
- # Temporary Holding Version
1
+ # Specflow for DeepSeek Harness
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ 将 Specflow 的需求、规格、计划、任务、独立复核、验证和人工验收带入
4
+ DeepSeek Harness。安装后,在一个已打开的会话右侧添加 **Specflow** 标签,
5
+ 或从右侧引导页选择 **Specflow 工程工作台**。
6
+
7
+ ## 兼容版本
8
+
9
+ - DeepSeek Harness **0.2.1-rc.2**。插件声明精确的 `engines.dsh`,其他版本需要重新验证。
10
+ - 宿主进程 **Node.js 24+**,以及本机 Git。桌面版使用 Electron 内嵌的 Node,
11
+ 全局 `node --version` 不能证明桌面宿主兼容。
12
+ - 这是独立的 DSH 插件;安装包包含共享工程核心和插件界面,执行阶段使用 Harness
13
+ 中已经配置的模型。无需安装 Specflow 桌面版、Maka 或 OpenCode。
14
+
15
+ ## 安装
16
+
17
+ 公开版本见 [Specflow DSH 插件 0.1.1](https://github.com/HuYellow/specflow/releases/tag/dsh-plugin-specflow%400.1.1)。
18
+ 下载 [预构建安装包](https://github.com/HuYellow/specflow/releases/download/dsh-plugin-specflow%400.1.1/dsh-plugin-specflow-0.1.1.tgz)
19
+ 和同一 Release 的 `SHA256SUMS.txt`。在 DSH 的插件页选择安装第三方插件,输入发布包的
20
+ HTTPS 地址或下载后的绝对路径。审核安装来源后启用插件。
21
+ 桌面版请使用自身的插件管理入口,以便安装到桌面版管理的 profile。
22
+
23
+ CLI/Web 用户也可以安装到 Web profile:
24
+
25
+ ```sh
26
+ dsh plugin --profile web add https://github.com/HuYellow/specflow/releases/download/dsh-plugin-specflow%400.1.1/dsh-plugin-specflow-0.1.1.tgz
27
+ dsh web
28
+ ```
29
+
30
+ 当前公开来源为 GitHub 预构建包和固定提交的 Git 分发,尚未发布到 npm。
31
+
32
+ ### 更新已安装的插件
33
+
34
+ DSH 的第三方插件通过卸载后重新安装更新。先保存编辑并停止正在运行的 Specflow 操作,
35
+ 在同一 profile 的 **插件 → 已安装** 中卸载旧插件,再通过 **安装第三方插件** 安装新版
36
+ 预构建包,启用后重启 DSH。也可从已刷新索引的“发现”页选择新版安装。
37
+ 工程数据库、执行日志和隔离工作区会保留;若配置过自定义 `dataDir`,重装后继续使用原值。
38
+
39
+ `0.1.1` 会自动关联当前对话的 Git 工程,并跟随对话目录变化。已有工程和 Specflow 工作区
40
+ 复用原记录,手动选择不受普通刷新覆盖;未保存的正文、澄清答案、工程配置和运行回答会
41
+ 阻止自动切换,直到保存、提交或取消编辑。
42
+
43
+ ### 从“发现”页安装
44
+
45
+ 在 DSH 插件页的实验性插件中启用 **自定义插件市场**,进入 **发现 → 添加索引源**,添加:
46
+
47
+ ```text
48
+ https://raw.githubusercontent.com/HuYellow/specflow/main/market/dsh/index.json
49
+ ```
50
+
51
+ 然后找到 **Specflow 工程流程工作台**,确认兼容版本和来源后安装。
52
+ 此索引由 Specflow 项目维护,安装来源固定到包含预构建代码的 Git 提交和插件子目录。
53
+
54
+ ### 停用与移除
55
+
56
+ 先停止正在运行的 Specflow 操作,再在同一 profile 的插件页停用或移除插件。
57
+ CLI/Web 用户也可执行 `dsh plugin --profile web remove dsh-plugin-specflow`。
58
+ 工程数据库、执行日志和隔离工作区默认保留在 `$DSH_HOME/specflow` 或配置的 `dataDir`。
59
+ 如需清理,先备份并确认没有宿主使用该目录;登记的项目源仓库不属于插件数据目录。
60
+
61
+ ## 使用
62
+
63
+ 1. 在 Harness 配置模型并打开一个会话。
64
+ 2. 打开右侧 Specflow 标签,插件会自动读取当前对话的工作目录,关联并登记对应的本机 Git 仓库。已有工程会复用原记录;目录位于 Specflow 工作项或候选工作区时,会回到原工程及工作项。
65
+ 3. 在工程设置中选择分析、设计、实现和复核模型,并配置项目真实的验证命令。
66
+ 4. 创建工作项,输入需求。源仓库须有干净的已提交基线。
67
+ 5. 按流程运行规格、澄清、计划、任务、实现和复核。文档接纳与最终代码接纳由用户操作。
68
+ 6. 需求变化时,在流程页编辑需求;需要人工改稿时,在文档页编辑当前修订。保存会创建新版本,并使依赖旧输入的结果过期,修改后的文档需要重新复核和接纳。
69
+
70
+ 模型查询工具 `specflow_query` 只读,限制在调用会话所属的仓库,不提供人工接纳操作。
71
+ 模型完成不等于工程通过:原有输入版本、新鲜度、双视角复核和验证门槛继续生效。
72
+
73
+ 切换对话或改变对话工作目录后,面板会关联对应工程。手动选择其他工程后,普通刷新不会
74
+ 覆盖该选择;下一次对话目录变化时恢复自动关联。有未保存的编辑时,会等待保存或取消。
75
+ 当前对话没有工作目录,或目录不是有提交记录的 Git 仓库时,可继续手动选择工程或通过
76
+ 「打开仓库」登记。自动关联只登记工程,不会创建需求、启动执行或提交源仓库改动。
77
+
78
+ 需求和文档编辑以开始编辑时的版本为基线。轮询不会覆盖尚未保存的草稿;其他窗口或
79
+ 执行任务更新了同一内容时,编辑器会提示冲突并展示最新内容,保留草稿供比较。
80
+ 确认改用最新基线后才能继续保存。保存需求时保留原有文档附件;人工改稿创建新的
81
+ 文档候选,不继承旧版本的复核通过状态。
82
+
83
+ ## 数据和配置
84
+
85
+ 默认数据目录是 `$DSH_HOME/specflow`;未设置 `DSH_HOME` 时使用 DSH 官方默认 home
86
+ 下的 `specflow`。数据包含工程 SQLite 数据库、独立 Git worktree 和执行日志。
87
+ 原有 Specflow 桌面版的数据目录不会被自动迁移或采用。
88
+
89
+ 可以在插件行配置 `dataDir` 为另一个绝对路径。每个目录只能由一个插件宿主持有;
90
+ 若同时运行多个 DSH profile,应给它们配置不同目录。正常卸载会关闭请求、执行器和数据库,
91
+ 并释放 `host.lock`。异常退出可能留下此锁;先确认使用该目录的宿主均已退出,
92
+ 再删除该目录中的 `host.lock` 并重新启动。数据库和执行日志会保留供原身份核对。
93
+
94
+ ## 执行边界
95
+
96
+ 执行器使用独立会话和 Specflow 创建的隔离工作区。只读阶段禁止模型修改文件。
97
+ 实现阶段通过限定工作区的文件工具读写代码。模型不能调用继承的 Shell、外部目录工具
98
+ 或子代理;项目验证由 Specflow 的确定性验证阶段执行用户配置的命令。
99
+ 获准的验证命令使用宿主用户的系统权限,不构成操作系统沙箱。
100
+
101
+ 运行日志保存原会话身份及结果。回执丢失或重启后只核对原运行,不自动重新发送提示。
102
+ 中断后的原运行继续执行不在首版支持范围内;需要新尝试时由用户发起。
103
+ 宿主或插件加载失败会直接报错,不回退为其他执行器。
104
+
105
+ ## 在本仓库开发和发布
106
+
107
+ 根项目安装开发依赖后,在插件目录安装独立依赖,再回到仓库根目录构建:
108
+
109
+ ```sh
110
+ npm ci
111
+ cd plugins/deepseek-specflow
112
+ npm ci --ignore-scripts
113
+ cd ../..
114
+ npm run typecheck
115
+ npm run dsh:typecheck
116
+ npm test
117
+ npm run dsh:test
118
+ npm run dsh:pack
119
+ ```
120
+
121
+ 产物为 `release/dsh/dsh-plugin-specflow-0.1.1.tgz` 和 `SHA256SUMS.txt`。
122
+ 包内容采用白名单检查,仅包含预构建 Host、浏览器工厂、配置层、说明和许可证。
123
+ 源代码、测试、缓存、Electron、Maka、OpenCode 和其他本机数据不会进入包。
124
+ 浏览器使用 DSH 共享的 React,未打入第二份 React。
125
+
126
+ 插件版本以本目录的 `package.json` 为准,插件报告的版本号与发布清单使用同一来源。
127
+ 需要更新插件版本时,在本目录运行 `npm version patch --no-git-tag-version`(功能版本用
128
+ `minor`),同步更新此处的 `package-lock.json`,再回到仓库根目录重新验证和打包。
129
+
130
+ `npm run dsh:smoke` 验证官方宿主加载和本地模拟供应商上的真实执行。
131
+ 验证脚本使用独立 Harness home,不读取现有用户配置,不调用付费模型。
132
+ 另以宿主版本的 React 运行已构建客户端工厂,验证交互、窄面板和卸载清理。
133
+ 需要本机 pnpm,以及 Playwright Chromium;Windows 默认使用已安装的 Edge。
134
+
135
+ 首次准备官方验收运行时(下列为 PowerShell):
136
+
137
+ ```powershell
138
+ New-Item -ItemType Directory -Force .tools/dsh-validation
139
+ Push-Location .tools/dsh-validation
140
+ npm install --ignore-scripts --no-audit --no-fund --registry https://registry.npmjs.org @deepseek-ai/dsh@0.2.1-rc.2
141
+ Pop-Location
142
+ npm run dsh:smoke
143
+ ```
144
+
145
+ 其他平台先运行 `npx playwright install chromium`。
146
+ 设置 `SPECFLOW_BROWSER_CHANNEL` 可指定浏览器渠道。
147
+ 使用其他验收运行时目录时,可直接运行
148
+ `node scripts/toolchain.mjs dsh-smoke --runtimeDir /absolute/runtime-directory`。
149
+ 三个验收脚本的结果分别写入 `.tools/dsh-host-smoke.json`、控制台及
150
+ `.tools/dsh-client-qa/report.json`。这些运行时与报告不进入发布包。
151
+
152
+ 公开分发使用同一仓库的 `codex/dsh-distribution` 分支,保持插件子目录路径,
153
+ 并用 `dsh-plugin-specflow@<版本>` 标签标记包含预构建代码的提交。
154
+ `npm run dsh:distribution` 准备仅含运行文件的 Git 分发树;`npm run dsh:market -- generate`
155
+ 生成官方格式的固定提交索引。完整发布步骤见仓库中的 `docs/implementation/dsh-publication.md`。
156
+
157
+ `npm` 是另一种可选分发方式。配置发布账号后,可在本目录运行
158
+ `npm publish --access public`;发布前应完成相同验证,并更新索引的安装来源。
159
+
160
+ ## 许可证
161
+
162
+ Specflow:Apache-2.0。随包 Zod:MIT,完整文本见 `dist/ZOD_LICENSE`。
163
+ DSH 与 React 为宿主提供的 peer dependencies,许可证由其各自包提供。
164
+
165
+ 官方接口依据:[插件打包](https://deepseek-harness.github.io/deepseek-harness/develop/basic/publish)、
166
+ [右侧面板](https://deepseek-harness.github.io/deepseek-harness/en/reference/subsystems/sidebar-right)、
167
+ [客户端连接](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/client/connection)。
@@ -0,0 +1,13 @@
1
+ # Third-party notices
2
+
3
+ Specflow is distributed under the Apache License 2.0. This package bundles the
4
+ Specflow engineering core and Zod. It does not bundle Electron, Maka, OpenCode,
5
+ DeepSeek Harness, React, model credentials, or development runtimes.
6
+
7
+ ## Zod
8
+
9
+ Zod is distributed under the MIT License. Its complete license is appended by the
10
+ package build from the installed dependency's license file.
11
+
12
+ The DeepSeek Harness and React packages declared as peer dependencies are supplied
13
+ by the host. Their licenses and third-party notices remain with those packages.
@@ -0,0 +1,3 @@
1
+ - insert:
2
+ - id: specflow
3
+ name: dsh-plugin-specflow
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Colin McDonnell
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,19 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "name": "dsh-plugin-specflow",
4
+ "version": "0.1.1",
5
+ "compatibility": {
6
+ "dsh": "0.2.1-rc.2",
7
+ "node": ">=24"
8
+ },
9
+ "artifacts": {
10
+ "index.mjs": {
11
+ "bytes": 1929710,
12
+ "sha256": "d70d1dbad488c3d7b5a711abdfb5558b458c731fbdf5453d216467581e1577db"
13
+ },
14
+ "client.js": {
15
+ "bytes": 351075,
16
+ "sha256": "443115ea60db2df3de58049a05ccde7880d6d0887f40ee51863005fc3250c715"
17
+ }
18
+ }
19
+ }