npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@hanamesh/app-vibe-trading

v0.2.0-rc.1

Published

Vibe-Trading application bundle for the HanaMesh app-host service

Readme

@hanamesh/app-vibe-trading

NPM-VIBE-01(2026-10-05,当前本地候选 0.2.0-rc.1): 精确消费公开 @hanamesh/[email protected],目标官方 DSH 0.2.0-rc.2。开发依赖从公开 npm 精确安装,vendor/ 的同字节公开 AppHost tarball 只用于 SHA-256 核验,不随 Vibe 包分发。应用描述符只保留有摘要锁的 HTTPS runtime 来源,移除了旧开发机绝对 file: 路径。包级协议仍标 UNLICENSED;owner 已授权公开分发本应用包,不推断新增 MIT 授权。来源及用途见 docs/LICENSES.json。没有调用模型、账户、钱包或交易;隔离官方 DSH 的当前门见 BlueMap NPM-VIBE-01/REPORT.md。以下 rc.36 及更早的记录均为历史,不能当作当前包的 peer、来源、构建或验收结论。

rc.36(2026-10-01,P01 U05 后续切片):只将精确 AppHost peer、开发 vendor 与组合 pin 从 rc.40 重钉到已验修复 rc.41(SHA256 457b0c9690776d6762e374453f64780fcca9529b730ab506b45766055bb37134)。HKUDS 原版 runtime、应用描述符、供应商/模型和 UI 字节不变;P01-U05 的真实原生/生产账本门单独复验。

rc.35(2026-10-01,P01 U02/U03 的 MAC-COMPOSE 候选):仅将私有 AppHost 精确 peer、开发 vendor 与组合 pin 从 rc.39 同步至已封包的 rc.40(SHA256 81de63e344bb6aab955ca8789d74a3172c72bb4b5acb23210cd6b4d5e4d6491d)。原版 HKUDS/Vibe-Trading runtime、应用描述符、供应商配置、模型和 UI 字节不变;原生完整产品流程由另一 validator 复验。

rc.32(2026-09-30):仅将精确 peer 与开发 vendor 重钉到 APPHOST37,供 P01-U05 的 CORE39/USAGE9/APPHOST37/VIBE32 组合消费。原版 HKUDS 应用、描述符、Provider 与 runtime 不变;宿主修复市场内应用视图宽度后,须由不同 validator 从原生入口验证 Sessions 与旧对话可读恢复。

rc.31(2026-09-30):仅将精确 peer 与开发 vendor 重钉到 APPHOST36,供 P01-U02/P08 的 CORE38/USAGE9/APPHOST36/VIBE31 组合消费。APPHOST36 在宿主冷恢复时到期处理旧活跃视图租约,避免新视图关闭后等待旧租约 TTL。Vibe 原应用源码、描述符、Provider 与 runtime 归档未变;本包仅完成源码、测试与封包门,真实客户端冷恢复须由不同 validator 从最终入口验证,NOT_RUN。

rc.30(2026-09-30):仅将精确 peer 与开发 vendor 重钉到 APPHOST35,供 P01-U02/P08 的 CORE37/USAGE9/APPHOST35/VIBE30 本机组合消费。Vibe 原应用源码、描述符、供应商与 runtime 归档未变;真实产品长时重入由不同 validator 从最终入口验证。rc.30 市场安装仍 NOT_RUN。

rc.29(2026-09-29):仅将精确 peer 与开发 vendor 重钉到 APPHOST34(市场视图 heartbeat/卸载清理)。应用源码、描述符、供应商和 runtime 与 rc.28 / rc.27 字节相同;rc.29 真实市场安装与完整产品 REAL_UI 为 NOT_RUN,file profile consumer 由父组合与独立 validator 验证。

rc.28(2026-09-29):仅将精确 peer 与开发 vendor 重钉到已封包的 @hanamesh/dsh-app-host 0.1.0-rc.34,用于 P01-M02 / P08-U01 的 MAC-COMPOSE。应用源码、描述符、运行时归档及供应商配置与 rc.27 相同;本候选的真实市场安装和完整产品流程验收仍为 NOT_RUN。验证报告见 docs/acceptance/recovery-20260929-peer-apphost33/REPORT.md。

