@lqc123qwe/car-runtime 1.8.0 → 1.10.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/README.md +29 -1
- package/dist/SHA256SUMS +1 -0
- package/dist/authz/authz.d.ts +44 -0
- package/dist/authz/authz.js +65 -0
- package/dist/car-runtime-1.10.0.tgz +0 -0
- package/dist/car-runtime-1.10.0.tgz.sig.bundle +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +825 -0
- package/dist/dx/doctor.d.ts +62 -0
- package/dist/dx/doctor.js +127 -0
- package/dist/governance/dump.d.ts +47 -0
- package/dist/governance/dump.js +17 -0
- package/dist/host/facade.d.ts +13 -0
- package/dist/host/facade.js +154 -0
- package/dist/host/hostGateway.d.ts +117 -0
- package/dist/host/hostGateway.js +65 -0
- package/dist/host/mappings.d.ts +27 -0
- package/dist/host/mappings.js +52 -0
- package/dist/host/stdio.d.ts +14 -0
- package/dist/host/stdio.js +83 -0
- package/dist/kernel/context.d.ts +76 -0
- package/dist/kernel/context.js +203 -0
- package/dist/kernel/events.d.ts +37 -0
- package/dist/kernel/events.js +82 -0
- package/dist/load/config.d.ts +79 -0
- package/dist/load/config.js +285 -0
- package/dist/load/loader.d.ts +72 -0
- package/dist/load/loader.js +162 -0
- package/dist/load/registry.d.ts +44 -0
- package/dist/load/registry.js +58 -0
- package/dist/load/report.d.ts +98 -0
- package/dist/load/report.js +301 -0
- package/dist/load/sigGate.d.ts +22 -0
- package/dist/load/sigGate.js +68 -0
- package/dist/load/sign.d.ts +25 -0
- package/dist/load/sign.js +47 -0
- package/dist/load/verifier.d.ts +35 -0
- package/dist/load/verifier.js +56 -0
- package/dist/loop/goal.d.ts +31 -0
- package/dist/loop/goal.js +34 -0
- package/dist/loop/recover.d.ts +17 -0
- package/dist/loop/recover.js +39 -0
- package/dist/loop/stop.d.ts +79 -0
- package/dist/loop/stop.js +151 -0
- package/dist/mcp/gateway.d.ts +96 -0
- package/dist/mcp/gateway.js +69 -0
- package/dist/mcp/httpClient.d.ts +27 -0
- package/dist/mcp/httpClient.js +196 -0
- package/dist/mcp/stdioClient.d.ts +8 -0
- package/dist/mcp/stdioClient.js +73 -0
- package/dist/ptc/budget.d.ts +21 -0
- package/dist/ptc/budget.js +36 -0
- package/dist/ptc/erasable.d.ts +14 -0
- package/dist/ptc/erasable.js +27 -0
- package/dist/ptc/runCode.d.ts +65 -0
- package/dist/ptc/runCode.js +140 -0
- package/dist/ptc/schemaRender.d.ts +15 -0
- package/dist/ptc/schemaRender.js +90 -0
- package/dist/ptc/sdk.d.ts +27 -0
- package/dist/ptc/sdk.js +23 -0
- package/dist/ptc/worker-entry.d.ts +1 -0
- package/dist/ptc/worker-entry.js +71 -0
- package/dist/release-audit.jsonl +4 -0
- package/dist/runtime-core/chatStep.d.ts +40 -0
- package/dist/runtime-core/chatStep.js +104 -0
- package/dist/runtime-core/credentials.d.ts +49 -0
- package/dist/runtime-core/credentials.js +118 -0
- package/dist/runtime-core/errors.d.ts +30 -0
- package/dist/runtime-core/errors.js +36 -0
- package/dist/runtime-core/llm.d.ts +76 -0
- package/dist/runtime-core/llm.js +553 -0
- package/dist/runtime-core/redaction.d.ts +39 -0
- package/dist/runtime-core/redaction.js +79 -0
- package/dist/runtime-core/telemetry.d.ts +88 -0
- package/dist/runtime-core/telemetry.js +332 -0
- package/dist/runtime-core/tools.d.ts +15 -0
- package/dist/runtime-core/tools.js +12 -0
- package/dist/runtime-core/trace.d.ts +55 -0
- package/dist/runtime-core/trace.js +137 -0
- package/dist/runtime-core/types.d.ts +84 -0
- package/dist/runtime-core/types.js +13 -0
- package/dist/sandbox/sandbox.d.ts +68 -0
- package/dist/sandbox/sandbox.js +153 -0
- package/dist/sbom.json +263 -0
- package/dist/seam.d.ts +21 -0
- package/dist/seam.js +20 -0
- package/dist/security/secrets-baseline.d.ts +43 -0
- package/dist/security/secrets-baseline.js +176 -0
- package/dist/security/secrets.d.ts +45 -0
- package/dist/security/secrets.js +138 -0
- package/dist/session/export.d.ts +55 -0
- package/dist/session/export.js +81 -0
- package/dist/session/fork.d.ts +51 -0
- package/dist/session/fork.js +63 -0
- package/dist/session/format.d.ts +21 -0
- package/dist/session/format.js +49 -0
- package/dist/session/indexStore.d.ts +44 -0
- package/dist/session/indexStore.js +265 -0
- package/dist/session/log.d.ts +79 -0
- package/dist/session/log.js +157 -0
- package/dist/session/store.d.ts +9 -0
- package/dist/session/store.js +37 -0
- package/dist/telemetry/metrics.d.ts +25 -0
- package/dist/telemetry/metrics.js +26 -0
- package/package.json +17 -1
- package/src/mcp/gateway.ts +10 -2
- package/src/mcp/httpClient.ts +23 -5
- package/src/runtime-core/trace.ts +5 -0
- package/src/seam.ts +21 -0
- package/.gitattributes +0 -11
- package/.github/workflows/ci.yml +0 -293
- package/.github/workflows/release.yml +0 -54
- package/adr/ADR-001.md +0 -4
- package/adr/ADR-002.md +0 -5
- package/adr/ADR-003.md +0 -35
- package/adr/host-onboarding.md +0 -68
- package/adr/mlps-audit-checklist.md +0 -41
- package/adr/win32-spike.md +0 -45
- package/docs/plugin-authoring.md +0 -82
- package/native/landlock-run/Makefile +0 -19
- package/native/landlock-run/landlock-run.c +0 -162
- package/scripts/contract-check.ts +0 -56
- package/scripts/invariant-n1.ts +0 -96
- package/scripts/package-check.ts +0 -29
- package/scripts/ptc-baseline/run-baseline.ts +0 -118
- package/scripts/release-artifacts.ts +0 -111
- package/scripts/release-pipeline.ts +0 -245
- package/scripts/secrets-baseline.ts +0 -33
- package/scripts/secrets-scan.ts +0 -56
- package/scripts/win32-ffi-debug.ts +0 -143
- package/scripts/win32-koffi-spike.ts +0 -537
- package/test/contract/eventmap.golden.json +0 -7
- package/test/fixtures/hello-plugin.ts +0 -5
- package/test/kernel.spec.ts +0 -136
- package/test/registry-e2e/run-e2e.ts +0 -213
- package/test/s11.spec.ts +0 -129
- package/test/s12.spec.ts +0 -135
- package/test/s13.spec.ts +0 -117
- package/test/s14.spec.ts +0 -117
- package/test/s15.spec.ts +0 -80
- package/test/s16.spec.ts +0 -133
- package/test/s17.spec.ts +0 -102
- package/test/s18.spec.ts +0 -81
- package/test/s19.spec.ts +0 -138
- package/test/s2.spec.ts +0 -245
- package/test/s20.spec.ts +0 -241
- package/test/s21.spec.ts +0 -231
- package/test/s22-m7-store-format.spec.ts +0 -135
- package/test/s23-m7-export-index.spec.ts +0 -189
- package/test/s24-signature-gate.spec.ts +0 -185
- package/test/s25-m8-runtime-core.spec.ts +0 -600
- package/test/s26-signature-closeout.spec.ts +0 -349
- package/test/s27-host-load-wiring.spec.ts +0 -134
- package/test/s28-session-index-followup.spec.ts +0 -236
- package/test/s29-otel-producer.spec.ts +0 -252
- package/test/s3.spec.ts +0 -179
- package/test/s30-release-artifacts.spec.ts +0 -127
- package/test/s31-real-model-wiring.spec.ts +0 -329
- package/test/s32-telemetry-mcp-ptc.spec.ts +0 -218
- package/test/s33-anthropic-adapter.spec.ts +0 -354
- package/test/s34-mcp-remote-transport.spec.ts +0 -250
- package/test/s35-config-ts-zod.spec.ts +0 -145
- package/test/s36-host-tool-surface.spec.ts +0 -250
- package/test/s37-projection-dedupe.spec.ts +0 -161
- package/test/s38-config-jiti.spec.ts +0 -116
- package/test/s39-otlp-span-semantics.spec.ts +0 -100
- package/test/s4.spec.ts +0 -169
- package/test/s40-metrics-cumulative.spec.ts +0 -67
- package/test/s41-mcp-serve-turn-span.spec.ts +0 -148
- package/test/s42-traceparent-propagation.spec.ts +0 -415
- package/test/s5.spec.ts +0 -95
- package/test/s6.spec.ts +0 -169
- package/test/s7.spec.ts +0 -136
- package/test/s7b-baseline.spec.ts +0 -20
- package/test/s9.spec.ts +0 -89
- package/test/sandbox-escape/j17-orchestrate.sh +0 -30
- package/test/sandbox-escape/run-matrix.sh +0 -98
- package/tsconfig.json +0 -18
package/README.md
CHANGED
|
@@ -238,9 +238,37 @@ node --experimental-transform-types --test test/*.spec.ts
|
|
|
238
238
|
- **1.7.0 正式发布(2026-09-28,S5 收官)**:npm `@lqc123qwe/car-runtime@1.7.0` 在架——**dist-tags latest → 1.7.0、rc 保留 1.0.0-rc.1** + provenance。Release `1.7.0`(id 398173870,agent GCM 凭据 API 创建)→ **j16 run 36414031672 全步 success**(构建/keyless 签名/自动上传五件套/npm publish)→ **post-publish 13 PASS / 0 DRY-RUN / 0 FAIL(REMOTE_CHECK=1 全实查)**;外部等价检查 **SHA256 MATCH(`24bb6c40…`)+ Rekor 交叉验证**(logIndex 2981897662 双端一致 + integratedTime 1790593823 + 透明日志 body 内制品哈希三方一致——tree 键形态差异延续 1.6 登记口径,详见收口报告 §5)。
|
|
239
239
|
- **遗留登记(1.8 候选池)**:W3C traceparent 跨进程传播(MCP stdio JSON-RPC 两端 + PTC worker 桥挂链——协议两端协同面大,1.7 延后登记);MCP legacy HTTP+SSE 维持不追溯(D-21);写类工具人审 confirm 通道宿主面外推(D-25 口径——前置未满足);插件 jiti 轨收敛观察项(可选演进非缺陷)。规划:`car-docs/10-内核v1/1.7-迭代规划.md`;收口报告:`car-docs/10-内核v1/1.7-收口终验报告.md`。
|
|
240
240
|
|
|
241
|
+
## 1.8 状态(W3C traceparent 跨进程传播 + LLM 出站通道修复)
|
|
242
|
+
|
|
243
|
+
| `src/runtime-core/trace.ts` | 1.8-S1~S3(D-29/D-30/D-31)**W3C traceparent 三边界挂链**:formatTraceparent/parseTraceparent(自研零依赖——version 00/32hex/16hex/全零拒绝,畸形 null fail-open 禁 fail-hard);TurnSpanHandle 加法 `mcpToolSpan`(car.mcp.tool client span 挂 turn——step span 已收口后工具执行;car.mcp_server/car.tool 登记标识符面)+ `ptcRelay`(workerTrace 载荷 + complete 收口 car.ptc span——error 路径 D-26 形态 + 负时长钳制);startTurn 加法 opts.trace(mcp-serve 远端挂链——traceId 复用 + parentSpanId);telemetry.ts 加法 time.startMs/end(atMs) 时刻覆盖(relay span——采样/buffer/出站路径零改动);自研 traceId 16B/spanId 8B hex 与 W3C 格式天然合规 | trace 隔离于单进程 → 跨进程可挂链 |
|
|
244
|
+
| `src/mcp/gateway.ts` + `src/host/stdio.ts` + `src/cli.ts` | 1.8-S1/S2(D-29/D-30)**MCP stdio 两端传播**:client 侧 callTool 加法 opts.traceparent → params._meta(MCP `_meta` 保留扩展点;**otel 关 = 不注入,JSON-RPC 字节面不变**;tools/list 不注入);server 侧 dispatch 第三参 meta 原样透传(解析归装配层),session_turn 提取挂链(畸形 fail-open 新 trace),非会话工具 meta 忽略(D-28 口径) | 响应路径回传登记不适用(W3C 请求携带语义) |
|
|
245
|
+
| `src/ptc/runCode.ts` + `worker-entry.ts` | 1.8-S3(D-31)**PTC worker 计时 relay**:worker 侧程序计时(同进程同时钟域)经 done 加法 span 字段回传,主线程经 spanBridge 单点收口 car.ptc span——**worker 零 trace 载荷注入、零独立出站通道(单 exporter 纪律)**;主侧 killer/worker error 兜底以主线程时钟收口(口径登记) | 1.8-插曲-1:workerData 载荷方案收敛为纯 relay(装饰性载荷无测试承载) |
|
|
246
|
+
| `src/runtime-core/llm.ts` | **1.8-BUG-1**:LLM 出站缺省通道 undici fetch → `nodeHttpSseFetch`(node:http(s) 流式 POST——AsyncIterable<Uint8Array> 契约不变;AbortSignal → req.destroy 对接 D-19;注入缝 fetchImpl 保留)——car run ≥3 次模型请求 + worker/子进程并存时 win32 退出 libuv 断言崩溃(0xC0000409,1.4-BUG-2 同源:彼时仅修遥测出站漏 LLM 面;E2E 三请求形态暴露 + 二分矩阵定位) | 出站通道口径须按通道类收口,非按调用点逐修 |
|
|
247
|
+
| `test/s42` | 7 测:W3C 编解码(畸形 fail-open 全集)/ mcpToolSpan(挂链+traceparent 形态+noop 零注入)/ startTurn 远端挂链 / ptcRelay(时刻覆盖+error+钳制+noop)/ callTool `_meta` 注入与缺省无键 / E2E-A car run 全链三点闭合(回显 traceparent ↔ OTLP car.mcp.tool spanId)+ car.ptc 计时窗口 / E2E-B mcp-serve 挂链+畸形 fail-open | 1.8-GO-5 生产调用点双向核查承载 |
|
|
248
|
+
|
|
249
|
+
- **1.8 工程收口(2026-09-29,`6522e98`)**:1.7 延后登记「traceparent 跨进程传播」出清(TRACE-1/2/3 三块)。全量 **335(332 PASS + 3 能力门控 skip / 0 fail)** + tsc strict 0 + secrets-scan 121 文件 0 命中 + contract-check 4/4(golden 不动)+ 零依赖静态断言保持。**1.8-BUG-1 于迭代内修复**(真缺陷登记 + 二分矩阵验证 + s42 E2E-A 回归承载);存量断言零改动(s12/s29/s32/s41 无新增面钉死——复核实证)。
|
|
250
|
+
- **1.8.0 正式发布(2026-09-29,S5 收官)**:npm `@lqc123qwe/car-runtime@1.8.0` 在架——**dist-tags latest → 1.8.0、rc 保留 1.0.0-rc.1** + provenance(slsa.dev/provenance/v1——registry attestations 端点实查,npm 形态演进登记)。Release `1.8.0`(id 398799183,agent GCM 凭据 API 创建,全 SHA 挂载——插曲:短 SHA 被拒)→ **j16 run 36517038845 全步 success**(构建/keyless 签名/自动上传五件套/npm publish)→ **post-publish 13 PASS / 0 DRY-RUN / 0 FAIL(全实查)**;外部等价检查 **SHA256 MATCH(`15c5e2cf…`)+ Rekor 交叉验证**(logIndex 2992647008 双端一致 + integratedTime 1790652315 + 透明日志 body 内制品哈希三方一致——tree 键形态差异延续 1.6/1.7 登记口径,详见收口报告 §6)。
|
|
251
|
+
- **遗留登记(1.9 候选池)**:远程 MCP(Streamable HTTP)traceparent 传播——HTTP `traceparent` 头通道(D-21 通道既有,1.8 延后登记);mcp-serve 响应路径回传 span 上下文(D-30 登记不适用——宿主消费面不存在);MCP legacy HTTP+SSE 维持不追溯(D-21);写类工具人审外推(D-25 口径维持);插件 jiti 轨维持观察;metrics 多标签 dataPoints 维持。规划:`car-docs/10-内核v1/1.8-迭代规划.md`;收口报告:`car-docs/10-内核v1/1.8-收口终验报告.md`。
|
|
252
|
+
|
|
253
|
+
## 1.9 状态(远程 MCP traceparent 传播:Streamable HTTP 头通道)
|
|
254
|
+
|
|
255
|
+
| `src/mcp/gateway.ts` + `src/mcp/httpClient.ts` | 1.9-S1(D-32)**远程 MCP 头通道**:ClientTransport.send 加法可选第二参 opts.traceparent(既有 `send(req)` 实现结构兼容零改动;stdio 忽略 opts——`_meta` 载体 1.8 不变);httpClient tools/call 请求头加法 `traceparent`(W3C Trace Context HTTP 载体惯例——远程 server 主消费面);parseTraceparent 校验 fail-open(畸形/全零/CRLF 拼接形态/空串不注入不抛——兼防头注入越权面);配置 headers 字面同名注入优先(登记);initialize/notifications/tools/list 不注入(无 span 上下文边界);**otel 关 = 头与 `_meta` 双载体零注入(请求头面与字节面不变)**;`_meta` 1.8 字节面维持——otel 开时双载体同值(头为主消费面,登记) | client 传播三载体闭环(stdio `_meta` / HTTP 头 / PTC 桥);cli.ts 装配层零改动 |
|
|
256
|
+
| `test/s43` | 4 测:头注入形态 + 双载体同值 + 缺省零注入 / 畸形 fail-open 全集(garbage + CRLF 越权 + 全零 + 空串)/ 配置同名注入优先 / E2E car run 远程 MCP 全链三点闭合(头回显 ↔ OTLP car.mcp.tool spanId + traceId)+ 双载体同值生产实查 + 零内容 | 1.9-GO-5 生产调用点核查承载 |
|
|
257
|
+
|
|
258
|
+
- **1.9 工程收口(2026-09-29,`179ab10`)**:1.8 候选池首选项出清(HTTP-TP 单块——gateway 透传 + httpClient 头注入)。全量 **339(336 PASS + 3 能力门控 skip / 0 fail)** + tsc strict 0 + secrets-scan 122 文件 0 命中(commit 后复跑)+ contract-check 4/4(golden 不动)+ 零依赖静态断言保持;存量 s32/s34/s42 零改动通过 = 兼容验收线。
|
|
259
|
+
- **1.9.0 正式发布(2026-09-29,S3 收官)**:npm `@lqc123qwe/car-runtime@1.9.0` 在架——**dist-tags latest → 1.9.0、rc 保留 1.0.0-rc.1** + provenance(slsa.dev/provenance/v1,attestations 端点实查)。Release `1.9.0`(id 398819949,agent GCM 凭据 node https 创建——插曲-1 口径:curl 内联中文转码破坏弃用;全 SHA 挂载)→ **j16 run 36521015983 全步 success**(构建/keyless 签名/自动上传五件套/npm publish with provenance)→ **G-04 npm audit 0 findings**;外部等价检查 **SHA256 MATCH(`f6fb9609…`)+ Rekor 交叉验证**(logIndex 2993391827 双端一致 + integratedTime 1790655493 + 透明日志 body 内制品哈希三方一致——tree 键形态差异延续登记;Rekor 双记录澄清:2993392722 = provenance 声明记录,2993391827 = 制品签名记录,对拍以 bundle 记录为准,详见收口报告 §3/§6)。
|
|
260
|
+
- **遗留登记(1.x 候选池,仅余维持项)**:mcp-serve 响应路径回传 span 上下文(D-30 登记不适用);MCP legacy HTTP+SSE 维持不追溯(D-21);写类工具人审外推(D-25 口径维持);插件 jiti 轨维持观察;metrics 多标签 dataPoints 维持;trace 面演进观察(MCP 官方 trace 规范落键名时复核 `_meta` 键位对齐——D-29 观察项)。规划:`car-docs/10-内核v1/1.9-迭代规划.md`;收口报告:`car-docs/10-内核v1/1.9-收口终验报告.md`。
|
|
261
|
+
|
|
262
|
+
## 1.10 状态(KernelSeam 公开导出面 + 库构建产物)
|
|
263
|
+
|
|
264
|
+
| `src/seam.ts` | 1.10-S1:**KernelSeam 公开导出面**(19 符号窄面——SessionLog/SessionFileStore/runTurn/chatStep/RuntimeCore/CredentialService/双适配器/mountPlugin/Context/loadCarConfig 族/沙箱/遥测族)+ `tsconfig.build.json`(`rewriteRelativeImportExtensions`——`.ts` 后缀 import 编译期重写为 `.js`,dist 产物 1:1 镜像 src)+ `test/s44` 2 测(src 符号面完整 / dist 独立装载 + 符号一致 + SessionLog 冒烟) | 平台层(car-platform)KernelSeam 适配器消费面;D16 T-6 冻结面 semver 承诺载体 |
|
|
265
|
+
| `package.json` + CI | **库形态补全**:`main`/`types`/`exports`(`.` → dist/seam,`./src/*` 通配保留深路径向后兼容——加法非破坏)/ `files`(dist+src)/ `scripts.build`;ci.yml j01 增库构建验证步(扫描后防生成物干扰);release.yml 构建步前置(tgz 打包 `files` 含 dist) | **执行期关键发现:Node 硬禁 node_modules 内 type-stripping(ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING,本机 23.5 与 CI 22.19 同)——「源码直发即可被库消费」假设不成立,dist 产物为库消费唯一通路** |
|
|
266
|
+
|
|
267
|
+
- **1.10 工程收口(2026-09-29)**:全量 **341(338 PASS + 3 能力门控 skip / 0 fail)** = 1.9 基线 339 + s44 2 测;tsc strict 0;dist 构建装载冒烟过。**1.10 = 平台层 S3 前置(car-platform KernelSeam 实挂依赖本导出面);内核运行时行为零改动(存量 339 测试零改动通过 = 兼容验收线)**。
|
|
268
|
+
|
|
241
269
|
## 状态
|
|
242
270
|
|
|
243
|
-
- **版本主线**:S1-S4 48/48 | M2 89/89(v0.2.0)| M3 127/127(v0.3.0)| M4 139/139(**1.0.0-rc.1 已发布**)| M5 156/156(DEC-4 预埋项转正)| M6 179/179(2026-09-15 收口)| M7 全量 195(192 PASS + 3 能力门控 skip,2026-09-19 收口)| **M5-S28 装载签名门 全量 204(201 PASS + 3 skip,2026-09-26)** | **M8 运行时底座 全量 231(228 PASS + 3 skip,2026-09-26 收口,§3.2 八模块全部收口)** | **1.1 签名收尾最小集 全量 249(246 PASS + 3 skip,2026-09-27 收口,1.1.0 已发布,enforce 翻转准备就绪)** | **1.2 会话/遥测小项 全量 263(260 PASS + 3 skip,2026-09-27 收口,1.2.0 已发布)** | **1.3 发布资产自动化 全量 270(267 PASS + 3 skip,2026-09-27 收口,1.3.0 已发布,全链零人工拖拽兑现)** | **1.4 真实模型接入 全量 282(279 PASS + 3 skip,2026-09-27 收口,1.4.0 已发布)** | **1.5 provider 扩展+远程 MCP+配置完整形态 全量 300(297 PASS + 3 skip,2026-09-28 收口,1.5.0 已发布)** | **1.6 宿主工具面+投影收敛+jiti 载体 全量 318(315 PASS + 3 skip,2026-09-28 收口,1.6.0 已发布)** | **1.7 OTLP span 语义收口+metrics 时序修正+mcp-serve span 面 全量 328(325 PASS + 3 skip,2026-09-28 收口,1.7.0 已发布)**
|
|
271
|
+
- **版本主线**:S1-S4 48/48 | M2 89/89(v0.2.0)| M3 127/127(v0.3.0)| M4 139/139(**1.0.0-rc.1 已发布**)| M5 156/156(DEC-4 预埋项转正)| M6 179/179(2026-09-15 收口)| M7 全量 195(192 PASS + 3 能力门控 skip,2026-09-19 收口)| **M5-S28 装载签名门 全量 204(201 PASS + 3 skip,2026-09-26)** | **M8 运行时底座 全量 231(228 PASS + 3 skip,2026-09-26 收口,§3.2 八模块全部收口)** | **1.1 签名收尾最小集 全量 249(246 PASS + 3 skip,2026-09-27 收口,1.1.0 已发布,enforce 翻转准备就绪)** | **1.2 会话/遥测小项 全量 263(260 PASS + 3 skip,2026-09-27 收口,1.2.0 已发布)** | **1.3 发布资产自动化 全量 270(267 PASS + 3 skip,2026-09-27 收口,1.3.0 已发布,全链零人工拖拽兑现)** | **1.4 真实模型接入 全量 282(279 PASS + 3 skip,2026-09-27 收口,1.4.0 已发布)** | **1.5 provider 扩展+远程 MCP+配置完整形态 全量 300(297 PASS + 3 skip,2026-09-28 收口,1.5.0 已发布)** | **1.6 宿主工具面+投影收敛+jiti 载体 全量 318(315 PASS + 3 skip,2026-09-28 收口,1.6.0 已发布)** | **1.7 OTLP span 语义收口+metrics 时序修正+mcp-serve span 面 全量 328(325 PASS + 3 skip,2026-09-28 收口,1.7.0 已发布)** | **1.8 W3C traceparent 跨进程传播+LLM 出站通道修复 全量 335(332 PASS + 3 skip,2026-09-29 收口,1.8.0 已发布)** | **1.9 远程 MCP traceparent 传播(HTTP 头通道) 全量 339(336 PASS + 3 skip,2026-09-29 收口,1.9.0 已发布)** | **1.10 KernelSeam 公开导出面+库构建产物 全量 341(338 PASS + 3 skip,2026-09-29 收口,1.10.0 已发布)**
|
|
244
272
|
- **1.0.0 正式发布(2026-09-26,S29/S30)**:npm `@lqc123qwe/car-runtime@1.0.0` 在架——**dist-tag latest → 1.0.0,rc 保留指向 1.0.0-rc.1**(§1.1 口径);SLSA provenance(Actions OIDC,透明日志在案);GitHub Release v1.0.0 六资产(tgz/bundle/SHA256SUMS/SBOM/审计/公钥);**post-publish 全链 13 PASS / 0 DRY-RUN / 0 FAIL** + 外部验证者等价检查(Release 实下载件 SHA256 MATCH + cosign Verified OK)。**宽限期时钟:2026-09-26 起算,2026-12-25 到期 verifier 默认值 warn→enforce 翻转(计划内变更)**。终验报告:`car-docs/10-内核v1/M5-S30-1.0收口终验报告.md`。发布工程事件:j16 首跑 E403(npm 2FA 策略 vs granular token 无 bypass——清单预设回退路径兑现)→ bypass token re-run 绿;G-09 期望 tag 动态化(`4c84b17`)在真实发布兑现价值。
|
|
245
273
|
- **1.0.0-rc.1 已发布(2026-09-09)**:npm `@lqc123qwe/car-runtime@1.0.0-rc.1`(rc + latest 双 tag,SLSA provenance 在案)+ GitHub Release 6 制品;发布预演 **13 PASS / 0 DRY-RUN / 0 FAIL**(c762b72)。S22 GO 清单已全绿收口。
|
|
246
274
|
- **轨道 A 三项全部完成**:E-1 WSL2 逃逸矩阵 **20/20 PASS 零逃逸**(2026-09-07,G-07 转 PASS)| E-3 远端发布通道 **13/13 全门禁 PASS**(2026-09-09,G-08/09/10 转 PASS)| E-2 Windows koffi FFI **四判据双环境全 PASS**(S24/S25/S26,2026-09-09~10;本机非提权 + windows-latest 提权 runner 双绿,CI 门禁已接入)。
|
package/dist/SHA256SUMS
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
9e1d9d1865f469064fce724d646b8a3c9b87c897868c59a348800c0c64cb9ef9 car-runtime-1.10.0.tgz
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* F4 · 授权服务:幂等决策 + 超时默认拒绝 + 能力标签 deny-by-default + 审计留痕
|
|
3
|
+
*
|
|
4
|
+
* 口径(《系统设计》§7.2.5 / 安全设计 §2.2 / US-3):
|
|
5
|
+
* - 授权对象 = 「能力 × 资源」;能力标签五枚举,未声明即无该能力(deny-by-default)
|
|
6
|
+
* - 幂等键 authorizationId:重复请求返回同一决策(防决策重放不一致,T-10)
|
|
7
|
+
* - 审批等待 120s 超时默认拒绝(timeout-default-deny;测试可注入短超时)
|
|
8
|
+
* - 决策 100% 写审计日志(US6「凭什么」的凭据);降级态决策带 degraded=true
|
|
9
|
+
*/
|
|
10
|
+
import type { SessionLog } from '../session/log.ts';
|
|
11
|
+
import type { Capability } from '../sandbox/sandbox.ts';
|
|
12
|
+
export type Decision = 'APPROVED' | 'DENIED' | 'EXPIRED';
|
|
13
|
+
export interface AuthzRequest {
|
|
14
|
+
authorizationId: string;
|
|
15
|
+
actor: string;
|
|
16
|
+
capability: Capability;
|
|
17
|
+
resource: string;
|
|
18
|
+
reason?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface AuthzDecision {
|
|
21
|
+
authorizationId: string;
|
|
22
|
+
decision: Decision;
|
|
23
|
+
decidedBy: 'user' | 'policy' | 'timeout';
|
|
24
|
+
reason: string;
|
|
25
|
+
degraded: boolean;
|
|
26
|
+
ts: number;
|
|
27
|
+
}
|
|
28
|
+
export interface DeclaredCapabilities {
|
|
29
|
+
capabilities?: Capability[];
|
|
30
|
+
}
|
|
31
|
+
/** 能力标签检查:manifest 未声明的能力 = deny(T-22:未声明按最高约束) */
|
|
32
|
+
export declare function checkCapability(declared: DeclaredCapabilities, needed: Capability): boolean;
|
|
33
|
+
export declare class AuthzService {
|
|
34
|
+
#private;
|
|
35
|
+
constructor(opts: {
|
|
36
|
+
log: SessionLog;
|
|
37
|
+
timeoutMs?: number;
|
|
38
|
+
degraded?: boolean;
|
|
39
|
+
});
|
|
40
|
+
/** 声明式放行(policy):readonly 模式下写类一律 DENIED,无需人审 */
|
|
41
|
+
decideByPolicy(req: AuthzRequest, mode: 'readonly' | 'confirm' | 'full'): AuthzDecision;
|
|
42
|
+
/** 人审(confirm 模式):120s 超时默认拒绝(timeout-default-deny) */
|
|
43
|
+
decideByUser(req: AuthzRequest, approve: (req: AuthzRequest) => Promise<boolean>): Promise<AuthzDecision>;
|
|
44
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/** 能力标签检查:manifest 未声明的能力 = deny(T-22:未声明按最高约束) */
|
|
2
|
+
export function checkCapability(declared, needed) {
|
|
3
|
+
return declared.capabilities?.includes(needed) === true;
|
|
4
|
+
}
|
|
5
|
+
export class AuthzService {
|
|
6
|
+
#decisions = new Map();
|
|
7
|
+
#log;
|
|
8
|
+
#timeoutMs;
|
|
9
|
+
#degraded;
|
|
10
|
+
constructor(opts) {
|
|
11
|
+
this.#log = opts.log;
|
|
12
|
+
this.#timeoutMs = opts.timeoutMs ?? 120_000;
|
|
13
|
+
this.#degraded = opts.degraded ?? false;
|
|
14
|
+
}
|
|
15
|
+
/** 声明式放行(policy):readonly 模式下写类一律 DENIED,无需人审 */
|
|
16
|
+
decideByPolicy(req, mode) {
|
|
17
|
+
const writeish = req.capability !== 'env-read' && req.capability !== 'mcp';
|
|
18
|
+
const decision = {
|
|
19
|
+
authorizationId: req.authorizationId,
|
|
20
|
+
decision: mode === 'full' ? 'APPROVED' : 'DENIED',
|
|
21
|
+
decidedBy: 'policy',
|
|
22
|
+
reason: mode === 'full' ? 'auto-allowed (full mode)' : `write-class capability "${req.capability}" denied in ${mode} mode`,
|
|
23
|
+
degraded: this.#degraded,
|
|
24
|
+
ts: Date.now(),
|
|
25
|
+
};
|
|
26
|
+
void writeish;
|
|
27
|
+
return this.#commit(decision);
|
|
28
|
+
}
|
|
29
|
+
/** 人审(confirm 模式):120s 超时默认拒绝(timeout-default-deny) */
|
|
30
|
+
async decideByUser(req, approve) {
|
|
31
|
+
const cached = this.#decisions.get(req.authorizationId);
|
|
32
|
+
if (cached)
|
|
33
|
+
return cached; // 幂等:同 id 返回同一决策(防重放不一致)
|
|
34
|
+
let approved;
|
|
35
|
+
try {
|
|
36
|
+
approved = await Promise.race([
|
|
37
|
+
approve(req),
|
|
38
|
+
new Promise(resolve => setTimeout(() => resolve(false), this.#timeoutMs)),
|
|
39
|
+
]);
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
approved = false;
|
|
43
|
+
}
|
|
44
|
+
const decision = {
|
|
45
|
+
authorizationId: req.authorizationId,
|
|
46
|
+
decision: approved ? 'APPROVED' : 'EXPIRED',
|
|
47
|
+
decidedBy: approved ? 'user' : 'timeout',
|
|
48
|
+
reason: approved ? 'user approved within timeout' : `approval timeout after ${this.#timeoutMs}ms (default-deny)`,
|
|
49
|
+
degraded: this.#degraded,
|
|
50
|
+
ts: Date.now(),
|
|
51
|
+
};
|
|
52
|
+
return this.#commit(decision);
|
|
53
|
+
}
|
|
54
|
+
#commit(d) {
|
|
55
|
+
const existing = this.#decisions.get(d.authorizationId);
|
|
56
|
+
if (existing)
|
|
57
|
+
return existing;
|
|
58
|
+
this.#decisions.set(d.authorizationId, d);
|
|
59
|
+
// 授权留痕:authorization/* 事件(写会话日志先于执行——先落日志后放行由调用方保证顺序)
|
|
60
|
+
this.#log.append('runtime', 'turnEnd', `authz:${d.authorizationId}`, {
|
|
61
|
+
authorizationId: d.authorizationId, decision: d.decision, decidedBy: d.decidedBy, degraded: d.degraded,
|
|
62
|
+
}, { reason: d.reason });
|
|
63
|
+
return d;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"base64Signature":"MEUCIQC9Eb4tjZzDe1mzgXUycmzYBYKgL6Jy5Hk2QNYQDXwEAQIgYQ8bVRThONnvlokYD1GdQgBQ3KxeKvH2RtK4/0VZSz4=","cert":"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUhFakNDQnBtZ0F3SUJBZ0lVVkJKazAvbWwrckMvZ01PcVlOVk1vSVpTbEV3d0NnWUlLb1pJemowRUF3TXcKTnpFVk1CTUdBMVVFQ2hNTWMybG5jM1J2Y21VdVpHVjJNUjR3SEFZRFZRUURFeFZ6YVdkemRHOXlaUzFwYm5SbApjbTFsWkdsaGRHVXdIaGNOTWpZd09USTVNRGN6TWpNeFdoY05Nall3T1RJNU1EYzBNak14V2pBQU1Ga3dFd1lICktvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVLS2lkTGZWTUR6RGZJT1hocTRRanhkbjZUdUJhK0xBSXRMQVcKZFVMWkJoRnFLTFgzSGg0MlJCdWorOWVCQmZ3cDhtbjJDRmJvbWcya1NJN1lGUkg3V2FPQ0JiZ3dnZ1cwTUE0RwpBMVVkRHdFQi93UUVBd0lIZ0RBVEJnTlZIU1VFRERBS0JnZ3JCZ0VGQlFjREF6QWRCZ05WSFE0RUZnUVVFMlA0CkNEd3Rta0ZPVTJwNEhoNk5iU1NRM3Bvd0h3WURWUjBqQkJnd0ZvQVUzOVBwejFZa0VaYjVxTmpwS0ZXaXhpNFkKWkQ4d1lRWURWUjBSQVFIL0JGY3dWWVpUYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJ4eFl6WXlOQzlqWVhJdApjblZ1ZEdsdFpTOHVaMmwwYUhWaUwzZHZjbXRtYkc5M2N5OXlaV3hsWVhObExubHRiRUJ5WldaekwyaGxZV1J6CkwyMWhhVzR3T1FZS0t3WUJCQUdEdnpBQkFRUXJhSFIwY0hNNkx5OTBiMnRsYmk1aFkzUnBiMjV6TG1kcGRHaDEKWW5WelpYSmpiMjUwWlc1MExtTnZiVEFmQmdvckJnRUVBWU8vTUFFQ0JCRjNiM0pyWm14dmQxOWthWE53WVhSagphREEyQmdvckJnRUVBWU8vTUFFREJDaGtaRGswWlRCaFpETmpNbUZqWmpFM1kyRTNOelpqTWpreVpEUTFZV0UzCk9EazFNV1ZtWTJWbE1CVUdDaXNHQVFRQmc3OHdBUVFFQjNKbGJHVmhjMlV3SUFZS0t3WUJCQUdEdnpBQkJRUVMKYkhGak5qSTBMMk5oY2kxeWRXNTBhVzFsTUIwR0Npc0dBUVFCZzc4d0FRWUVEM0psWm5NdmFHVmhaSE12YldGcApiakE3QmdvckJnRUVBWU8vTUFFSUJDME1LMmgwZEhCek9pOHZkRzlyWlc0dVlXTjBhVzl1Y3k1bmFYUm9kV0oxCmMyVnlZMjl1ZEdWdWRDNWpiMjB3WXdZS0t3WUJCQUdEdnpBQkNRUlZERk5vZEhSd2N6b3ZMMmRwZEdoMVlpNWoKYjIwdmJIRmpOakkwTDJOaGNpMXlkVzUwYVcxbEx5NW5hWFJvZFdJdmQyOXlhMlpzYjNkekwzSmxiR1ZoYzJVdQplVzFzUUhKbFpuTXZhR1ZoWkhNdmJXRnBiakE0QmdvckJnRUVBWU8vTUFFS0JDb01LR1JrT1RSbE1HRmtNMk15CllXTm1NVGRqWVRjM05tTXlPVEprTkRWaFlUYzRPVFV4WldaalpXVXdIUVlLS3dZQkJBR0R2ekFCQ3dRUERBMW4KYVhSb2RXSXRhRzl6ZEdWa01EVUdDaXNHQVFRQmc3OHdBUXdFSnd3bGFIUjBjSE02THk5bmFYUm9kV0l1WTI5dApMMnh4WXpZeU5DOWpZWEl0Y25WdWRHbHRaVEE0QmdvckJnRUVBWU8vTUFFTkJDb01LR1JrT1RSbE1HRmtNMk15CllXTm1NVGRqWVRjM05tTXlPVEprTkRWaFlUYzRPVFV4WldaalpXVXdId1lLS3dZQkJBR0R2ekFCRGdRUkRBOXkKWldaekwyaGxZV1J6TDIxaGFXNHdHZ1lLS3dZQkJBR0R2ekFCRHdRTURBb3hNell4TVRreU56RTBNQ2tHQ2lzRwpBUVFCZzc4d0FSQUVHd3daYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJ4eFl6WXlOREFZQmdvckJnRUVBWU8vCk1BRVJCQW9NQ0RZNU1qTTBOVFkwTUdNR0Npc0dBUVFCZzc4d0FSSUVWUXhUYUhSMGNITTZMeTluYVhSb2RXSXUKWTI5dEwyeHhZell5TkM5allYSXRjblZ1ZEdsdFpTOHVaMmwwYUhWaUwzZHZjbXRtYkc5M2N5OXlaV3hsWVhObApMbmx0YkVCeVpXWnpMMmhsWVdSekwyMWhhVzR3T0FZS0t3WUJCQUdEdnpBQkV3UXFEQ2hrWkRrMFpUQmhaRE5qCk1tRmpaakUzWTJFM056WmpNamt5WkRRMVlXRTNPRGsxTVdWbVkyVmxNQ0VHQ2lzR0FRUUJnNzh3QVJRRUV3d1IKZDI5eWEyWnNiM2RmWkdsemNHRjBZMmd3V1FZS0t3WUJCQUdEdnpBQkZRUkxERWxvZEhSd2N6b3ZMMmRwZEdoMQpZaTVqYjIwdmJIRmpOakkwTDJOaGNpMXlkVzUwYVcxbEwyRmpkR2x2Ym5NdmNuVnVjeTh6TmpVek56SXlOalV5Ck5DOWhkSFJsYlhCMGN5OHhNQllHQ2lzR0FRUUJnNzh3QVJZRUNBd0djSFZpYkdsak1FOEdDaXNHQVFRQmc3OHcKQVJnRVFRdy9jbVZ3Ynpwc2NXTTJNalJBTmpreU16UTFOalF2WTJGeUxYSjFiblJwYldWQU1UTTJNVEU1TWpjeApORHB5WldZNmNtVm1jeTlvWldGa2N5OXRZV2x1TUlHSkJnb3JCZ0VFQWRaNUFnUUNCSHNFZVFCM0FIVUEzVDB3CmFzYkhFVEpqR1I0Y21XYzNBcUpLWHJqZVBLMy9oNHB5Z0M4cDdvNEFBQUdnN0JSYVZRQUFCQU1BUmpCRUFpQUgKRlJxT20zUlk4TWJ6RVhPS08vQjRNSW9PR1ZpSk5McW9UaE0rUERRd3hnSWdIczJLKzZKelJyT1h6OGwya3JJVgpXdzBKRktTcExXNEJUbDhvcHhrbTJSSXdDZ1lJS29aSXpqMEVBd01EWndBd1pBSXdJWXorK3FLMi9sZHJ4TmxuCnpvU2FlcTl6UWorOE1odnFOWXVXbVV4MVArN1VFc2pNcTh2cjlZZkg4Y09WNnR3ZEFqQUIyWExlZFlFNlRXdmYKbEI4Wk1xNVVodEQwR01nZXJLREhibGR6d0xFcHg2YnM3QUJTbEdXb1RyajdBbVJibzNVPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==","rekorBundle":{"SignedEntryTimestamp":"MEYCIQCQSshImz2LhSdIM0EyENAxTY1e+WvxVUnnr33WAxBy8wIhAIS1JWDTUupB9GK+eAdIDUt9uJeziuzX8v1UjrNl+r8j","Payload":{"body":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI5ZTFkOWQxODY1ZjQ2OTA2NGZjZTcyNGQ2NDZiOGEzYzliODdjODk3ODY4YzU5YTM0ODgwMGMwYzY0Y2I5ZWY5In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUM5RWI0dGpaekRlMW16Z1hVeWNtellCWUtnTDZKeTVIazJRTllRRFh3RUFRSWdZUThiVlJUaE9ObnZsb2tZRDFHZFFnQlEzS3hlS3ZIMlJ0SzQvMFZaU3o0PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaEZha05EUW5CdFowRjNTVUpCWjBsVlZrSkthekF2Yld3cmNrTXZaMDFQY1ZsT1ZrMXZTVnBUYkVWM2QwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlVU1RWTlJHTjZUV3BOZUZkb1kwNU5hbGwzVDFSSk5VMUVZekJOYWsxNFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZMUzJsa1RHWldUVVI2UkdaSlQxaG9jVFJSYW5oa2JqWlVkVUpoSzB4QlNYUk1RVmNLWkZWTVdrSm9SbkZMVEZnelNHZzBNbEpDZFdvck9XVkNRbVozY0RodGJqSkRSbUp2YldjeWExTkpOMWxHVWtnM1YyRlBRMEppWjNkbloxY3dUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZGTWxBMENrTkVkM1J0YTBaUFZUSndORWhvTms1aVUxTlJNM0J2ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDFsUldVUldVakJTUVZGSUwwSkdZM2RXV1ZwVVlVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKNGVGbDZXWGxPUXpscVdWaEpkQXBqYmxaMVpFZHNkRnBUT0hWYU1td3dZVWhXYVV3elpIWmpiWFJ0WWtjNU0yTjVPWGxhVjNoc1dWaE9iRXh1YkhSaVJVSjVXbGRhZWt3eWFHeFpWMUo2Q2t3eU1XaGhWelIzVDFGWlMwdDNXVUpDUVVkRWRucEJRa0ZSVVhKaFNGSXdZMGhOTmt4NU9UQmlNblJzWW1rMWFGa3pVbkJpTWpWNlRHMWtjR1JIYURFS1dXNVdlbHBZU21waU1qVXdXbGMxTUV4dFRuWmlWRUZtUW1kdmNrSm5SVVZCV1U4dlRVRkZRMEpDUmpOaU0wcHlXbTE0ZG1ReE9XdGhXRTUzV1ZoU2FncGhSRUV5UW1kdmNrSm5SVVZCV1U4dlRVRkZSRUpEYUd0YVJHc3dXbFJDYUZwRVRtcE5iVVpxV21wRk0xa3lSVE5PZWxwcVRXcHJlVnBFVVRGWlYwVXpDazlFYXpGTlYxWnRXVEpXYkUxQ1ZVZERhWE5IUVZGUlFtYzNPSGRCVVZGRlFqTktiR0pIVm1oak1sVjNTVUZaUzB0M1dVSkNRVWRFZG5wQlFrSlJVVk1LWWtoR2FrNXFTVEJNTWs1b1kya3hlV1JYTlRCaFZ6RnNUVUl3UjBOcGMwZEJVVkZDWnpjNGQwRlJXVVZFTTBwc1dtNU5kbUZIVm1oYVNFMTJZbGRHY0FwaWFrRTNRbWR2Y2tKblJVVkJXVTh2VFVGRlNVSkRNRTFMTW1nd1pFaENlazlwT0haa1J6bHlXbGMwZFZsWFRqQmhWemwxWTNrMWJtRllVbTlrVjBveENtTXlWbmxaTWpsMVpFZFdkV1JETldwaU1qQjNXWGRaUzB0M1dVSkNRVWRFZG5wQlFrTlJVbFpFUms1dlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5Xb0tZakl3ZG1KSVJtcE9ha2t3VERKT2FHTnBNWGxrVnpVd1lWY3hiRXg1Tlc1aFdGSnZaRmRKZG1ReU9YbGhNbHB6WWpOa2Vrd3pTbXhpUjFab1l6SlZkUXBsVnpGelVVaEtiRnB1VFhaaFIxWm9Xa2hOZG1KWFJuQmlha0UwUW1kdmNrSm5SVVZCV1U4dlRVRkZTMEpEYjAxTFIxSnJUMVJTYkUxSFJtdE5NazE1Q2xsWFRtMU5WR1JxV1ZSak0wNXRUWGxQVkVwclRrUldhRmxVWXpSUFZGVjRXbGRhYWxwWFZYZElVVmxMUzNkWlFrSkJSMFIyZWtGQ1EzZFJVRVJCTVc0S1lWaFNiMlJYU1hSaFJ6bDZaRWRXYTAxRVZVZERhWE5IUVZGUlFtYzNPSGRCVVhkRlNuZDNiR0ZJVWpCalNFMDJUSGs1Ym1GWVVtOWtWMGwxV1RJNWRBcE1Nbmg0V1hwWmVVNURPV3BaV0VsMFkyNVdkV1JIYkhSYVZFRTBRbWR2Y2tKblJVVkJXVTh2VFVGRlRrSkRiMDFMUjFKclQxUlNiRTFIUm10Tk1rMTVDbGxYVG0xTlZHUnFXVlJqTTA1dFRYbFBWRXByVGtSV2FGbFVZelJQVkZWNFdsZGFhbHBYVlhkSWQxbExTM2RaUWtKQlIwUjJla0ZDUkdkUlVrUkJPWGtLV2xkYWVrd3lhR3haVjFKNlRESXhhR0ZYTkhkSFoxbExTM2RaUWtKQlIwUjJla0ZDUkhkUlRVUkJiM2hOZWxsNFRWUnJlVTU2UlRCTlEydEhRMmx6UndwQlVWRkNaemM0ZDBGU1FVVkhkM2RhWVVoU01HTklUVFpNZVRsdVlWaFNiMlJYU1hWWk1qbDBUREo0ZUZsNldYbE9SRUZaUW1kdmNrSm5SVVZCV1U4dkNrMUJSVkpDUVc5TlEwUlpOVTFxVFRCT1ZGa3dUVWROUjBOcGMwZEJVVkZDWnpjNGQwRlNTVVZXVVhoVVlVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVUtXVEk1ZEV3eWVIaFplbGw1VGtNNWFsbFlTWFJqYmxaMVpFZHNkRnBUT0hWYU1td3dZVWhXYVV3elpIWmpiWFJ0WWtjNU0yTjVPWGxhVjNoc1dWaE9iQXBNYm14MFlrVkNlVnBYV25wTU1taHNXVmRTZWt3eU1XaGhWelIzVDBGWlMwdDNXVUpDUVVkRWRucEJRa1YzVVhGRVEyaHJXa1JyTUZwVVFtaGFSRTVxQ2sxdFJtcGFha1V6V1RKRk0wNTZXbXBOYW10NVdrUlJNVmxYUlROUFJHc3hUVmRXYlZreVZteE5RMFZIUTJselIwRlJVVUpuTnpoM1FWSlJSVVYzZDFJS1pESTVlV0V5V25OaU0yUm1Xa2RzZW1OSFJqQlpNbWQzVjFGWlMwdDNXVUpDUVVkRWRucEJRa1pSVWt4RVJXeHZaRWhTZDJONmIzWk1NbVJ3WkVkb01RcFphVFZxWWpJd2RtSklSbXBPYWtrd1RESk9hR05wTVhsa1Z6VXdZVmN4YkV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlRtcFZlazU2U1hsT2FsVjVDazVET1doa1NGSnNZbGhDTUdONU9IaE5RbGxIUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRk9FZERhWE5IUVZGUlFtYzNPSGNLUVZKblJWRlJkeTlqYlZaM1lucHdjMk5YVFRKTmFsSkJUbXByZVUxNlVURk9hbEYyV1RKR2VVeFlTakZpYmxKd1lsZFdRVTFVVFRKTlZFVTFUV3BqZUFwT1JIQjVXbGRaTm1OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVbEhTa0puYjNKQ1owVkZRV1JhTlVGblVVTkNTSE5GWlZGQ00wRklWVUV6VkRCM0NtRnpZa2hGVkVwcVIxSTBZMjFYWXpOQmNVcExXSEpxWlZCTE15OW9OSEI1WjBNNGNEZHZORUZCUVVkbk4wSlNZVlpSUVVGQ1FVMUJVbXBDUlVGcFFVZ0tSbEp4VDIwelVsazRUV0o2UlZoUFMwOHZRalJOU1c5UFIxWnBTazVNY1c5VWFFMHJVRVJSZDNoblNXZEljekpMS3paS2VsSnlUMWg2T0d3eWEzSkpWZ3BYZHpCS1JrdFRjRXhYTkVKVWJEaHZjSGhyYlRKU1NYZERaMWxKUzI5YVNYcHFNRVZCZDAxRVduZEJkMXBCU1hkSldYb3JLM0ZMTWk5c1pISjRUbXh1Q25wdlUyRmxjVGw2VVdvck9FMW9kbkZPV1hWWGJWVjRNVkFyTjFWRmMycE5jVGgyY2psWlprZzRZMDlXTm5SM1pFRnFRVUl5V0V4bFpGbEZObFJYZG1ZS2JFSTRXazF4TlZWb2RFUXdSMDFuWlhKTFJFaGliR1I2ZDB4RmNIZzJZbk0zUVVKVGJFZFhiMVJ5YWpkQmJWSmliek5WUFFvdExTMHRMVVZPUkNCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2c9PSJ9fX19","integratedTime":1790667152,"logIndex":2995741508,"logID":"c0d23d6ad406973f9559f3ba2d1ca01f84147d8ffc5b8445c224f98b9591801d"}}}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|