@harrylabsj/kiwi 0.7.9 → 0.7.11

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.
Files changed (100) hide show
  1. package/contracts/commerce-intent/1.0/schema.json +124 -0
  2. package/contracts/delegation-policy/1.0/schema.json +143 -0
  3. package/contracts/effective-authorization/1.0/schema.json +167 -0
  4. package/contracts/kiwi-contracts.lock.json +1 -1
  5. package/contracts/manifest.json +25 -1
  6. package/contracts/persistent-task/1.0/schema.json +191 -0
  7. package/contracts/vectors/commerce-intent.invalid-no-items.json +7 -0
  8. package/contracts/vectors/commerce-intent.valid.json +32 -0
  9. package/contracts/vectors/delegation-policy.invalid-payment-auto.json +15 -0
  10. package/contracts/vectors/delegation-policy.valid.json +25 -0
  11. package/contracts/vectors/effective-authorization.invalid-deny-wins.json +20 -0
  12. package/contracts/vectors/effective-authorization.valid.json +23 -0
  13. package/contracts/vectors/persistent-task.invalid-no-idempotency.json +7 -0
  14. package/contracts/vectors/persistent-task.valid.json +45 -0
  15. package/dist/a2a/client/url-policy.js +52 -14
  16. package/dist/a2a/client/url-policy.js.map +1 -1
  17. package/dist/a2a/node.js +27 -1
  18. package/dist/a2a/node.js.map +1 -1
  19. package/dist/a2a/server/merchant-handler.d.ts +27 -0
  20. package/dist/a2a/server/merchant-handler.js +88 -10
  21. package/dist/a2a/server/merchant-handler.js.map +1 -1
  22. package/dist/a2a/signing-key.js +18 -0
  23. package/dist/a2a/signing-key.js.map +1 -1
  24. package/dist/buyer-core/a2a-knp.d.ts +71 -0
  25. package/dist/buyer-core/a2a-knp.js +139 -0
  26. package/dist/buyer-core/a2a-knp.js.map +1 -0
  27. package/dist/buyer-core/a2a-negotiator.d.ts +37 -0
  28. package/dist/buyer-core/a2a-negotiator.js +152 -0
  29. package/dist/buyer-core/a2a-negotiator.js.map +1 -0
  30. package/dist/buyer-core/a2a-quote-fetcher.d.ts +44 -0
  31. package/dist/buyer-core/a2a-quote-fetcher.js +178 -0
  32. package/dist/buyer-core/a2a-quote-fetcher.js.map +1 -0
  33. package/dist/buyer-core/build-service.d.ts +44 -0
  34. package/dist/buyer-core/build-service.js +76 -0
  35. package/dist/buyer-core/build-service.js.map +1 -0
  36. package/dist/buyer-core/errors.d.ts +31 -0
  37. package/dist/buyer-core/errors.js +52 -0
  38. package/dist/buyer-core/errors.js.map +1 -0
  39. package/dist/buyer-core/merchant-index.d.ts +64 -0
  40. package/dist/buyer-core/merchant-index.js +213 -0
  41. package/dist/buyer-core/merchant-index.js.map +1 -0
  42. package/dist/buyer-core/negotiator.d.ts +51 -0
  43. package/dist/buyer-core/negotiator.js +181 -0
  44. package/dist/buyer-core/negotiator.js.map +1 -0
  45. package/dist/buyer-core/quote-fetcher.d.ts +46 -0
  46. package/dist/buyer-core/quote-fetcher.js +166 -0
  47. package/dist/buyer-core/quote-fetcher.js.map +1 -0
  48. package/dist/buyer-core/service.d.ts +218 -0
  49. package/dist/buyer-core/service.js +558 -0
  50. package/dist/buyer-core/service.js.map +1 -0
  51. package/dist/buyer-core/store.d.ts +84 -0
  52. package/dist/buyer-core/store.js +256 -0
  53. package/dist/buyer-core/store.js.map +1 -0
  54. package/dist/cli.js +25 -0
  55. package/dist/cli.js.map +1 -1
  56. package/dist/config/profile.d.ts +9 -0
  57. package/dist/config/profile.js +23 -0
  58. package/dist/config/profile.js.map +1 -1
  59. package/dist/contracts/northbound-schema.d.ts +27 -0
  60. package/dist/contracts/northbound-schema.js +102 -0
  61. package/dist/contracts/northbound-schema.js.map +1 -0
  62. package/dist/handoff/destination.js +16 -5
  63. package/dist/handoff/destination.js.map +1 -1
  64. package/dist/http/cli.d.ts +16 -0
  65. package/dist/http/cli.js +123 -0
  66. package/dist/http/cli.js.map +1 -0
  67. package/dist/http/server.d.ts +39 -0
  68. package/dist/http/server.js +297 -0
  69. package/dist/http/server.js.map +1 -0
  70. package/dist/mcp/cli.d.ts +70 -0
  71. package/dist/mcp/cli.js +147 -0
  72. package/dist/mcp/cli.js.map +1 -0
  73. package/dist/mcp/server.d.ts +41 -0
  74. package/dist/mcp/server.js +141 -0
  75. package/dist/mcp/server.js.map +1 -0
  76. package/dist/mcp/tools.d.ts +28 -0
  77. package/dist/mcp/tools.js +299 -0
  78. package/dist/mcp/tools.js.map +1 -0
  79. package/dist/mcp/types.d.ts +107 -0
  80. package/dist/mcp/types.js +52 -0
  81. package/dist/mcp/types.js.map +1 -0
  82. package/dist/merchant/decision-backend.d.ts +82 -0
  83. package/dist/merchant/decision-backend.js +275 -0
  84. package/dist/merchant/decision-backend.js.map +1 -0
  85. package/dist/merchant/ops.d.ts +80 -0
  86. package/dist/merchant/ops.js +75 -0
  87. package/dist/merchant/ops.js.map +1 -0
  88. package/dist/merchant/ucp-profile.d.ts +39 -0
  89. package/dist/merchant/ucp-profile.js +55 -0
  90. package/dist/merchant/ucp-profile.js.map +1 -0
  91. package/dist/product-cli.d.ts +1 -1
  92. package/dist/product-cli.js +1 -1
  93. package/dist/product-cli.js.map +1 -1
  94. package/dist/trust/identity/auth-verifier.js +19 -1
  95. package/dist/trust/identity/auth-verifier.js.map +1 -1
  96. package/dist/trust/identity/message-signature.js +14 -8
  97. package/dist/trust/identity/message-signature.js.map +1 -1
  98. package/examples/profiles/merchant.deepseek.yaml +5 -0
  99. package/examples/profiles/merchant.fake.yaml +4 -0
  100. package/package.json +4 -2
