@acosmi/sdk-ts 2.0.1 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -0
- package/README.md +296 -52
- package/dist/browser/index.mjs +462 -8
- package/dist/browser/index.mjs.map +1 -1
- package/dist/index.mjs +462 -8
- package/dist/index.mjs.map +1 -1
- package/dist/node/adapters/anthropic.cjs.map +1 -1
- package/dist/node/adapters/anthropic.d.cts +1 -1
- package/dist/node/adapters/anthropic.d.ts +1 -1
- package/dist/node/adapters/anthropic.mjs.map +1 -1
- package/dist/node/adapters/openai.cjs.map +1 -1
- package/dist/node/adapters/openai.d.cts +2 -2
- package/dist/node/adapters/openai.d.ts +2 -2
- package/dist/node/adapters/openai.mjs.map +1 -1
- package/dist/node/{index-C9X5Yuyk.d.cts → index-CI7FM3xe.d.cts} +43 -1
- package/dist/node/{index-C9X5Yuyk.d.ts → index-CI7FM3xe.d.ts} +43 -1
- package/dist/node/index.cjs +480 -7
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +474 -8
- package/dist/node/index.d.ts +474 -8
- package/dist/node/index.mjs +462 -8
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/{openai-BqKAhbSc.d.ts → openai-oeY7dGNW.d.ts} +1 -1
- package/dist/node/{openai-C_UKadSX.d.cts → openai-xKHChcmG.d.cts} +1 -1
- package/docs//345/274/200/345/217/221/344/270/216/345/217/221/345/270/203/346/211/213/345/206/214.md +115 -20
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as ProviderAdapter,
|
|
1
|
+
import { P as ProviderAdapter, k as ProviderFormat, j as ModelCapabilities, e as ChatRequest, f as ChatResponse, n as StreamEvent } from './index-CI7FM3xe.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Anthropic 内容块
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as ProviderAdapter,
|
|
1
|
+
import { P as ProviderAdapter, k as ProviderFormat, j as ModelCapabilities, e as ChatRequest, f as ChatResponse, n as StreamEvent } from './index-CI7FM3xe.cjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Anthropic 内容块
|
package/docs//345/274/200/345/217/221/344/270/216/345/217/221/345/270/203/346/211/213/345/206/214.md
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
| 项目 | 值 |
|
|
11
11
|
| -------- | -- |
|
|
12
12
|
| 实现地位 | **主实现 / 事实标准**;Go SDK 暂停维护,后续从 TS 反向翻译 |
|
|
13
|
-
| 当前版本 | 1.
|
|
14
|
-
| 版本策略 | TS 独立演进;wire-format / API 不兼容变更升 major |
|
|
13
|
+
| 当前版本 | **2.0.1**(packaging fix — `package.json.files` 数组补齐两个 docs;上游 v2.0.0 为 Phase 3 复核 + 全量根治 BREAKING,含商品化 P1-P7 namespace 全量 + 律师 / 企业 OWNER 自查端点 + PII 真落盘加密链 + admin 写端点 HTTP 错误码契约) |
|
|
14
|
+
| 版本策略 | TS 独立演进;wire-format / API 不兼容变更升 major(v2.0.0 已发,见 §10 / §18) |
|
|
15
15
|
| 主消费者 | `crabcode` (Anthropic 格式)、`crabdesign` / `crabclaw` 等下游产品 |
|
|
16
16
|
| 长期保留 | `OpenAIAdapter` (P0 红线,`crabclaw` 暂不用 TS 但保留双格式等地位) |
|
|
17
17
|
| LICENSE | MIT — Copyright (c) 2026 Acosmi |
|
|
@@ -32,7 +32,7 @@ SDK 独立仓 (public) npm 公开包
|
|
|
32
32
|
|
|
33
33
|
## 3. 开发环境
|
|
34
34
|
|
|
35
|
-
- Node.js **≥18**(package.json `engines.node` 公开承诺,不动);推荐本地 24 Active LTS;CI 用 24(含 JS-actions runtime, `FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true
|
|
35
|
+
- Node.js **≥18**(package.json `engines.node` 公开承诺,不动);推荐本地 24 Active LTS;CI 用 24(含 JS-actions runtime, `FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true`,**CI 端 release workflow 配置详见 §9.1.D**)
|
|
36
36
|
- npm ≥8
|
|
37
37
|
- 推荐 IDE:VSCode + ESLint + Prettier 扩展
|
|
38
38
|
|
|
@@ -71,13 +71,15 @@ acosmi-sdk-ts/
|
|
|
71
71
|
│ │ ├── adapters/ # AnthropicAdapter + OpenAIAdapter (P0 双格式红线)
|
|
72
72
|
│ │ └── model-helpers.ts stream-meta.ts betas.ts
|
|
73
73
|
│ ├── billing/ # 计费域(entitlements / packages / wallet)
|
|
74
|
-
│ ├── casehall/ # 法律案件咨询(v1.8.0
|
|
74
|
+
│ ├── casehall/ # 法律案件咨询(v1.8.0;v2.0.0 +getMyLawyerCredentialStatus 律师自查)
|
|
75
75
|
│ ├── certification/ # 预留 — 实名 / 人脸 / 活体 / 企业认证 / CA
|
|
76
76
|
│ ├── compliance/ # 合规域(重点扩张:evidence / timestamp / signing / ...)
|
|
77
|
-
│ ├── enterprise/ # 企业席位(v1.8.1
|
|
78
|
-
│ ├── finance/ # 财务域(v1.9.0)— 发票 / 退款 / 对公转账(决策 14/15 + R12)
|
|
77
|
+
│ ├── enterprise/ # 企业席位(v1.8.1;v2.0.0 +getMyEnterpriseKycStatus 企业 OWNER 自查)
|
|
78
|
+
│ ├── finance/ # 财务域(v1.9.0)— 发票 / 退款 / 对公转账(决策 14/15 + R12;v2.0.0 PII Javadoc 升级含 keyVersion v1/v2)
|
|
79
79
|
│ ├── notifications/ # 通知 / 推送 / WebSocket
|
|
80
80
|
│ ├── agent-runs/ # SDK-facing Agent Run Gateway(client + 公开协议类型)
|
|
81
|
+
│ │ └── remote-control.ts # v2.1 远控类型 + parseRemoteControlEvent / 11 事件 union
|
|
82
|
+
│ ├── chatbridge/ # v2.1 第三方聊天平台桥接类型骨架(types-only,无 client)
|
|
81
83
|
│ ├── pricing/ # 公开业务参数(v1.7.0)+ csign 合规 SKU 报价(v1.7.0)
|
|
82
84
|
│ ├── products/ # 商品中心(v1.7.0)— productFamily / audience / billingMode 索引
|
|
83
85
|
│ ├── sanitize/ # 历史消息清理子包
|
|
@@ -85,7 +87,8 @@ acosmi-sdk-ts/
|
|
|
85
87
|
│ ├── subscription/ # 订阅档位(v1.7.0)— SubscriptionPlan / UserSubscription
|
|
86
88
|
│ ├── support/ # bug-report 等
|
|
87
89
|
│ └── apiClients/ tenant/ iam/ audit/ operations/ mcp/ gateway/
|
|
88
|
-
│ #
|
|
90
|
+
│ # 8 占位命名空间,当前 `export {}` 不真实导出(含本行 7 个 + certification);
|
|
91
|
+
│ # 对应后端端点未就绪,落地准则见 §7 v1.5.0「跨域共享 DTO 契约」段
|
|
89
92
|
├── test/ # vitest 单元测试
|
|
90
93
|
├── examples/ # npm 包随附示例
|
|
91
94
|
│ ├── core-chat.ts
|
|
@@ -216,6 +219,8 @@ git commit -m "fix: ..."
|
|
|
216
219
|
- `test/compliance-scopes.test.ts` — **15 个** compliance scope 常量与 `complianceScopes()`(v1.3.0 首发 12 个 → v1.3.2 +`compliance:reports:write` → v1.5.0 S5 +`compliance:contract_template:{read,write}` 合计 15;含 `compliance:reports:publish` 等 step-up gated 写 scope)
|
|
217
220
|
- `test/shared.test.ts` — v1.5 跨域共享 DTO:`PageResult` 别名等价 / retryAdvice reason 映射 / 叠加投影只读性 / `classifyComplianceError` 零回归红线 17 case
|
|
218
221
|
|
|
222
|
+
> **v2.0.0 新方法测试位** — Phase 3 复核新增 `casehall.getMyLawyerCredentialStatus()` 与 `enterprise.getMyEnterpriseKycStatus()` 两个自查端点;wire-format 走既有 `doJSON` + `APIResponse` 路径,覆盖在 typecheck + smoke pack 层(无新业务红线,**不进 P0 必跑列表**)。若将来这两个端点的鉴权 / 字段策略发生变化,须在此列表追加显式测试。
|
|
223
|
+
|
|
219
224
|
### Agent Runs 公开 API 范围
|
|
220
225
|
|
|
221
226
|
从 v1.1.0 起,SDK 不再只是模型网关客户端,还包含下游产品可用的云端智能体任务协议:
|
|
@@ -230,9 +235,20 @@ git commit -m "fix: ..."
|
|
|
230
235
|
- `client.agentRuns.submitLocalToolResult(runId, result, signal?)`
|
|
231
236
|
- `client.agentRuns.runWithLocalTools(req, handlers, opts?, signal?)`
|
|
232
237
|
|
|
238
|
+
**远程控制(v2.1,CrabCode remote-control)** — 同属 `agentRuns` 命名空间,但事件协议独立(契约 §4 的 11 事件,不复用 `stream` 旧 union):
|
|
239
|
+
|
|
240
|
+
- `client.agentRuns.createRemoteRun(req, signal?)` — `req.runtime` 固定 `'crabcode_remote'`,`runner` + `adapter` 必填。
|
|
241
|
+
- `client.agentRuns.streamRemoteControl(runId, signal?)` — **无 options 参数**(`error` 恒非终结、`done`/`settle` 终结、从不抛异常)。
|
|
242
|
+
- helper:`parseRemoteControlEvent(raw)`(wire→强类型,未知 type 返回 null)、`isTerminalRemoteEvent(ev)`。
|
|
243
|
+
- `chatbridge`(v2.1,Phase 7 types-only):仅导出类型 + 守卫(`isPlatform` / `isRegion` / `isChannelInboundEvent` / `asCredentialRef`),**无 `client.chatBridge.*` 方法**;平台 webhook/凭证/桥接 handler 是 Phase 7B 后端工作,平台 SDK 依赖留在独立 adapter 包,禁进主包。
|
|
244
|
+
|
|
233
245
|
红线:
|
|
234
246
|
- 下游产品禁止直连 Nexus 内部 `/api/v4/chat/completions` 或 `/api/v4/managed-models/:id/...` 来实现智能体循环。
|
|
235
247
|
- Agent Runs wire-format 使用 snake_case;SDK public API 使用 camelCase。
|
|
248
|
+
- **远控 wire 约定按平面分(契约 §12)**:remote-control 平面 = snake_case + 时长整数毫秒(`approval_timeout_ms`,**禁** Go `time.Duration` 上 wire——会被当纳秒);chatbridge 资源视图平面 = camelCase。两平面不可混用。
|
|
249
|
+
- **远控事件唯一序列化出口**:后端 `RemoteSessionEvent.ToWire()` 出扁平 snake_case 帧(`type`+`seq`+字段同级);改动远控事件字段/单位/形状,必须同步更新跨语言金标 fixtures(后端 `remotecontrol/testdata/wire_golden.json` ⇄ SDK `test/remote-control-wire-golden.test.ts`),任一端漂移即红——这是 P1-1 同类分裂的护栏。
|
|
250
|
+
- **远控专用 scope**:`remote_control`(+ 3 子 scope)绝不复用 `models:chat`/`ai`,且 **不进 `allScopes()`**;`ai` 展开列表禁加入任何 `remote_control` 子项(隐式获权后门)。
|
|
251
|
+
- **secret 边界(契约 §16)**:chatbridge 平台 secret 只入上游 vault;SDK 公共面只见 `CredentialRef` + fingerprint + 脱敏 metadata,`ChatCredentialPublic` 编译期无密文字段。
|
|
236
252
|
- Agent Runs 服务端状态必须按 `tenantId + userId` 隔离并持久化;run/SSE event/artifact/local-tool-result 不能只放进进程内存。
|
|
237
253
|
- Agent Runs 执行必须接入统一 entitlement hold/settle/release 链路;settle 失败必须进入既有 pending settlement 补偿机制。
|
|
238
254
|
- Agent Runs 结算只能使用 provider/ADK 透传的 `exact: true` usage;不得用字符数、输入长度或其他估算 token 扣费。provider usage 缺失时必须 release hold,并向 stream 返回稳定的 `usage_missing_released` settlement 状态。
|
|
@@ -336,7 +352,7 @@ git commit -m "fix: ..."
|
|
|
336
352
|
共享 DTO 文件,为后续平台控制面(`tenant` / `iam` / `operations` / `gateway`
|
|
337
353
|
等占位命名空间)与 `compliance` 分页 / gate 能力预沉淀【共享原语】。依据:能力
|
|
338
354
|
缺口总账 `docs/audit/saas-sdk-backend-capability-gap-register-2026-05-22` §9.4 /
|
|
339
|
-
§9.5(Phase 0.3 / 0.5
|
|
355
|
+
§9.5(Phase 0.3 / 0.5)。**注:该总账归档在主仓 `docs/audit/`,不进公开 SDK 仓。**
|
|
340
356
|
|
|
341
357
|
**落位规则**:
|
|
342
358
|
|
|
@@ -416,9 +432,16 @@ v1.5.0 同时把 compliance gateway S1-S6(roadmap 原 v1.6.0-v1.11.0)全量
|
|
|
416
432
|
- `dist/browser/` — Browser ESM + `.d.ts`
|
|
417
433
|
- `dist/` — Deno/Bun ESM + `.d.ts`
|
|
418
434
|
- 大小:~120KB(压缩前)
|
|
419
|
-
- `package.json.files
|
|
420
|
-
`
|
|
421
|
-
- `
|
|
435
|
+
- `package.json.files`(v2.0.1 起 8 项;任何调整必须同步本节,违反即触发 §9.3 公开仓清洁度检查失败):
|
|
436
|
+
- `dist`
|
|
437
|
+
- `README.md`
|
|
438
|
+
- `CHANGELOG.md`
|
|
439
|
+
- `LICENSE`
|
|
440
|
+
- `docs/compliance.md`(v1.3.0 起 — 合规域 API 指南)
|
|
441
|
+
- `docs/pii-role-matrix.md`(v2.0.0 起 — 4 角色 × 3 PII 级矩阵)
|
|
442
|
+
- `docs/开发与发布手册.md`(v2.0.1 起 — 本文件随包发布给下游集成方)
|
|
443
|
+
- `examples/`
|
|
444
|
+
- `prepublishOnly` 钩子:`typecheck && lint && test && build && test:pack && docs`(npm publish 前自动跑;含 TypeDoc 文档生成)
|
|
422
445
|
|
|
423
446
|
## 9. 发布流程
|
|
424
447
|
|
|
@@ -552,9 +575,16 @@ git push origin vX.Y.Z
|
|
|
552
575
|
**自 2026-05-22 起版本策略以 TS 为准**:TS SDK 是主实现,独立演进;Go SDK `acosmi-sdk-go`
|
|
553
576
|
暂停维护,原"Go + TS 主版本号联动"约束已挂起,TS 不再等 Go 对齐版本号。
|
|
554
577
|
|
|
555
|
-
- **minor**(
|
|
556
|
-
- **patch**(
|
|
557
|
-
- **major**(x.0.0):wire-format 不兼容变更、API 移除、TokenStore
|
|
578
|
+
- **minor**(x.y.0):新业务方法 / 新域 / 向后兼容的协议扩展
|
|
579
|
+
- **patch**(x.y.z):bug fix、文档、内部 refactor、packaging fix
|
|
580
|
+
- **major**(x.0.0):wire-format 不兼容变更、API 移除、TokenStore 接口变化、后端契约 BREAKING
|
|
581
|
+
|
|
582
|
+
**实例 — v2.0.0(2026-05-25)**:商品化 P1-P7 Phase 3 复核后 SDK 首次 major bump。SDK 公开类型 / 方法签名零移除、零改名,但**网关后端契约 BREAKING**:
|
|
583
|
+
1. `SensitiveSerializer` 取消 `ROLE_ADMIN` → `platform_admin` 别名 fail-OPEN,统一收敛为 4 角色严格白名单(`platform_admin` / `s2s` / `lawyer` / `consumer`),违反即返回脱敏值。
|
|
584
|
+
2. admin 写端点错误码从 `200 + {ok:false, code}` 改为 HTTP 状态码(`403` 鉴权不足 / `404` 资源不存在 / `501` `NOT_CONFIGURED_CODE`)。
|
|
585
|
+
3. PII 字段(如 `Invoice.taxNumber` / 律师执照号)落盘从"应用层脱敏"升级为"AES-GCM 真加密 + AAD field binding + `keyVersion` v1/v2 协议",运行时 transparent,但消费方读取行为受 §1 角色严格化影响。
|
|
586
|
+
|
|
587
|
+
**实例 — v2.0.1(2026-05-25)**:纯 packaging fix。`package.json.files` 数组补 `docs/pii-role-matrix.md` + `docs/开发与发布手册.md`,让 v2.0.0 引入的两个 docs 随 npm tarball 下发。无源码改动,从 v2.0.0 升级无需 review。教训:**任何 v.major.0 BREAKING 发版同时必须自查 `files` 数组**——见 §18 v2.0.0 复盘。
|
|
558
588
|
|
|
559
589
|
> 历史背景:v1.0.0 时曾约定 Go + TS 主版本号同步、patch 各自独立。该联动机制因 Go SDK
|
|
560
590
|
> 暂停维护已挂起。将来 Go SDK 从 TS 反向翻译重启时(见 §11、计划 §3),版本对齐策略需
|
|
@@ -649,22 +679,32 @@ const client = new Client({ serverURL: process.env.ACOSMI_SERVER_URL! });
|
|
|
649
679
|
|
|
650
680
|
四绿 PASS 后再走 §9.2。审计报告归档主仓 `docs/audit/acosmi-sdk-ts-发布前严格复核审计-YYYY-MM-DD.md`,**不进公开仓**。
|
|
651
681
|
|
|
682
|
+
**已审版本档案(最近)**:
|
|
683
|
+
|
|
684
|
+
| 版本 | 5-phase audit 完成日期 | 归档(主仓) |
|
|
685
|
+
|------|---------------------|------------|
|
|
686
|
+
| v2.0.0 / v2.0.1 | 2026-05-25 | 主仓 `memory/commercialization-p1p7-phase3-deep-review-handoff.md`(Phase 3 复核闭环:主仓 9 commit + SDK 9 commit + npm publish + CN DB V42-V67 24 迁移)|
|
|
687
|
+
| v1.5.1 | 2026-05-23 | 主仓 `docs/audit/acosmi-sdk-ts-发布前严格复核审计-2026-05-23.md`(docs / examples / 源码注释全量复核 — 无 API 变化)|
|
|
688
|
+
| v1.0.1 | 2026-05-01 | 主仓 `docs/audit/sdk-ts-1.0.0-fix-plan-2026-05-01.md`(v1.0.0 双层 broken packaging 修复 + 烟测脚本引入,详见 §17)|
|
|
689
|
+
|
|
652
690
|
## 15. 关键文档与链接
|
|
653
691
|
|
|
654
692
|
- 用户文档:[README.md](../README.md)(公开仓 + 主仓同步)
|
|
655
|
-
-
|
|
656
|
-
-
|
|
657
|
-
-
|
|
693
|
+
- PII 角色矩阵:[docs/pii-role-matrix.md](./pii-role-matrix.md)(v2.0.0 起,4 角色 × 3 PII 级访问授权)
|
|
694
|
+
- Compliance API 指南:[docs/compliance.md](./compliance.md)
|
|
695
|
+
- 端口完成档:主仓 `docs/audit/TS-SDK-端口完成-2026-05-01.md`(**主仓非公开**)
|
|
696
|
+
- 端口初稿计划:主仓 `docs/audit/acosmi-sdk-ts-port-初稿计划-2026-05-01.md`(**主仓非公开**)
|
|
697
|
+
- 严格审计报告:主仓 `docs/audit/acosmi-sdk-ts-发布前严格复核审计-2026-05-01.md`(**主仓非公开**;新近审计档案见 §14)
|
|
658
698
|
- npm 包:https://www.npmjs.com/package/@acosmi/sdk-ts
|
|
659
699
|
- npm 旧包名(待 deprecate):https://www.npmjs.com/package/acosmi-sdk-ts — 1.0.0 已发布占位;下次新版发布时单独窗口执行 `npm deprecate acosmi-sdk-ts@1.0.0 "Renamed to @acosmi/sdk-ts"`
|
|
660
700
|
- 公开仓:https://github.com/acosmi/sdk-ts
|
|
661
|
-
- Go SDK 端口源:https://github.com/acosmi/acosmi-sdk-go
|
|
701
|
+
- Go SDK 端口源:https://github.com/acosmi/acosmi-sdk-go(**暂停维护**,自 2026-05-22 起 TS 为主实现,详见 §1 / §11;将来 Go SDK 重启时从 TS 反向翻译)
|
|
662
702
|
|
|
663
703
|
## 16. 维护者
|
|
664
704
|
|
|
665
|
-
- 源码改动:SDK 独立仓维护者
|
|
705
|
+
- 源码改动:SDK 独立仓维护者 — `acosmi-fushihua <fushihua@acosmi.com>`(git config 见 §9.1.B)
|
|
666
706
|
- 公开仓:通过 §9.2 流程提交与发布,不接受无维护者确认的外部发布 PR
|
|
667
|
-
- npm 包:GitHub Actions 自动发布(push tag v*
|
|
707
|
+
- npm 包:GitHub Actions 自动发布(push tag v* 触发;workflow 见 §9.1.D)
|
|
668
708
|
- 安全 Issue:通过 GitHub Security Advisory 私下沟通
|
|
669
709
|
|
|
670
710
|
## 17. v1.0.0 翻车教训 + 烟测加固(2026-05-01)
|
|
@@ -734,3 +774,58 @@ const client = new Client({ serverURL: process.env.ACOSMI_SERVER_URL! });
|
|
|
734
774
|
|
|
735
775
|
**完整执行档**:主仓 `docs/audit/sdk-ts-1.0.0-fix-plan-2026-05-01.md`
|
|
736
776
|
**CHANGELOG**:`./CHANGELOG.md`
|
|
777
|
+
|
|
778
|
+
## 18. v2.0.0 BREAKING 复盘(2026-05-25)
|
|
779
|
+
|
|
780
|
+
### 时间线
|
|
781
|
+
|
|
782
|
+
- 2026-05-25 — 主仓商品化 P1-P7 Phase 3 复核启动;用户钉死「不要遗漏和延迟」
|
|
783
|
+
- 同日 — 5-domain 并行 audit 识别 20 P0 问题(RBAC 表达式 / PII 真落盘加密链 / K7 K8 K9 集成 / admin 写端点错误码 / 跨域 sidecar)
|
|
784
|
+
- 同日 — 6-agent 并行实施闭环全部 20 P0(主仓 9 commit 含 K10AdminController 19 端点改 `@ss.hasRole` / SensitiveSerializer 角色严格化 / MockKmsProvider RFC 3394 AES-Wrap / AesGcmFieldCryptor v2 payload 协议)
|
|
785
|
+
- 同日 — CN tk_dist DB schema 补齐 V42-V67 全 24 迁移(含 3 SQL bug 热修:V47/V52/V59 `deleted=FALSE` → `deleted=0` 与 V59 `||` 拼接)
|
|
786
|
+
- 同日 — SDK 仓 9 commit:v2.0.0 BREAKING bump(`getMyLawyerCredentialStatus` + `getMyEnterpriseKycStatus` 2 新方法 + `finance/types.ts` PII Javadoc + `pii-role-matrix.md`)
|
|
787
|
+
- 同日 — `npm publish @acosmi/sdk-ts@2.0.0` via release.yml CI 自动发布
|
|
788
|
+
- 同日 — 用户实测验证 npm tarball **遗漏 `docs/pii-role-matrix.md` 与 `docs/开发与发布手册.md`**(`package.json.files` 数组未补齐)
|
|
789
|
+
- 同日 — v2.0.1 packaging fix(commit `063b379` / tag `v2.0.1`),`files` 数组改 8 项,npm tarball 实拉确认 3 个 docs 全在
|
|
790
|
+
- 2026-05-25 后续窗口 — 本手册 + README 深度复核审计,识别 19 项漂移与遗漏(P0×7 + P1×9 + P2×3),一窗口全量修订闭环
|
|
791
|
+
|
|
792
|
+
### 翻车的根因
|
|
793
|
+
|
|
794
|
+
| 层 | 现象 | 根因 |
|
|
795
|
+
|---|------|------|
|
|
796
|
+
| Layer 1 — packaging | `npm install @acosmi/sdk-ts@2.0.0` 后下游找不到 `docs/pii-role-matrix.md` | v2.0.0 新建该文件,但 `package.json.files` 数组未同步追加 → tarball 不含 |
|
|
797
|
+
| Layer 2 — 流程 | 5-phase audit Phase C「脚手架审计」未抓到 | 上轮审计模板只关注 `release.yml` + `tsup.config.ts` + `.npmignore`,**未把"新建公开 docs 必须同步 `files` 数组"列为硬检查项** |
|
|
798
|
+
| Layer 3 — 文档 | 本手册 §8 `files` 清单本身就过时(v1.3.0 写到 6 项后未维护) | 文档作为「单一真相源」失效;BREAKING 发版时维护者读手册作准会反向回滚 v2.0.1 的 packaging fix |
|
|
799
|
+
|
|
800
|
+
### 修复点
|
|
801
|
+
|
|
802
|
+
- **Layer 1**:`package.json.files` 数组改 8 项,显式列出每个 docs;任何新建公开 docs 必须同 commit 追加.
|
|
803
|
+
- **Layer 2**:§14 Phase C 检查项扩张「`package.json.files` 数组 vs `docs/*.md` 与 `examples/*.ts` 实际文件清单逐项核对」(详见下方红线段).
|
|
804
|
+
- **Layer 3**:本手册 §8 改为"任何调整必须同步本节,违反即触发 §9.3 公开仓清洁度检查失败" + §10 版本号策略增加 v2.0.0 / v2.0.1 实例段,文档自身闭环.
|
|
805
|
+
|
|
806
|
+
### 未来发版前必读
|
|
807
|
+
|
|
808
|
+
1. **BREAKING 发版(major bump)**专用复盘检查表:
|
|
809
|
+
- [ ] `package.json.files` 数组与 `docs/*.md` 实际清单逐项核对
|
|
810
|
+
- [ ] `package.json.files` 数组与 `examples/*.ts` 实际清单逐项核对
|
|
811
|
+
- [ ] `npm pack --dry-run` 输出 vs 期望文件列表比对
|
|
812
|
+
- [ ] 本手册 §1 当前版本、§4 目录结构、§8 `files` 清单、§10 版本号策略、§14 已审版本档案、§18 复盘节同步更新
|
|
813
|
+
- [ ] README §状态、§"v2.0.0 升级指引"对应节、§"API 总览"、§"更新历史"表同步更新
|
|
814
|
+
- [ ] `docs/pii-role-matrix.md` 等 BREAKING 引入的新公开 docs 必须随 npm tarball 下发
|
|
815
|
+
- [ ] 升级指引段必须给出受影响 callsite 清单与"零改动 / 必须 review"二分判定
|
|
816
|
+
2. **新建公开 docs 时**:同 commit 必须改 3 处 — 新文件本身 + `package.json.files` 追加 + 本手册 §8 与 §15 链接段同步.
|
|
817
|
+
3. **手动 deprecate broken BREAKING 版本**:`npm deprecate @acosmi/sdk-ts@<version> '<reason>'`(无法撤回但可加警告;v2.0.0 未走该步因 v2.0.1 在同日内发布修复,consumer 视角 `npm i @acosmi/sdk-ts` 自动跳到 2.0.1).
|
|
818
|
+
|
|
819
|
+
### npm registry 实拉验证(v2.0.1)
|
|
820
|
+
|
|
821
|
+
- 包: `@acosmi/sdk-ts@2.0.1`(latest tag)
|
|
822
|
+
- tarball 含: `dist/` + `README.md` + `CHANGELOG.md` + `LICENSE` + `docs/compliance.md` + `docs/pii-role-matrix.md` + `docs/开发与发布手册.md` + `examples/`
|
|
823
|
+
- 主仓 HEAD(Phase 3 复核闭环): `e510f68a`
|
|
824
|
+
- SDK 仓 HEAD: `063b379` / tag `v2.0.1`
|
|
825
|
+
|
|
826
|
+
### 关联文档
|
|
827
|
+
|
|
828
|
+
- 主仓 Phase 3 复核 handoff:`memory/commercialization-p1p7-phase3-deep-review-handoff.md`
|
|
829
|
+
- 本手册深度复核审计:本次会话即为复盘成果,无独立 audit 报告(成果直接落入 README + 本手册)
|
|
830
|
+
- v2.0.0 升级指引:[README.md §v2.0.0 升级指引](../README.md#v200-升级指引)
|
|
831
|
+
- PII 角色矩阵:[docs/pii-role-matrix.md](./pii-role-matrix.md)
|
package/package.json
CHANGED