rc.27(2026-09-23):精确 peer 重钉 @hanamesh/dsh-app-host 0.1.0-rc.34(客户端 market 席位 + dshmarket 互斥)。rc.26(2026-09-22):精确 peer 重钉 @hanamesh/dsh-app-host 0.1.0-rc.34(HanaMesh 市场 + Router 使用回执)。rc.25(2026-09-22):运行时归档首源改为 Cloudflare R2 https://artifacts.hanamesh.com/vibe-trading/(file: 源保留为第二);AH-P07 REAL_RUNTIME 经 https 源补齐并断言 ledger source=hanamesh-artifacts(docs/acceptance/raw/rc25-real-runtime-https.tap),超时放宽到 600 s 以容纳 266 MB 下载。rc.24(2026-09-21):精确 peer 重钉 @hanamesh/dsh-app-host 0.1.0-rc.27(应用 open/use 经 usage 席位上报);app.json 声明 packageName。rc.23:精确 peer 重钉 @hanamesh/dsh-app-host 0.1.0-rc.26(官方 DSH 无壳时应用库默认目录源 + profile 位置推断,CLI 装的本应用能被识别、可补齐运行时)。rc.22:精确 peer 重钉 @hanamesh/dsh-app-host 0.1.0-rc.25(壳被强杀后 .runtime.lock 死主接管,再打开不再 DATA_ROOT_BUSY)。rc.21:精确 peer 重钉 @hanamesh/dsh-app-host 0.1.0-rc.24(模型随路由:宿主「供应商 → 路由」表的「模型」列选网关/供应商模型,留「应用默认」= 本清单 {{model|gpt-5.5}})。rc.20:重钉 rc.23。rc.19:重钉 rc.22(供应商页两张表)。

rc.17(2026-09-21):精确 peer 重钉 @hanamesh/dsh-app-host 0.1.0-rc.20(引导 303 保留 Referer + frameAncestors;桌面壳内打开应用不再空白)。24/24、变异全 killed、AH-P07 REAL_RUNTIME PASS(docs/acceptance/raw/rc17-real-runtime.tap)。

rc.16(2026-09-21):精确 peer 重钉 @hanamesh/dsh-app-host 0.1.0-rc.19(网关在第三方 cookie 被嵌入式 webview 丢弃时改用 Fetch Metadata 授权;修复桌面壳里打开应用空白)。应用包本身无变化;AH-P05/P06 24/24、变异全 killed、AH-P07 REAL_RUNTIME 经 rc.19 网关 PASS(docs/acceptance/raw/rc16-real-runtime.tap)。

2026-09-20 旧候选:0.1.0-rc.16(= rc.14 + peer 重钉 app-host rc.18,代码相同;app-host rc.18 只改客户端应用库安装反馈 UI,宿主逻辑不变),当时上限 🧪 DELIVERED,尚未由用户签收。