@@ -76,6 +76,7 @@ const TOP_LEVEL_KEYS = [
76
76
  "merchant_policy",
77
77
  "buyer_policy",
78
78
  "weixin",
79
+ "decision",
79
80
  ];
80
81
  /** weixin 段白名单(微信远程控制通道配置;无 *_env 密钥字段——iLink 凭证运行时获取)。 */
81
82
  const WEIXIN_KEYS = ["allow_users", "base_url"];
@@ -112,6 +113,8 @@ const BUYER_POLICY_KEYS = [
112
113
  "auto_negotiate",
113
114
  "human_review_on",
114
115
  ];
116
+ const DECISION_KEYS = ["backend", "enabled"];
117
+ const DECISION_BACKENDS = ["deterministic", "mock", "deepseek"];
115
118
  /** RFC 3339 date-time with an explicit timezone (offset or Z); naive times fail closed. */
116
119
  const RFC3339_TZ = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/;
117
120
  /** Validate an RFC 3339 timestamp that must carry a timezone. */
@@ -296,6 +299,25 @@ export function validateProfile(data, source) {
296
299
  }
297
300
  merchantPolicy = { ...mp };
298
301
  }
302
+ let decisionSection;
303
+ if (p.decision !== undefined) {
304
+ req(isObject(p.decision), `${source}: decision must be a mapping`);
305
+ const d = p.decision;
306
+ rejectUnknownKeys(d, DECISION_KEYS, "decision", source);
307
+ req(DECISION_BACKENDS.includes(d.backend), `${source}: decision.backend must be one of: ${DECISION_BACKENDS.join(", ")}`);
308
+ if (d.enabled !== undefined) {
309
+ req(typeof d.enabled === "boolean", `${source}: decision.enabled must be a boolean`);
310
+ }
311
+ // merchant-only 概念:buyer 配置 decision → fail-closed。
312
+ if (p.role !== "merchant") {
313
+ req(false, `${source}: decision is only valid for role=merchant`);
314
+ }
315
+ // deepseek 后端需要 model.api_key_env(只存 env 名,永不存密钥)。
316
+ if (d.backend === "deepseek" && d.enabled !== false) {
317
+ req(typeof model.api_key_env === "string" && REQUIRED_ENV_REF.test(model.api_key_env), `${source}: decision.backend=deepseek requires model.api_key_env`);
318
+ }
319
+ decisionSection = { backend: d.backend, ...(d.enabled !== undefined ? { enabled: d.enabled } : {}) };
320
+ }
299
321
  let buyerPolicy;
