@acosmi/sdk-ts 1.4.2 → 1.5.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 +132 -0
- package/README.md +91 -2
- package/dist/browser/index.mjs +521 -2
- package/dist/browser/index.mjs.map +1 -1
- package/dist/index.mjs +521 -2
- package/dist/index.mjs.map +1 -1
- package/dist/node/index.cjs +527 -1
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +1079 -31
- package/dist/node/index.d.ts +1079 -31
- package/dist/node/index.mjs +521 -2
- package/dist/node/index.mjs.map +1 -1
- package/docs/compliance.md +452 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,138 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
+
## [1.5.0] — 2026-05-23
|
|
13
|
+
|
|
14
|
+
> 众律宝 SaaS 工作台 SDK / 后端能力缺口总账(`docs/audit/saas-sdk-backend-capability-gap-register-2026-05-22`)
|
|
15
|
+
> **compliance gateway S1–S6 全量 + Phase 0.3/0.5 共享 DTO**:在 `client.compliance.*`
|
|
16
|
+
> 上新增 22 个方法、2 个新 scope,沉淀 `src/shared/` 跨域共享原语,对接已合并的
|
|
17
|
+
> 后端 **G1–G6** 契约。**纯增量、向后兼容**——不改任何既有导出符号的签名或行为;
|
|
18
|
+
> `tenant` / `iam` / `apiClients` / `operations` / `audit` / `gateway` / `mcp` /
|
|
19
|
+
> `certification` 8 个占位命名空间继续维持 `export {}`;`typecheck` / `lint` /
|
|
20
|
+
> `vitest`(168) / `build` / `test:pack` / `docs` 全绿。
|
|
21
|
+
>
|
|
22
|
+
> 历史注记:本仓库内部 1.5.0/1.6.0/1.7.0/1.8.0/1.9.0/1.10.0/1.11.0 七个内部版本
|
|
23
|
+
> 已合并为单一 1.5.0 发布(1.11.0 已 npm unpublish,留作历史尘埃)。
|
|
24
|
+
|
|
25
|
+
### Added — Phase 0.3 / 0.5:跨域共享 DTO(原 1.5.0 / 缺口总账 §9.4 / §9.5)
|
|
26
|
+
|
|
27
|
+
- **`src/shared/` 跨域共享 DTO**——为平台控制面 / `compliance.list*` 等命名空间提供
|
|
28
|
+
统一原语,按关注点分文件:
|
|
29
|
+
- `shared/pagination.ts` — `PageRequest`、`SortDirection`,以及 **`PageResult<T>`**
|
|
30
|
+
(刻意做成既有 `YudaoPageResult<T>` 的别名,不引入第二套 `{list,total}` 结构)。
|
|
31
|
+
- `shared/operation.ts` — `OperationId` / `OperationSource` / `OperationStatus` /
|
|
32
|
+
`VerifyStatus` / `IdempotencyKey` 类型与 `IdempotencyKeyHeader` 常量
|
|
33
|
+
(`'Idempotency-Key'`,写接口幂等键 header 单一真相源);`ProviderRequestStatus`
|
|
34
|
+
**复用**既有 `ComplianceProviderRequestStatus`,不另造同名近似类型。
|
|
35
|
+
- `shared/retry-advice.ts` — `RetryAdvice` 统一失败补救模型 + `RetryAdviceReason`
|
|
36
|
+
(11 项)+ `retryReasonForComplianceKey()` / `retryReasonForOAuthError()`
|
|
37
|
+
映射函数 + `complianceErrorToRetryAdvice()` 叠加投影。**叠加层**——独立类型,
|
|
38
|
+
不修改也不替换 `core/retry.ts` `RetryPolicy` 与 `compliance/errors.ts`
|
|
39
|
+
`ComplianceErrorInfo`。
|
|
40
|
+
- `shared/principal.ts` — `PrincipalRef` / `TenantRef` / `ApiClientRef` 轻量引用。
|
|
41
|
+
- `shared/gate.ts` — `FeatureGateStatus` / `FeatureGateState` / `StepUpStatus` /
|
|
42
|
+
`GateQuota` / `BillingPreflightResult`(gate / capability / step-up / preflight
|
|
43
|
+
查询形态)。
|
|
44
|
+
- `test/shared.test.ts` — 17 个契约测试,覆盖别名等价 / 幂等键常量 / reason 映射 /
|
|
45
|
+
叠加投影只读性 / `classifyComplianceError` 零回归红线。
|
|
46
|
+
|
|
47
|
+
### Added — S1:6 个分页列表(原 1.6.0 / U-1 / 后端 G1)
|
|
48
|
+
|
|
49
|
+
- **`client.compliance.list*` 6 个分页列表读方法**——对接后端 G1 的 6 个 `GET .../page`
|
|
50
|
+
端点,均返回 yudao `PageResult<T>`:
|
|
51
|
+
- `listEvidenceAssets(req?, signal?)` — `GET /compliance/evidence/assets/page`,
|
|
52
|
+
过滤项 `assetType` / `status` / `createTimeStart` / `createTimeEnd`。
|
|
53
|
+
- `listTimestamps(req?, signal?)` — `GET /compliance/timestamps/page`,过滤项
|
|
54
|
+
`provider` / `verificationStatus` / `createTimeStart` / `createTimeEnd`。
|
|
55
|
+
- `listEvidencePackages(req?, signal?)` — `GET /compliance/evidence/packages/page`。
|
|
56
|
+
- `listReports(req?, signal?)` — `GET /compliance/reports/page`。
|
|
57
|
+
- `listSigningEnvelopes(req?, signal?)` — `GET /compliance/signing-envelopes/page`。
|
|
58
|
+
- `listSealApprovals(req?, signal?)` — `GET /compliance/seal-approvals/page`。
|
|
59
|
+
- **6 个 `*PageItem` + 6 个 `List*Request` 类型**——按子域归位;所有 `List*Request`
|
|
60
|
+
继承共享 `PageRequest`。`*PageItem` 是详情视图的 SDK-safe 子集 + `createTime`,
|
|
61
|
+
不含 provider raw / 证书 / storage / 合同原文。
|
|
62
|
+
|
|
63
|
+
### Added — S2:capabilities + operations 投影(原 1.7.0 / U-5/U-6 / 后端 G2)
|
|
64
|
+
|
|
65
|
+
- **`client.compliance.getCapabilities(signal?)`** — `GET /compliance/capabilities`,
|
|
66
|
+
返回 `ComplianceCapability[]`。后端 G2 为每个高风险 / 收费动作返回闸门视图:
|
|
67
|
+
`executable` / `state` / `requiredScopes` / `requiredStepUp` / `reason`。
|
|
68
|
+
调用方在高风险动作执行【前】查询做门控,拿不到能力时必须 fail-closed。
|
|
69
|
+
- **`client.compliance.getFeatureGate(action, signal?)`** — 便捷方法(每次调用一次
|
|
70
|
+
网络请求,多个动作请改用 `getCapabilities` 一次取回本地查表)。
|
|
71
|
+
- **`client.compliance.listOperations(req?, signal?)`** — `GET /compliance/operations/page`,
|
|
72
|
+
返回 `PageResult<OperationPageItem>`。
|
|
73
|
+
- **`client.compliance.getOperation(id, signal?)`** — `GET /compliance/operations/{id}`
|
|
74
|
+
(数值行主键,非 `operationId` 幂等键),返回 `OperationDetail`。
|
|
75
|
+
- **新增 `compliance/operation/` 子域类型**:`ComplianceCapability` / `OperationPageItem` /
|
|
76
|
+
`OperationDetail` / `ListOperationsRequest`。
|
|
77
|
+
|
|
78
|
+
### Added — S3:TSA readonly 视图(原 1.8.0 / U-7 / 后端 G3)
|
|
79
|
+
|
|
80
|
+
- **`client.compliance.listTsaProviders(signal?)`** — `GET /compliance/timestamps/providers`,
|
|
81
|
+
返回 `TsaProvider[]`,每个 provider:`name` / `environment` / `available`。
|
|
82
|
+
- **`client.compliance.getTsaStats(signal?)`** — `GET /compliance/timestamps/stats`,
|
|
83
|
+
返回 `TsaStats`:总数 + 按校验状态分桶计数。
|
|
84
|
+
- **新增 `compliance/timestamp/` 子域类型**:`TsaProvider` / `TsaStats`。
|
|
85
|
+
|
|
86
|
+
### Added — S4:envelope 收尾 + void(原 1.9.0 / U-10/U-12 子集 / 后端 G4)
|
|
87
|
+
|
|
88
|
+
- **`client.compliance.listEnvelopeContracts(envelopeId, signal?)`** — `GET
|
|
89
|
+
/compliance/signing-envelopes/{id}/contracts`,返回 `EnvelopeContractItem[]`。
|
|
90
|
+
- **`client.compliance.listEnvelopeProviderRequests(envelopeId, signal?)`** — `GET
|
|
91
|
+
/compliance/signing-envelopes/{id}/provider-requests`,返回 `OperationPageItem[]`
|
|
92
|
+
(**复用**操作投影类型)。
|
|
93
|
+
- **`client.compliance.voidEnvelope(envelopeId, req, options?)`** — `POST
|
|
94
|
+
/compliance/signing-envelopes/{id}/void`,**写方法**:`Idempotency-Key`、不重试、
|
|
95
|
+
`401` 不刷新重放。`VoidEnvelopeRequest = { reason: string }`。
|
|
96
|
+
- **新增 `compliance/signing/` 子域类型**:`EnvelopeContractItem` / `VoidEnvelopeRequest`。
|
|
97
|
+
|
|
98
|
+
### Added — S5:合同模板(原 1.10.0 / U-2 / 后端 G5)
|
|
99
|
+
|
|
100
|
+
- **9 个合同模板方法**:
|
|
101
|
+
- `createContractTemplate` (POST,DRAFT 初始)
|
|
102
|
+
- `updateContractTemplate` (POST,仅 DRAFT)
|
|
103
|
+
- `deleteContractTemplate` (POST,仅 DRAFT)
|
|
104
|
+
- `getContractTemplate` (GET)
|
|
105
|
+
- `listContractTemplates` (GET 分页)
|
|
106
|
+
- `uploadContractTemplatePdf` (POST `{ pdfBase64 }`)
|
|
107
|
+
- `publishContractTemplate` (POST,DRAFT → PUBLISHED,版本快照固化)
|
|
108
|
+
- `archiveContractTemplate` (POST,PUBLISHED → ARCHIVED)
|
|
109
|
+
- `listContractTemplateVersions` (GET,普通数组)
|
|
110
|
+
- **新增 `compliance/template/` 子域类型**:`ContractTemplateField` /
|
|
111
|
+
`ContractTemplateFieldType` / `ContractTemplateResp` / `ContractTemplatePageItem` /
|
|
112
|
+
`ContractTemplateStatus` / `ContractTemplateVersion` / `CreateContractTemplateRequest` /
|
|
113
|
+
`UpdateContractTemplateRequest` / `UploadContractTemplatePdfRequest` /
|
|
114
|
+
`ListContractTemplatesRequest`。
|
|
115
|
+
- **新增 2 个 scope 常量**:`ScopeComplianceContractTemplateRead`
|
|
116
|
+
(`compliance:contract_template:read`) / `ScopeComplianceContractTemplateWrite`
|
|
117
|
+
(`compliance:contract_template:write`)。`ComplianceScope` 联合与 `complianceScopes()`
|
|
118
|
+
总数 13 → 15。读方法要求 `:read`、写方法要求 `:write`;不要求 step-up。
|
|
119
|
+
|
|
120
|
+
### Added — S6:用印执行记录(原 1.11.0 / U-4 / 后端 G6)
|
|
121
|
+
|
|
122
|
+
- **`client.compliance.listSealUses(req?, signal?)`** — `GET /compliance/seal-uses/page`,
|
|
123
|
+
返回 `PageResult<SealUsePageItem>`,过滤支持 `sealId` / `envelopeId` /
|
|
124
|
+
`usageStatus` / `createTimeStart` / `createTimeEnd`。一次 seal use 描述
|
|
125
|
+
envelope / contract / seal / 审批联动后【真正调用 provider 落章】的那一笔记录,
|
|
126
|
+
与 envelope 领域状态正交。SDK-safe——不含 provider raw payload / 证书 / storage key。
|
|
127
|
+
- **新增 2 个 compliance 领域类型**(`src/compliance/seal-approval/types.ts`):
|
|
128
|
+
`SealUsePageItem` / `ListSealUsesRequest`。
|
|
129
|
+
- **Scope 复用**:复用既有 `ScopeComplianceContractSigningRead`
|
|
130
|
+
(`compliance:contract_signing:read`) ——后端 G6 端点声明同一 read scope,不新增 scope。
|
|
131
|
+
|
|
132
|
+
### Unchanged
|
|
133
|
+
|
|
134
|
+
- **印章授权 / 印章 CRUD(U-3 / U-11)**:仍为后端推迟项(CFCA 私有 jar / W3 闸门),
|
|
135
|
+
本版本不引入 SDK 方法。
|
|
136
|
+
- **envelope send / remind / authorize / download / token** 等动作:后端 G4 范围之外
|
|
137
|
+
暂缓,本版本不暴露对应 SDK 方法。
|
|
138
|
+
|
|
139
|
+
> Method Status:本次新增 22 个方法均为 `production-ready`(compliance gateway
|
|
140
|
+
> S1–S6 / G1–G6 契约、端点、DTO、SDK 测试、文档全部闭环)。无 `gated` 方法。
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
12
144
|
## [1.4.2] — 2026-05-22
|
|
13
145
|
|
|
14
146
|
> `src/` 目录按业务域重组(实施计划 `docs/audit/sdk-ts-directory-restructure-plan-2026-05-22`)。
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
## 状态
|
|
8
8
|
|
|
9
9
|
- 主实现 / 事实标准:本 TS SDK 现为 Acosmi SDK 的主力实现。Go SDK [acosmi-sdk-go](https://github.com/acosmi/acosmi-sdk-go) 已暂停维护,待 TS 稳定后再从 TS 反向翻译补齐
|
|
10
|
-
- 当前版本:**1.
|
|
10
|
+
- 当前版本:**1.5.0**(沉淀 `src/shared/` 跨域共享 DTO——分页 / operation / retryAdvice / principal / gate 原语;`1.4.2` `src/` 按业务域重组;`1.4.x` 浏览器 Web OAuth;`1.3.x` `client.compliance` 合规域客户端;详见 [CHANGELOG](./CHANGELOG.md))
|
|
11
11
|
- 测试:发布前需通过 typecheck/lint/vitest/build/packed-tarball smoke (`npm run test:pack`)
|
|
12
12
|
- API 参考文档:`npm run docs` 经 TypeDoc 生成到 `docs/api/`
|
|
13
13
|
- 包链接:[npm](https://www.npmjs.com/package/@acosmi/sdk-ts) · [GitHub Releases](https://github.com/acosmi/sdk-ts/releases)
|
|
@@ -192,9 +192,30 @@ const client = new Client({ serverURL: process.env.ACOSMI_SERVER_URL!, store: ne
|
|
|
192
192
|
| **Bug Report** | `submitBugReport`, `getBugReport` |
|
|
193
193
|
| **Web Search** | `newWebSearchTool` (factory) |
|
|
194
194
|
| **Compliance** | `compliance.createEvidenceAsset`, `compliance.issueTimestamp`, `compliance.waitForTimestampVerified`, `compliance.buildEvidencePackage`, `compliance.createReport`, `compliance.downloadReport`, `compliance.createSigningEnvelope`, `compliance.signEnvelope`, `compliance.getProviderRequest`, `compliance.waitForProviderRequestTerminal` |
|
|
195
|
+
| **Compliance — 分页列表** | `compliance.listEvidenceAssets`, `compliance.listTimestamps`, `compliance.listEvidencePackages`, `compliance.listReports`, `compliance.listSigningEnvelopes`, `compliance.listSealApprovals`, `compliance.listSealUses`(均返回 `PageResult<T>`) |
|
|
196
|
+
| **Compliance — 能力与操作投影** | `compliance.getCapabilities`, `compliance.getFeatureGate`, `compliance.listOperations`, `compliance.getOperation` |
|
|
197
|
+
| **Compliance — TSA 只读视图** | `compliance.listTsaProviders`, `compliance.getTsaStats` |
|
|
198
|
+
| **Compliance — envelope 收尾** | `compliance.listEnvelopeContracts`, `compliance.listEnvelopeProviderRequests`, `compliance.voidEnvelope`(`void` 为写、带 `Idempotency-Key`) |
|
|
199
|
+
| **Compliance — 合同模板** | `compliance.createContractTemplate`, `compliance.updateContractTemplate`, `compliance.deleteContractTemplate`, `compliance.getContractTemplate`, `compliance.listContractTemplates`, `compliance.uploadContractTemplatePdf`, `compliance.publishContractTemplate`, `compliance.archiveContractTemplate`, `compliance.listContractTemplateVersions`(写均带 `Idempotency-Key`) |
|
|
195
200
|
|
|
196
201
|
完整签名见 `dist/node/index.d.ts`,IDE 自带补全。
|
|
197
202
|
|
|
203
|
+
### 跨域共享 DTO(`shared`,v1.5.0)
|
|
204
|
+
|
|
205
|
+
`src/shared/` 收口跨域基础设施类型,从根入口直接导出,供各业务域统一引用:
|
|
206
|
+
|
|
207
|
+
| 文件 | 导出 | 说明 |
|
|
208
|
+
| --- | --- | --- |
|
|
209
|
+
| `pagination` | `PageRequest`、`PageResult<T>`、`SortDirection` | `PageResult<T>` 是 `YudaoPageResult<T>` 的别名,全 SDK 单一分页结果结构 |
|
|
210
|
+
| `operation` | `OperationId`、`OperationSource`、`OperationStatus`、`VerifyStatus`、`IdempotencyKey`、`IdempotencyKeyHeader`、`ProviderRequestStatus` | `operationId` 跨来源关联键;`IdempotencyKeyHeader` 写接口幂等键 header 单一真相源 |
|
|
211
|
+
| `retry-advice` | `RetryAdvice`、`RetryAdviceReason`、`retryReasonForComplianceKey()`、`retryReasonForOAuthError()`、`complianceErrorToRetryAdvice()` | 统一失败补救建议——**叠加**在 `RetryPolicy` / `ComplianceErrorInfo` 之上,不替换 |
|
|
212
|
+
| `principal` | `PrincipalRef`、`TenantRef`、`ApiClientRef` | 轻量身份 / 租户引用 |
|
|
213
|
+
| `gate` | `FeatureGateStatus`、`FeatureGateState`、`StepUpStatus`、`GateQuota`、`BillingPreflightResult` | gate / capability / step-up / preflight 查询形态 |
|
|
214
|
+
|
|
215
|
+
> 这些是为后续平台控制面(`tenant` / `iam` / `operations` / `gateway` 等)与
|
|
216
|
+
> `compliance` 分页 / gate 能力预沉淀的【共享原语】;消费这些类型的命名空间方法
|
|
217
|
+
> 须待对应后端端点就绪后才落地,当前 8 个占位命名空间尚未从根入口导出。
|
|
218
|
+
|
|
198
219
|
### 示例:Skill 商店搜索
|
|
199
220
|
|
|
200
221
|
```ts
|
|
@@ -417,12 +438,15 @@ PII / 合同原文 / storage bucket+key / subject snapshot / provider raw / TSA
|
|
|
417
438
|
client.compliance.createEvidenceAsset(req, options?)
|
|
418
439
|
client.compliance.getEvidenceAsset(id, signal?)
|
|
419
440
|
client.compliance.verifyEvidencePublic(req, signal?)
|
|
441
|
+
client.compliance.listEvidenceAssets(req?, signal?) // 分页 → PageResult
|
|
442
|
+
client.compliance.listEvidencePackages(req?, signal?) // 分页 → PageResult
|
|
420
443
|
|
|
421
444
|
client.compliance.issueTimestamp(req, options?)
|
|
422
445
|
client.compliance.issueTimestampForAsset(assetId, options?)
|
|
423
446
|
client.compliance.getTimestamp(id, signal?)
|
|
424
447
|
client.compliance.verifyTimestamp(req, options?)
|
|
425
448
|
client.compliance.waitForTimestampVerified(id, opts?)
|
|
449
|
+
client.compliance.listTimestamps(req?, signal?) // 分页 → PageResult
|
|
426
450
|
|
|
427
451
|
client.compliance.buildEvidencePackage(assetId, timestampTokenId?, options?)
|
|
428
452
|
|
|
@@ -430,12 +454,17 @@ client.compliance.createReport(req, options?) // 需 compliance:reports:write
|
|
|
430
454
|
client.compliance.getReport(id, signal?)
|
|
431
455
|
client.compliance.publishReport(id, options?) // step-up
|
|
432
456
|
client.compliance.downloadReport(id, signal?) // 离线复核 hash 视图
|
|
457
|
+
client.compliance.listReports(req?, signal?) // 分页 → PageResult
|
|
433
458
|
|
|
434
459
|
client.compliance.createSigningEnvelope(req, options?)
|
|
435
460
|
client.compliance.getSigningEnvelope(envelopeId, signal?)
|
|
436
461
|
client.compliance.signEnvelope(envelopeId, req, options?) // step-up + gate
|
|
437
462
|
client.compliance.createH5SigningUrl(envelopeId, req, options?) // step-up + gate
|
|
438
463
|
client.compliance.syncSigningEnvelopeStatus(envelopeId, options?)
|
|
464
|
+
client.compliance.listSigningEnvelopes(req?, signal?) // 分页 → PageResult
|
|
465
|
+
client.compliance.listEnvelopeContracts(envelopeId, signal?) // 合同列表(数组)
|
|
466
|
+
client.compliance.listEnvelopeProviderRequests(envelopeId, signal?) // provider 请求列表(数组)
|
|
467
|
+
client.compliance.voidEnvelope(envelopeId, req, options?) // 作废 envelope(写)
|
|
439
468
|
|
|
440
469
|
client.compliance.submitSealApproval(req, options?)
|
|
441
470
|
client.compliance.approveSealApproval(id, query, options?) // step-up
|
|
@@ -443,11 +472,67 @@ client.compliance.rejectSealApproval(id, query, options?)
|
|
|
443
472
|
client.compliance.cancelSealApproval(id, query, options?)
|
|
444
473
|
client.compliance.listPendingSealApprovals(signal?)
|
|
445
474
|
client.compliance.getSealApproval(id, signal?)
|
|
475
|
+
client.compliance.listSealApprovals(req?, signal?) // 分页 → PageResult
|
|
476
|
+
client.compliance.listSealUses(req?, signal?) // 用印执行分页 → PageResult
|
|
446
477
|
|
|
447
478
|
client.compliance.getProviderRequest(id, signal?)
|
|
448
479
|
client.compliance.waitForProviderRequestTerminal(id, opts?)
|
|
480
|
+
|
|
481
|
+
client.compliance.getCapabilities(signal?) // 能力闸门列表
|
|
482
|
+
client.compliance.getFeatureGate(action, signal?) // 单动作能力(便捷,一次网络请求)
|
|
483
|
+
client.compliance.listOperations(req?, signal?) // 操作投影分页 → PageResult
|
|
484
|
+
client.compliance.getOperation(id, signal?) // 操作投影详情
|
|
485
|
+
|
|
486
|
+
client.compliance.listTsaProviders(signal?) // TSA provider 只读列表
|
|
487
|
+
client.compliance.getTsaStats(signal?) // 时间章统计只读视图
|
|
488
|
+
|
|
489
|
+
client.compliance.createContractTemplate(req, options?) // 创建合同模板(DRAFT)
|
|
490
|
+
client.compliance.updateContractTemplate(id, req, options?) // 更新模板(仅 DRAFT)
|
|
491
|
+
client.compliance.deleteContractTemplate(id, options?) // 删除模板(仅 DRAFT)
|
|
492
|
+
client.compliance.getContractTemplate(id, signal?) // 模板详情
|
|
493
|
+
client.compliance.listContractTemplates(req?, signal?) // 模板分页 → PageResult
|
|
494
|
+
client.compliance.uploadContractTemplatePdf(id, req, options?) // 上传 PDF(base64)
|
|
495
|
+
client.compliance.publishContractTemplate(id, options?) // DRAFT → PUBLISHED
|
|
496
|
+
client.compliance.archiveContractTemplate(id, options?) // PUBLISHED → ARCHIVED
|
|
497
|
+
client.compliance.listContractTemplateVersions(id, signal?) // 版本快照列表(数组)
|
|
449
498
|
```
|
|
450
499
|
|
|
500
|
+
> 6 个 `list*` 分页方法(compliance gateway S1)均走 `GET .../page`,返回
|
|
501
|
+
> yudao `PageResult<T>`(`{ total, list }`)。请求参数继承共享 `PageRequest`
|
|
502
|
+
> (`pageNo` / `pageSize` / `sortBy` / `sortDirection`,全部可选)+ 各自的过滤项。
|
|
503
|
+
> `createTimeStart` / `createTimeEnd` 由调用方按 `yyyy-MM-dd HH:mm:ss` 字符串提供,
|
|
504
|
+
> SDK 原样透传、不做格式校验。
|
|
505
|
+
|
|
506
|
+
> compliance gateway S2 新增能力闸门查询(`getCapabilities` / `getFeatureGate`)
|
|
507
|
+
> 与操作投影读(`listOperations` / `getOperation`)。`getCapabilities` 为每个高
|
|
508
|
+
> 风险 / 收费动作返回 `executable` / `state` / `requiredScopes` / `requiredStepUp`
|
|
509
|
+
> ——拿不到能力时必须 fail-closed。均走 GET 读路径(`401` 单次刷新重放)。
|
|
510
|
+
|
|
511
|
+
> compliance gateway S4 新增 envelope 收尾方法:`listEnvelopeContracts` /
|
|
512
|
+
> `listEnvelopeProviderRequests` 走 GET 读路径返回普通数组(非 `PageResult`),
|
|
513
|
+
> `listEnvelopeProviderRequests` 复用操作投影类型 `OperationPageItem`;
|
|
514
|
+
> `voidEnvelope` 为写方法——走 compliance 写路径(`Idempotency-Key`、不重试、
|
|
515
|
+
> `401` 不重放),`reason` 随 JSON body 提交。envelope 的 send / remind /
|
|
516
|
+
> authorize / download / token 等动作在后端 S4 范围之外暂缓。
|
|
517
|
+
|
|
518
|
+
> compliance gateway S5 新增合同模板(contract template)9 个方法:DRAFT →
|
|
519
|
+
> PUBLISHED → ARCHIVED 全生命周期。读方法(`getContractTemplate` /
|
|
520
|
+
> `listContractTemplates` / `listContractTemplateVersions`)走 GET 读路径;写
|
|
521
|
+
> 方法(`createContractTemplate` / `updateContractTemplate` /
|
|
522
|
+
> `deleteContractTemplate` / `uploadContractTemplatePdf` /
|
|
523
|
+
> `publishContractTemplate` / `archiveContractTemplate`)走 compliance 写路径
|
|
524
|
+
> (`Idempotency-Key`、不重试、`401` 不重放)。新增 2 个 scope —
|
|
525
|
+
> `compliance:contract_template:read` / `compliance:contract_template:write` —
|
|
526
|
+
> 不要求 step-up。版本列表与列表项视图都不下发模板【字段叠加】,字段只在详情 /
|
|
527
|
+
> 版本快照里返回。
|
|
528
|
+
|
|
529
|
+
> compliance gateway S6 新增用印执行(seal use)分页只读方法:`listSealUses`。
|
|
530
|
+
> 走 `GET /compliance/seal-uses/page`,返回 yudao `PageResult<SealUsePageItem>`;
|
|
531
|
+
> 过滤支持 `sealId` / `envelopeId` / `usageStatus` / `createTimeStart` /
|
|
532
|
+
> `createTimeEnd`。复用既有 `compliance:contract_signing:read` scope,不引入新
|
|
533
|
+
> scope。印章授权 / 印章 CRUD(U-3 / U-11)仍为后端推迟项(CFCA 私有 jar /
|
|
534
|
+
> W3 闸门),本版本不引入 SDK 方法。
|
|
535
|
+
|
|
451
536
|
### 示例
|
|
452
537
|
|
|
453
538
|
`examples/` 下提供可直接运行的端到端示例,并随 npm 包一起发布:
|
|
@@ -494,7 +579,11 @@ npm run docs # 经 TypeDoc 生成 API 参考到 docs/api/
|
|
|
494
579
|
|
|
495
580
|
| 版本 | 状态 | 概要 |
|
|
496
581
|
| --- | --- | --- |
|
|
497
|
-
| 1.
|
|
582
|
+
| 1.5.0 | 当前稳定版 | 沉淀 `src/shared/` 跨域共享 DTO(`PageRequest`/`PageResult` 别名、`OperationId`/`OperationStatus`/`IdempotencyKeyHeader`、`RetryAdvice` 叠加层、`PrincipalRef`/`TenantRef`、`FeatureGateStatus`/`StepUpStatus`/`BillingPreflightResult`)。纯增量;8 个平台控制面占位命名空间仍待后端契约就绪后落地。 |
|
|
583
|
+
| 1.4.2 | 稳定版 | `src/` 从扁平 36 文件按业务域重组为 per-domain 目录;公共导出符号集合、`exports`、`dist/` 路径一字未变(纯内部重组)。新增 TypeDoc API 文档。 |
|
|
584
|
+
| 1.4.1 | 稳定版 | 新增 `Config.browserRefreshMode` / `refreshProxyURL`——浏览器 Web OAuth token 刷新策略(规避 issuer CORS 403)。 |
|
|
585
|
+
| 1.4.0 | 稳定版 | 新增浏览器 Web OAuth 原语 `discoverWebOAuthMetadata` / `registerWebOAuthClient`(csign `/login` Web OAuth 接入)。 |
|
|
586
|
+
| 1.3.2 | 稳定版 | `verifyEvidencePublic` 匿名公开验真链路收口(未登录不抛 `not authorized`);新增第 13 个 compliance scope `compliance:reports:write`(创建出证报告改用写 scope);`docs/compliance.md` 新增方法状态四档分级(production-ready / gated / draft contract / internal-only)。 |
|
|
498
587
|
| 1.3.1 | 稳定版 | 修订 npm 包短介绍与搜索关键词,明确模型网关、Agent Run Gateway 与 Compliance 统一客户端定位。 |
|
|
499
588
|
| 1.3.0 | 稳定版 | 新增 compliance SDK client、base URL、types/errors/status/scopes、docs/examples/tests,并明确 idempotency/no-retry/no-401-replay 与 provider material 安全边界。 |
|
|
500
589
|
| 1.2.0 | 稳定版 | 新增 `ManagedModel.inputModalities`、桌面视觉理解 sidecar capability 与 4 个 catalog helpers。 |
|