历史已实测内核:0.1.5-alpha.1、0.1.5-rc.2(经 app-host rc.18;本包自身不直接 peer 任何 @deepseek-ai/*)。

rc.9 是 HanaMesh npm 应用包的首个实例:包本身只携带 app.json、dsh.js、cordis.patch.yml、README 和 LICENSE;dsh.js 只读取静态描述符并向既有 hanameshApps 注册。它精确 peer 到 @hanamesh/[email protected],没有运行时 dependency,也不创建第二个 host。

运行时不再接受 executablePath 或手工 venv。执行 scripts/build-runtime.sh 会从钉死的 source tarball、wheel、前端构建摘要和 python-build-standalone CPython 3.11 生成 vibe-trading-runtime-0.1.15-darwin-arm64.tar.gz。归档只有相对启动器;app-host 按 lib-provision 账本解析 runtime.exec,缺失、版本漂移或不可执行都以 RUNTIME_MISSING 失败关闭。

本机 rc.9 结果:Node 24.13.1 / pnpm 10.33.0 / TypeScript 5.9.3 严格构建通过;24 个常规测试通过、1 个真实运行时测试默认跳过;5/5 变异被 ERR_ASSERTION 杀死;真实门另以 HM_REAL_RUNTIME=1 从归档供给、冷启动、首页 200、关闭为 stopped 全部通过。归档 SHA-256:

7145a0c4122f6c95da0e4279a5988c9acd4618e52d4c63e6e1405f156b5dc0cf

app.json 的首个 https source 是未来 GitHub Release 地址;上传 Release 属发布动作,本轮 NOT_RUN。第二个 file: source 仅用于这次隔离本机真实门。Linux/x64、Windows 与 Intel macOS 均 NOT_RUN / unsupported。

Provider 槽位只声明需求,不包含值。没有授权的 provider 时,首页仍可启动,但 Vibe preflight 会明确显示 agent 不可用;本轮没有发消息、没有使用 Codex/订阅额度、没有账户、signer、实盘或模拟交易。

下面 rc.1–rc.8 的内容保留为历史;凡与本节冲突,以 rc.9 和 docs 仓 STATUS.md 为准。

rc.1 时:PARTIAL · 未通过真实 DSH / Tauri / 原版 Vibe 验收。

Vibe-Trading 的可打包 DSH 插件候选,只向已有 hanameshApps 注册一份受信描述符。 不启动第二套 app-host,不复刻原应用 UI,不复制实例/租约/会话/授权状态,不执行任何实盘或模拟交易。 入口、视图和 Stop 操作仍由已验收的 workspace / app-host 提供。

实际环境与固定目标

| 项目 | 本次实际 | 产品固定目标 | |---|---|---| | 系统 | Linux x86_64,kernel 6.18.44 | macOS darwin-arm64 | | Node / npm | 22.16.0 / 10.9.2 | Node 24.13.1 | | pnpm | 未安装 | 10.33.0 | | TypeScript | 5.8.3,严格检查,skipLibCheck=false,未用 --noCheck | 5.9.3 | | Python | 3.13.5;未部署原应用 | R3 使用 Python 3.11,产品未单独指定 Python pin | | DSH / Tauri / 原版 Vibe | 不在本环境内 | DSH 0.1.5-alpha.1;Tauri 2.11.5;Vibe wheel 0.1.15 | | 浏览器 | 存在 /usr/bin/chromium;没有真实 macOS WKWebView/Tauri 宿主;未用 Chromium 冒充 V08–V10 | 真实客户端内原版生产 UI | | 开发模型 | 本会话身份 GPT-6 Astra Pro;effort / 模型选择器 / 用量不可见 | 派发默认 Sonnet 5 · High;没有执行或声称自动切换 |

目标构建命令会核对 Node、pnpm、TypeScript,缺任一固定版本就以 2 退出。 当前 dist/ 来自显式允许版本差异的严格探索性构建,不是目标工具链通过证明。 完整逐项结果、原始输出和四字段 checkpoint:docs/acceptance/MATRIX.md。

固定依赖与边界

| 内容 | 值 | |---|---| | npm 包名 / repo / ZIP 内目录 | hanamesh-plugin-vibe-trading | | 插件 entry / service dependency | hanamesh-vibe-trading / hanameshApps | | 上游源码 | HKUDS/Vibe-Trading@a44ed6e807e6e7d0faeeff5b8f43df8c4694e2d1 | | Python 产物 | vibe-trading-ai==0.1.15 | | 前端产物 | 上述 commit 的 frontend/dist,frontend/package.json 必须为 0.1.15 | | 私有 host peer | @hanamesh/[email protected] | | host tarball SHA-256 | fdde04917bfc68eb566044a941a9c7d1aeaa9b7c8b8de9635a55d03f32d2212c |

私有包只有精确 peerDependencies 和 devDependencies: file:vendor/<tgz>,没有私有 registry runtime dependency。 未修改锁定 host archive;它随 git 仓保留在 vendor/,不会嵌进本模块 npm 产物。 app-host 的传递 zod 版本是 4.5.4;DSH 相关 overrides 保持 0.1.5-alpha.1。

pnpm-lock.yaml 按附件产物元数据记录精确版本、私有 tarball 的真实 SHA-512 integrity 和公开 tarball URL。 pnpm 不在本环境,registry DNS 失败,尚未执行 pnpm install --frozen-lockfile;公开 TypeScript/zod 的 integrity 未取得,未编造。 这份 lock 不能作为完整离线依赖闭包已经冻结/安装的证明。回收时先用固定 pnpm 验证,并取得公开依赖的真实 integrity。

使用的真实契约

import { createDefinition, apply } from 'hanamesh-plugin-vibe-trading';

const config = {
  executablePath: '/absolute/isolated/vibe-venv/bin/vibe-trading',
};
// 受信宿主工厂使用;普通浏览器不能传入这些配置。
const definition = createDefinition(config);
// DSH / Cordis 通过 inject: ['hanameshApps'] 自动激活 apply;不要在运行中重复注册。

只接受 executablePath。它必须是规范的绝对 POSIX .../bin/vibe-trading 路径;空值、相对路径、模板、路径穿越、额外键全部拒绝。 空格路径支持。是否存在且可执行由部署 preflight 检查,实际启动时由 app-host 再检查 X_OK,本模块不执行该文件来猜测身份。

实际下发字段是锁定类型中的 AppDefinition / OwnedDeployment,不是旧 brief 的假想 AppDescriptor: id: vibe-trading、部署 local、稳定 dataId: vibe-trading-local、singleInstanceOnly: true、mode: owned。 命令参数固定为 serve --host 127.0.0.1 --port {{port}}。 VIBE_TRADING_HOME={{dataDir}};宿主负责真实 dataDir、动态空闲回环端口、HOME/TMPDIR/XDG 隔离、进程所有权和清理。 就绪是 GET / + HTTP 200 + 完整原版标题,不是 /api/health 200,也不把 JSON 健康页当成生产 SPA。

未放宽的运行边界:不传递 DSH/Codex/Provider 凭据、不配置账户或 signer、不传宿主 SDK、不注入脚本、不提供 postMessage 特权桥。 白名单环境仅有 VIBE_TRADING_HOME 与三项 Python 运行选项。 原版 Vibe 的后台行为、交易能力和第三方依赖未在此环境实测;“没有配置凭据”不等于已经证明原版运行全程没有交易路径。

网关与必须保留的限制

描述符只设置 embedding: 'gateway',使用锁定 app-host 的 FixedGateway,不自行实现或更改代理。 具名 parentOrigin 由宿主配置提供,适配器拒绝覆盖它。 网关移除 X-Frame-Options,并仅替换 enforcing CSP 的 frame-ancestors 为一个具名 origin。 其余 CSP 指令、安全头、文档字节必须保持原样。未经授权的 cookie / Authorization 不向应用传递;默认应用 cookie 白名单为空。 不关闭 CORS、CSRF、认证或浏览器安全;不设置 VIBE_TRADING_CSP_REPORT_ONLY。

每次上游升级先重跑 V04、V08、V09:三个路径直连仍 enforcing 阻断;浏览器直连拒绝;未列名 origin 拒绝。 然后再跑 V05–V07 的 header/body/资产以及 V10 的真实 Tauri/WKWebView 门。 网关退役条件: 上游出现经实际验证的受支持 framing allowlist 配置时,改用该配置并退役此网关;不能仅凭环境变量名字或版本号判定。 原应用 SSE、WebSocket、登录 cookie、上传/下载、Provider 工作流没有实测,不从静态首页/fixture 网关测试推导支持。

必须交给 host/workspace owner 的两个契约问题

  1. V11 不能在本包里“修”。 rc.3 的最后一个活跃租约执行 close() 时会调用 Stop;实跑锁定 host + 受控进程确认如此。 如果真实 UI 的“关视图”只是隐藏且继续保有/续期租约,则可能满足短期“不停应用”;如果调用 /apps/close,最后一个 view 会停。 本附件没有 workspace 产物或真实 UI,不能宣称前一种行为成立。V11 保持 BLOCKED,须 owner 明确 UI 语义并按真实进程复验。
  2. 不支持热重注册。 rc.3 的公开服务没有 unregister;同 appId 再 register 返回 DUPLICATE_APP。 本包不调用私有 API、不开第二个 host、不吞掉该错误。安装/修改配置/禁用移除后,按宿主既有流程完整重启隔离 profile。 仅禁用本插件不会在仍运行的 host 中撤销既有描述符;不要把这个动作当作安全撤权。

从零部署原版应用(本机回收命令,当前未执行)

以下只用于获授权的全新无凭据 UI 验收目录,不是自动安装脚本。先核上游许可证和下载字节;本轮未包含 Vibe 源码、wheel 或 SPA。 不使用个人 ~/.dsh、个人 profile 或 3080;不复用有真实账户凭据的数据根;不连接资金或运行模拟交易。

set -eu
umask 077
R="$(mktemp -d "${TMPDIR:-/tmp}/hm-vibe-recovery.XXXXXX")"
R="$(cd "$R" && pwd -P)"
mkdir -p "$R/source" "$R/downloads" "$R/evidence"

curl --fail --location --proto '=https' \
  -o "$R/downloads/vibe-source.tar.gz" \
  https://codeload.github.com/HKUDS/Vibe-Trading/tar.gz/a44ed6e807e6e7d0faeeff5b8f43df8c4694e2d1
tar -tzf "$R/downloads/vibe-source.tar.gz" > "$R/evidence/source-files.txt"
# 核对 tar 的单一顶层目录与无越界路径,再解压。
tar -xzf "$R/downloads/vibe-source.tar.gz" --strip-components=1 -C "$R/source"
# 在此阅读固定源码中的 LICENSE / 附加商业条款;许可未确认前不发布、不打包分发上游。

python3.11 -m venv "$R/vibe-venv"
PY="$R/vibe-venv/bin/python"
"$PY" -I -m pip download --only-binary=:all: --no-deps \
  --dest "$R/downloads" 'vibe-trading-ai==0.1.15'
# 首次完整依赖闭包未随附件提供,安装输出与 freeze 必须一并保存。
"$PY" -I -m pip install "$R"/downloads/vibe_trading_ai-0.1.15-*.whl \
  > "$R/evidence/pip-install.log" 2>&1
"$PY" -I -m pip freeze --all > "$R/evidence/python-freeze.txt"

(cd "$R/source/frontend" && \
  node -e 'const p=require("./package.json"); if(p.version!=="0.1.15")process.exit(1)' && \
  test -f package-lock.json && npm ci && npm run build) \
  > "$R/evidence/frontend-build.log" 2>&1
# 没有前端 lockfile 就停止并先冻结依赖,不静默改用随时间漂移的 npm install。

# R3 的位置 = <venv>/lib/pythonX.Y/frontend/dist。
# purelib 的父目录在 venv 内;stdlib 可能指向系统 Python,不能用它拼写入位置。
PKG_PARENT="$("$PY" -I -B -c 'import sys,sysconfig; from pathlib import Path; p=Path(sysconfig.get_path("purelib")).parent.resolve(); assert p.is_relative_to(Path(sys.prefix).resolve()); print(p)')"
# 固定 wheel 源码未随附件给出:先查它实际的 lookup,必须与 PKG_PARENT/frontend/dist 一致。
"$PY" -I -B - <<'PYCHECK' > "$R/evidence/frontend-lookup-source.txt"
from importlib.metadata import distribution
from pathlib import Path
p = distribution('vibe-trading-ai')
assert p.version == '0.1.15'
files = [p.locate_file(f) for f in (p.files or []) if str(f).endswith('api_server.py')]
assert files, '未定位 api_server.py,不要猜部署目录'
for f in files:
    print(f)
    lines = Path(f).read_text().splitlines()
    for i, line in enumerate(lines):
        if 'frontend' in line or 'pkg_parent' in line:
            print('\n'.join(f'{n+1}: {lines[n]}' for n in range(max(0,i-3), min(len(lines),i+4))))
PYCHECK
# 阅读上述实际 lookup;若不同,停止,不往系统 Python 或未知路径复制。
test -d "$R/source/frontend/dist"
test ! -e "$PKG_PARENT/frontend/dist"
mkdir -p "$PKG_PARENT/frontend"
cp -R "$R/source/frontend/dist" "$PKG_PARENT/frontend/dist"
ls -la "$PKG_PARENT/frontend/dist" > "$R/evidence/frontend-ls.txt"
shasum -a 256 "$R/downloads/vibe-source.tar.gz" "$R"/downloads/vibe_trading_ai-0.1.15-*.whl \
  > "$R/evidence/upstream-downloads.sha256"

不要手工在另一个端口启动长期运行的 Vibe:完成配置后由 app-host 在 UI Open 时 owned 启动。 日志必须真实出现 [prod] Frontend served from …/frontend/dist;若缺 Provider,记录原始错误并只验无模型 UI,不复制别的程序凭据。 代码审查/镜像摘要、许可证、源 tarball / wheel / 前端 digest 要补入回收记录;deployment/pins.json 中 null 代表未知,不是允许跳过验证。

安装进隔离 DSH profile

使用已验收 dsh-runtime 的 runtime + 干净 home template,DSH 固定 0.1.5-alpha.1。 不使用下载到的最新版 DSH,不把本包的 Node 消费烟测当作 DSH 安装结果。 先按其现有流程准备并选择一个全新 web profile,装配已验收的 app-host;联合 UI 验收再装 workspace 和薄壳。

# DSH_CLI 是该锁定发行物的真实 CLI;不能设成个人桌面版 shim。
# 以下变量由本机已验收 runtime 的实际路径确定,不猜它的内部 entry 文件名。
export DSH_HOME="$R/dsh-home"
DSH_CLI=/absolute/path/to/the/pinned/dsh
MOD_TGZ=/absolute/path/to/hanamesh-plugin-vibe-trading-0.1.0-rc.1.tgz
"$DSH_CLI" plugin add "$MOD_TGZ"

按 DSH 既有加载配置把本插件自己的 config设为 profile/plugin-config.example.json 的形状,将占位路径替换成 "$R/vibe-venv/bin/vibe-trading"。 附件未提供 loader row schema / profile 选择参数,所以没有猜一个可能错误的 cordis.patch.yml;这仍属于 V01 的回收集成缺口。 不要同时把本应用放进 app-host 的 applications 和本插件行,两处注册会冲突。 宿主 parentOrigin 必须是本轮真实 workspace origin;动态应用端口和 gateway origin 都由 app-host 生成。

# 仓内只读 preflight:检查路径、可执行权限、隔离 venv、wheel metadata、原版首页标题。
# 不调用 vibe-trading、不创建原应用数据、不读取 Provider 凭据。
node scripts/preflight.mjs /absolute/path/to/this-plugin-config.json

完整重启这个隔离 profile 后,确认 /hanamesh/apps 已列出 vibe-trading/local。 用真实 workspace 打开原版 UI、原生导航和 Stop;不在 iframe 内执行研究任务/订单/模拟交易。 V01–V14 的逐项操作见 docs/acceptance/MATRIX.md,不能只凭首页截图签 AC-03 或 AC-08。

本仓测试与构建

目标工具齐全且 registry 可用时:

pnpm install --frozen-lockfile
pnpm run check
npm pack

当前离线环境复现(仅探索性证据):

# 新 checkout;不覆盖已装的依赖,也不安装其未使用的 DSH transitive peers。
node scripts/bootstrap-offline.mjs
node scripts/build.mjs --allow-toolchain-mismatch
npm test
node scripts/mutations.mjs
node scripts/check-consistency.mjs
node scripts/isolated-check.mjs --allow-toolchain-mismatch
# 目标 guard 未通过,必须显式跳过 prepack;不能对外称目标构建通过。
npm pack --ignore-scripts --pack-destination artifacts

bootstrap-offline 只解开经 SHA-256 验证的 app-host 原始产物,不修改它、不替换真实 DSH。 运行型测试使用明确标记的受控 fixture 进程,不是 Vibe。网关测试使用真实锁定 FixedGateway + 本地 HTTP fixture,不是真实浏览器。 测试显式用 TAP;变异必须出现 ERR_ASSERTION,语法/加载错误不算被杀。 consistency.json 显式豁免:本模块生产路径没有持久状态;X01 必须通过,X02/X03 为 NOT_RUN(不适用),不伪称 SIGKILL 已测。

真实 header/body/资产采集工具

capture-headers.mjs 只发 GET、不跟随重定向、不启动应用、不提交任务、不执行抓取到的 JS。 需先从实际授权 view 取得应用网关 lease cookie,不是 DSH 登录 cookie;仅通过环境变量传入,不保存该值。

{"upstreamOrigin":"http://127.0.0.1:实际应用端口","gatewayOrigin":"http://127.0.0.1:实际网关端口","parentOrigin":"http://127.0.0.1:实际工作区端口"}
# 把以上字符串端口替换为实际数字,保存 origins.json;输出目录必须尚不存在。
HM_VIBE_GATEWAY_COOKIE='<当前 hm_app_* lease cookie,仅本机保存>' \
  node scripts/capture-headers.mjs origins.json "$R/evidence/headers"

输出三个路径的 header 对照、两个首页的真实字节、请求与 digest。 Set-Cookie / 认证 header 脱敏,网关 cookie 不写入证据。该工具不证明浏览器 CSP enforcement;V08/V09/V10 仍需浏览器/真实 WKWebView。

交付与恢复

ZIP 只有 hanamesh-plugin-vibe-trading/ 顶层,内含 .bundle、npm 默认文件名 .tgz、SHA256SUMS 三件。 完整源码、tests、工具、验收证据、lockfile、learning、AGENTS 都在 git bundle。

cd /path/to/unzipped/hanamesh-plugin-vibe-trading
shasum -a 256 -c SHA256SUMS
git clone hanamesh-plugin-vibe-trading.bundle /your/work/projects/hanamesh/hanamesh-plugin-vibe-trading
cd /your/work/projects/hanamesh/hanamesh-plugin-vibe-trading
git remote remove origin   # bundle 是运输介质,不是远端仓库
# main;rc tag;工作树应干净。没有创建远端、push 或 publish。

上游许可证未随附件提供,登记为待核,不宣称 MIT/Apache 或可无条件商用;见 docs/THIRD_PARTY_NOTICES.md。 本包 UNLICENSED / private: true,只有本次本地交付,无公开发布。