300
322
  if (p.buyer_policy !== undefined) {
301
323
  req(isObject(p.buyer_policy), `${source}: buyer_policy must be a mapping`);
@@ -382,6 +404,7 @@ export function validateProfile(data, source) {
382
404
  ...(merchantPolicy !== undefined ? { merchant_policy: merchantPolicy } : {}),
383
405
  ...(buyerPolicy !== undefined ? { buyer_policy: buyerPolicy } : {}),
384
406
  ...(weixinSection !== undefined ? { weixin: weixinSection } : {}),
407
+ ...(decisionSection !== undefined ? { decision: decisionSection } : {}),
385
408
  };
386
409
  return profile;
387
410
  }
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/config/profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/config/profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Copyright 2026 harrylabsj
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export type NorthboundContractName = "commerce-intent" | "delegation-policy" | "effective-authorization" | "persistent-task";
17
+ /** Resolve the repository/package root from this module's location. */
18
+ export declare function packageRoot(): string;
19
+ export declare function loadNorthboundSchema(name: NorthboundContractName): Record<string, unknown>;
20
+ /** 校验对应 Northbound 契约是否满足冻结 schema。返回错误列表(空 = 合法)。 */
21
+ export declare function validateNorthboundContract(name: NorthboundContractName, value: unknown): string[];
22
+ export declare function validateCommerceIntent(value: unknown): string[];
23
+ export declare function validateDelegationPolicy(value: unknown): string[];
24
+ export declare function validateEffectiveAuthorization(value: unknown): string[];
25
+ export declare function validatePersistentTask(value: unknown): string[];
26
+ /** 断言合法;非法时抛错。 */
27
+ export declare function assertNorthboundContractValid(name: NorthboundContractName, value: unknown, what: string): void;
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Copyright 2026 harrylabsj
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * Kiwi Northbound 契约 v0.1 schema 加载与校验(战略 v2.5 §5.2 / §5.3 / §5.5 / §6.2)。
18
+ *
19
+ * 冻结四份 Northbound 契约:
20
+ * - CommerceIntent contracts/commerce-intent/1.0/schema.json
21
+ * - DelegationPolicy contracts/delegation-policy/1.0/schema.json
22
+ * - EffectiveAuthorization contracts/effective-authorization/1.0/schema.json
23
+ * - PersistentTask/Approval contracts/persistent-task/1.0/schema.json
24
+ *
25
+ * 每份 JSON 文件是唯一权威源(与发布到 https://kiwi.harrylabsj.com/schemas/... 一致)。
26
+ * 校验使用 ajv 2020 + ajv-formats(同 src/contracts/negotiation-schema.ts)。返回错误列表,
27
+ * 空 = 合法。
28
+ */
29
+ import { readFileSync } from "node:fs";
30
+ import { createRequire } from "node:module";
31
+ import path from "node:path";
32
+ import { fileURLToPath } from "node:url";
33
+ // ajv is CommonJS; under NodeNext + verbatimModuleSyntax load it explicitly
34
+ // (same pattern as src/contracts/negotiation-schema.ts).
35
+ const require = createRequire(import.meta.url);
36
+ const Ajv2020 = require("ajv/dist/2020.js");
37
+ const addFormats = require("ajv-formats");
38
+ const SCHEMA_REL = {
39
+ "commerce-intent": ["contracts", "commerce-intent", "1.0", "schema.json"],
40
+ "delegation-policy": ["contracts", "delegation-policy", "1.0", "schema.json"],
41
+ "effective-authorization": ["contracts", "effective-authorization", "1.0", "schema.json"],
42
+ "persistent-task": ["contracts", "persistent-task", "1.0", "schema.json"],
43
+ };
44
+ /** Resolve the repository/package root from this module's location. */
45
+ export function packageRoot() {
46
+ const here = path.dirname(fileURLToPath(import.meta.url));
47
+ // dist/contracts/northbound-schema.js -> <root>; src/... -> <root>
48
+ return path.resolve(here, "..", "..");
49
+ }
50
+ const schemaCache = new Map();
51
+ export function loadNorthboundSchema(name) {
52
+ let schema = schemaCache.get(name);
53
+ if (schema === undefined) {
54
+ const file = path.join(packageRoot(), ...SCHEMA_REL[name]);
55
+ schema = JSON.parse(readFileSync(file, "utf-8"));
56
+ schemaCache.set(name, schema);
57
+ }
58
+ return schema;
59
+ }
60
+ let ajv;
61
+ const validatorCache = new Map();
62
+ function getAjv() {
63
+ if (!ajv) {
64
+ ajv = new Ajv2020({ allErrors: true, strict: true });
65
+ addFormats(ajv);
66
+ }
67
+ return ajv;
68
+ }
69
+ function formatErrors(validate) {
70
+ return (validate.errors ?? []).map((e) => `${e.instancePath || "/"} ${e.message ?? "invalid"}`.trim());
71
+ }
72
+ /** 校验对应 Northbound 契约是否满足冻结 schema。返回错误列表(空 = 合法)。 */
73
+ export function validateNorthboundContract(name, value) {
74
+ let validate = validatorCache.get(name);
75
+ if (validate === undefined) {
76
+ validate = getAjv().compile(loadNorthboundSchema(name));
77
+ validatorCache.set(name, validate);
78
+ }
79
+ if (validate(value))
80
+ return [];
81
+ return formatErrors(validate);
82
+ }
83
+ export function validateCommerceIntent(value) {
84
+ return validateNorthboundContract("commerce-intent", value);
85
+ }
86
+ export function validateDelegationPolicy(value) {
87
+ return validateNorthboundContract("delegation-policy", value);
88
+ }
89
+ export function validateEffectiveAuthorization(value) {
90
+ return validateNorthboundContract("effective-authorization", value);
91
+ }
92
+ export function validatePersistentTask(value) {
93
+ return validateNorthboundContract("persistent-task", value);
94
+ }
95
+ /** 断言合法;非法时抛错。 */
96
+ export function assertNorthboundContractValid(name, value, what) {
97
+ const errors = validateNorthboundContract(name, value);
98
+ if (errors.length > 0) {
99
+ throw new Error(`${what} failed ${name} schema validation: ${errors.join("; ")}`);
100
+ }
101
+ }
102
+ //# sourceMappingURL=northbound-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"northbound-schema.js","sourceRoot":"","sources":["../../src/contracts/northbound-schema.ts"],"names":[],"mappings":"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"}
@@ -59,6 +59,16 @@ const DOCUMENT_DESTINATION_TYPES = new Set([
59
59
  "merchant_contact",
60
60
  "sales_handoff",
61
61
  ]);
62
+ // fail-closed 词表分区不变量:每个 destination_type 必须恰好落在 URL/SESSION/
63
+ // DOCUMENT 三类之一——漏分会让校验静默失效(安全策略不生效),多分造成语义冲突。
64
+ for (const type of DESTINATION_TYPES) {
65
+ const membership = Number(URL_DESTINATION_TYPES.has(type))
66
+ + Number(SESSION_DESTINATION_TYPES.has(type))
67
+ + Number(DOCUMENT_DESTINATION_TYPES.has(type));
68
+ if (membership !== 1) {
69
+ throw new Error(`destination_type "${type}" must belong to exactly one of URL/SESSION/DOCUMENT sets`);
70
+ }
71
+ }
62
72
  /** URL 承载类目的地(external checkout / deep link)——URL 安全策略适用。 */
63
73
  export function isUrlDestinationType(type) {
64
74
  return URL_DESTINATION_TYPES.has(type);
@@ -83,11 +93,12 @@ export function validateDestination(input, path = "destination") {
83
93
  if (URL_DESTINATION_TYPES.has(type) && !/^https?:\/\/\S+$/.test(ref)) {
84
94
  throw schemaError(`${path}/ref`, `destination type "${type}" requires an http(s) URL ref`);
85
95
  }
86
- if (SESSION_DESTINATION_TYPES.has(type) || DOCUMENT_DESTINATION_TYPES.has(type)) {
87
- if (/^https?:\/\//.test(ref) && !URL_DESTINATION_TYPES.has(type)) {
88
- // 会话/文档类目的地不禁止 URL(如 buyer_erp_request 的 ERP 端点引用),
89
- // 但不会被当作可点击链接处理——ref 语义由 destination type 决定。
90
- }
96
+ // 审查 M3:会话类目的地(ucp_checkout / ucp_order / merchant_checkout_session)
97
+ // opaque 会话/订单 id,不得携带 URL——否则绕过 URL 安全策略,把 URL 直接
98
+ // 呈现给买家(钓鱼 / 内部地址面)。文档类目的地(buyer_erp_request 等)仍允许
99
+ // URL 形 ref(ERP 端点引用,ref 语义由 destination type 决定,不做 URL 探测)。
100
+ if (SESSION_DESTINATION_TYPES.has(type) && /^https?:\/\//.test(ref)) {
101
+ throw schemaError(`${path}/ref`, `destination type "${type}" requires an opaque session ref, not a URL`);
91
102
  }
92
103
  let payload;
93
104
  if (obj.payload !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"destination.js","sourceRoot":"","sources":["../../src/handoff/destination.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"destination.js","sourceRoot":"","sources":["../../src/handoff/destination.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright 2026 harrylabsj
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export declare function runHttpServe(args: string[]): Promise<number>;
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Copyright 2026 harrylabsj
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * `kiwi buyer-api serve` —— Buyer Core 的 HTTP 包装(战略 v2.5 §6.3/Appendix A)。
18
+ *
19
+ * 与 MCP 同一 buyer-core(buildBuyerService),不同传输。参数与 `kiwi mcp serve`
20
+ * 一致,另加 --port / --host。
21
+ */
22
+ import { readFileSync } from "node:fs";
23
+ import path from "node:path";
24
+ import { DEFAULT_CATALOG_URL, DEFAULT_DELEGATION_POLICY } from "../mcp/cli.js";
25
+ import { buildBuyerService } from "../buyer-core/build-service.js";
26
+ import { MerchantOpsService } from "../merchant/ops.js";
27
+ import { createBuyerHttpServer } from "./server.js";
28
+ export async function runHttpServe(args) {
29
+ const opts = {};
30
+ let ucpConfigPath;
31
+ let merchantTokensPath;
32
+ for (let i = 0; i < args.length; i += 1) {
33
+ const flag = args[i];
34
+ const value = args[i + 1];
35
+ if (value === undefined)
36
+ continue;
37
+ if (flag === "--db")
38
+ opts.db = value;
39
+ else if (flag === "--principal")
40
+ opts.principal = value;
41
+ else if (flag === "--agent")
42
+ opts.buyerAgentId = value;
43
+ else if (flag === "--session")
44
+ opts.sessionId = value;
45
+ else if (flag === "--catalog-url")
46
+ opts.catalogUrl = value;
47
+ else if (flag === "--marketplace-url")
48
+ opts.marketplaceUrl = value;
49
+ else if (flag === "--buyer-bootstrap-token")
50
+ opts.buyerBootstrapToken = value;
51
+ else if (flag === "--a2a-bearer-token")
52
+ opts.a2aBearerToken = value;
53
+ else if (flag === "--a2a-allow-private-ranges")
54
+ opts.a2aAllowPrivateRanges = value === "true";
55
+ else if (flag === "--a2a-skip-dns-check")
56
+ opts.a2aSkipDnsCheck = value === "true";
57
+ else if (flag === "--a2a-timeout-ms")
58
+ opts.a2aTimeoutMs = Number(value);
59
+ else if (flag === "--port")
60
+ opts.port = Number(value);
61
+ else if (flag === "--host")
62
+ opts.host = value;
63
+ else if (flag === "--ucp-config")
64
+ ucpConfigPath = value;
65
+ else if (flag === "--merchant-tokens")
66
+ merchantTokensPath = value;
67
+ else if (flag === "--policy") {
68
+ try {
69
+ opts.policy = JSON.parse(readFileSync(value, "utf-8"));
70
+ }
71
+ catch {
72
+ process.stderr.write(`cannot read --policy file ${value}\n`);
73
+ return 2;
74
+ }
75
+ }
76
+ }
77
+ const principal = opts.principal ?? process.env.KIWI_PRINCIPAL ?? "principal:local";
78
+ const policy = opts.policy ?? { ...DEFAULT_DELEGATION_POLICY, principal };
79
+ const dbPath = opts.db ?? path.join(".kiwi", "mcp", "state.sqlite");
80
+ const service = buildBuyerService({
81
+ dbPath,
82
+ principal,
83
+ buyerAgentId: opts.buyerAgentId ?? process.env.KIWI_BUYER_AGENT ?? "buyer-agent:kiwi-http",
84
+ sessionId: opts.sessionId ?? process.env.KIWI_SESSION ?? `session-${process.pid}`,
85
+ policy,
86
+ catalogUrl: opts.catalogUrl ?? DEFAULT_CATALOG_URL,
87
+ marketplaceUrl: opts.marketplaceUrl,
88
+ buyerBootstrapToken: opts.buyerBootstrapToken ?? process.env.SHOPPING_BUYER_BOOTSTRAP_TOKEN,
89
+ a2aBearerToken: opts.a2aBearerToken,
90
+ a2aAllowPrivateRanges: opts.a2aAllowPrivateRanges,
91
+ a2aSkipDnsCheck: opts.a2aSkipDnsCheck,
92
+ a2aTimeoutMs: opts.a2aTimeoutMs,
93
+ });
94
+ const port = opts.port ?? 8787;
95
+ const host = opts.host ?? "127.0.0.1";
96
+ const merchantUcp = ucpConfigPath !== undefined
97
+ ? JSON.parse(readFileSync(ucpConfigPath, "utf-8"))
98
+ : undefined;
99
+ // Merchant Ops(§7.6):从 merchant-tokens.env(merchantId=token 每行)构建,
100
+ // 命名空间隔离——merchant token 只访问 kiwi.merchant.*。
101
+ const merchantOps = {};
102
+ if (merchantTokensPath !== undefined && opts.marketplaceUrl !== undefined) {
103
+ for (const line of readFileSync(merchantTokensPath, "utf-8").split("\n")) {
104
+ const idx = line.indexOf("=");
105
+ if (idx <= 0)
106
+ continue;
107
+ const merchantId = line.slice(0, idx).trim();
108
+ const token = line.slice(idx + 1).trim();
109
+ if (merchantId === "" || token === "")
110
+ continue;
111
+ merchantOps[merchantId] = new MerchantOpsService({ baseUrl: opts.marketplaceUrl, merchantToken: token });
112
+ }
113
+ }
114
+ const server = createBuyerHttpServer({
115
+ service,
116
+ ...(merchantUcp !== undefined ? { merchantUcp } : {}),
117
+ ...(Object.keys(merchantOps).length > 0 ? { merchantOps } : {}),
118
+ });
119
+ await new Promise((resolve) => server.listen(port, host, resolve));
120
+ process.stderr.write(`kiwi-buyer-http listening on http://${host}:${port}\n`);
121
+ return 0;
122
+ }
123
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/http/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Copyright 2026 harrylabsj
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * kiwi-buyer-http —— Buyer Core 的 HTTP 包装(战略 v2.5 §6.3/§6.5/Appendix A)。
18
+ *
19
+ * 与 MCP 同一 buyer-core(KiwiBuyerService),不同包装:证明"单核心、多包装"——
20
+ * 未来新宿主出现时接入从"重写产品"降为"写一个薄适配器"(§6.3)。
21
+ *
22
+ * 暴露与 7 个 MCP 工具一一对应的 HTTP 端点(同一语义不变量:schema/授权门/
23
+ * 幂等/错误分类)。本 server 不持有任何商业状态——状态唯一权威在持久 store。
24
+ */
25
+ import { type Server } from "node:http";
26
+ import { KiwiBuyerService } from "../buyer-core/service.js";
27
+ import type { MerchantOpsService } from "../merchant/ops.js";
28
+ export interface HttpAdapterOptions {
29
+ service: KiwiBuyerService;
30
+ /** 商家 UCP Profile 发布配置:merchantId → { domain, catalogEndpoint }(§7.1)。 */
31
+ merchantUcp?: Record<string, {
32
+ domain: string;
33
+ catalogEndpoint: string;
34
+ }>;
35
+ /** Merchant Ops(§7.6):merchantId → MerchantOpsService(merchant token 作用域)。 */
36
+ merchantOps?: Record<string, MerchantOpsService>;
37
+ }
38
+ export declare function createBuyerHttpServer(options: HttpAdapterOptions): Server;
39
+ export type { Server };