@harrylabsj/kiwi 0.6.0 → 0.6.1

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 (64) hide show
  1. package/dist/a2a/node.d.ts +3 -1
  2. package/dist/a2a/node.js +1 -0
  3. package/dist/a2a/node.js.map +1 -1
  4. package/dist/agent/buyer/types.d.ts +0 -25
  5. package/dist/agent/buyer/types.js.map +1 -1
  6. package/dist/agent/kernel-builder.d.ts +27 -0
  7. package/dist/agent/kernel-builder.js +180 -0
  8. package/dist/agent/kernel-builder.js.map +1 -0
  9. package/dist/cli.js +98 -154
  10. package/dist/cli.js.map +1 -1
  11. package/dist/commerce/data-source.d.ts +4 -3
  12. package/dist/commerce/data-source.js.map +1 -1
  13. package/dist/commerce/shopping-cli-source.js +3 -2
  14. package/dist/commerce/shopping-cli-source.js.map +1 -1
  15. package/dist/config/profile.d.ts +7 -0
  16. package/dist/config/profile.js +23 -0
  17. package/dist/config/profile.js.map +1 -1
  18. package/dist/discovery/catalog-source/kiwi-record.d.ts +3 -0
  19. package/dist/discovery/catalog-source/kiwi-record.js.map +1 -1
  20. package/dist/discovery/catalog-source/kiwi-source.js +7 -1
  21. package/dist/discovery/catalog-source/kiwi-source.js.map +1 -1
  22. package/dist/discovery/catalog-source/register.d.ts +6 -0
  23. package/dist/discovery/catalog-source/register.js +15 -7
  24. package/dist/discovery/catalog-source/register.js.map +1 -1
  25. package/dist/handoff/errors.d.ts +1 -1
  26. package/dist/handoff/errors.js +1 -0
  27. package/dist/handoff/errors.js.map +1 -1
  28. package/dist/handoff/idempotency.d.ts +10 -1
  29. package/dist/handoff/idempotency.js +13 -3
  30. package/dist/handoff/idempotency.js.map +1 -1
  31. package/dist/handoff/transaction.js +13 -6
  32. package/dist/handoff/transaction.js.map +1 -1
  33. package/dist/negotiation/state/phase.js +12 -4
  34. package/dist/negotiation/state/phase.js.map +1 -1
  35. package/dist/product-catalog.d.ts +43 -0
  36. package/dist/product-catalog.js +60 -0
  37. package/dist/product-catalog.js.map +1 -0
  38. package/dist/product-cli.d.ts +1 -1
  39. package/dist/product-cli.js +1 -1
  40. package/dist/product-publish.d.ts +10 -17
  41. package/dist/product-publish.js +177 -41
  42. package/dist/product-publish.js.map +1 -1
  43. package/dist/weixin/channel.d.ts +87 -0
  44. package/dist/weixin/channel.js +356 -0
  45. package/dist/weixin/channel.js.map +1 -0
  46. package/dist/weixin/cli-weixin.d.ts +29 -0
  47. package/dist/weixin/cli-weixin.js +128 -0
  48. package/dist/weixin/cli-weixin.js.map +1 -0
  49. package/dist/weixin/credentials.d.ts +33 -0
  50. package/dist/weixin/credentials.js +107 -0
  51. package/dist/weixin/credentials.js.map +1 -0
  52. package/dist/weixin/ilink-client.d.ts +44 -0
  53. package/dist/weixin/ilink-client.js +262 -0
  54. package/dist/weixin/ilink-client.js.map +1 -0
  55. package/dist/weixin/login.d.ts +34 -0
  56. package/dist/weixin/login.js +93 -0
  57. package/dist/weixin/login.js.map +1 -0
  58. package/dist/weixin/qr.d.ts +26 -0
  59. package/dist/weixin/qr.js +525 -0
  60. package/dist/weixin/qr.js.map +1 -0
  61. package/dist/weixin/types.d.ts +114 -0
  62. package/dist/weixin/types.js +48 -0
  63. package/dist/weixin/types.js.map +1 -0
  64. package/package.json +4 -1
@@ -20,8 +20,10 @@ export interface A2aNodeOptions {
20
20
  catalog?: string;
21
21
  /** 首选端口(缺省按角色:merchant 9000 / buyer 9001)。占用则自动换。 */
22
22
  preferredPort?: number;
23
- /** KIWI_CATALOG_OWNER_TOKEN_SECRET(merchant 注册绑定 owner 语义)。 */
23
+ /** KIWI_CATALOG_OWNER_TOKEN_SECRET(merchant 注册绑定 owner 语义,legacy HMAC 派生)。 */
24
24
  ownerTokenSecret?: string;
25
+ /** 商家自己的随机 owner token(v12+ 双路径;平台 secret 不落商家服务器)。 */
26
+ ownerToken?: string;
25
27
  }
26
28
  export interface A2aNodeHandle {
27
29
  role: "buyer" | "merchant";
package/dist/a2a/node.js CHANGED
@@ -131,6 +131,7 @@ export async function startA2aNode(options) {
131
131
  agentCardUrl,
132
132
  ucpProfileUrl: `${url}/.well-known/ucp`,
133
133
  merchantId: profile.agent_id,
134
+ ownerToken: options.ownerToken,
134
135
  ownerTokenSecret: options.ownerTokenSecret,
135
136
  });
136
137
  catalogAgentId = reg.catalogAgentId;
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/a2a/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/a2a/node.ts"],"names":[],"mappings":"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"}
@@ -45,29 +45,6 @@ export interface TaskIntent {
45
45
  query_text?: string;
46
46
  open_questions?: string[];
47
47
  }
48
- /**
49
- * Product-first 商品意图(rev1.5 CD #27;产品文档 kiwi-catalog v0.4 §10)。
50
- * 与 TaskIntent 独立:TaskIntent 是本地任务的结构化约束,ProductIntent 是
51
- * kiwi-catalog listing 搜索的输入(need → /v1/listings/search)。
52
- */
53
- export interface ProductIntent {
54
- /** 需求描述("我要 21.5 寸工业触摸屏")。 */
55
- need_description: string;
56
- category?: string;
57
- regions?: string[];
58
- min_moq?: number;
59
- max_moq?: number;
60
- supports_customization?: boolean;
61
- /** 预算提示(discovery hint,不对外精确披露——NetworkDisclosurePolicy 门)。 */
62
- budget_hint?: string;
63
- handoff_destination_types?: readonly string[];
64
- }
65
- /** listing → owner Agent resolution 的引用(CD #23:绑定 owner_agent_id,不复制 endpoint)。 */
66
- export interface ListingRef {
67
- listing_id: string;
68
- listing_type: "product" | "capability";
69
- source_product_ref?: string;
70
- }
71
48
  /** Current-task hard constraints; private values may be Vault refs (§11.2). */
72
49
  export interface TaskConstraints {
73
50
  /** Per-unit budget ("单价预算 94 元"); the decision derives the total from it. */
@@ -153,8 +130,6 @@ export interface ProductCandidate {
153
130
  external_product_id: string;
154
131
  sku?: string;
155
132
  merchant_id?: string;
156
- /** kiwi-catalog listing 引用(product-first 链路;shortlist 候选的来源锚点)。 */
157
- listing_ref?: ListingRef;
158
133
  /** owner Agent(listing.owner_agent_id;Direct A2A 的 catalogAgentId 输入)。 */
159
134
  owner_agent_id?: string;
160
135
  canonical_key: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/agent/buyer/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;GAIG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,OAAO;IACP,YAAY;IACZ,OAAO;IACP,WAAW;IACX,UAAU;IACV,iBAAiB;IACjB,eAAe;IACf,YAAY;IACZ,aAAa;IACb,qBAAqB;IACrB,WAAW;IACX,QAAQ;IACR,SAAS;CACD,CAAC;AAGX,mEAAmE;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAkE;IAC7F,KAAK,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC;IAC3C,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC;IAClC,oDAAoD;IACpD,8CAA8C;IAC9C,KAAK,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;IAClC,SAAS,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,QAAQ,CAAC;IACpD,QAAQ,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,YAAY,CAAC;IACnE,eAAe,EAAE,CAAC,eAAe,CAAC;IAClC,aAAa,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,qBAAqB,EAAE,WAAW,CAAC;IAC9E,UAAU,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;IAC5C,WAAW,EAAE,CAAC,eAAe,EAAE,qBAAqB,CAAC;IACrD,2CAA2C;IAC3C,mBAAmB,EAAE,CAAC,YAAY,CAAC;IACnC,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,aAAa;IACb,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,iBAAiB;CACT,CAAC;AAGX,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAU,CAAC;AAGnF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,YAAY;IACZ,SAAS;IACT,aAAa;IACb,UAAU;IACV,UAAU;IACV,OAAO;CACC,CAAC;AA0DX,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,OAAO;IACP,YAAY;IACZ,WAAW;IACX,eAAe;IACf,OAAO;IACP,UAAU;IACV,aAAa;IACb,gBAAgB;IAChB,kBAAkB;IAClB,WAAW;CACH,CAAC;AAyCX,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,SAAS;IACT,WAAW;IACX,gBAAgB;IAChB,mBAAmB;IACnB,aAAa;IACb,oBAAoB;IACpB,oBAAoB;IACpB,cAAc;IACd,oBAAoB;IACpB,qBAAqB;IACrB,UAAU;IACV,gBAAgB;IAChB,QAAQ;IACR,SAAS;IACT,WAAW;CACH,CAAC;AAGX,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,YAAY;IACZ,aAAa;IACb,QAAQ;IACR,OAAO;CACC,CAAC;AAiGX,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAAuF;IACpG,YAAY,IAA4B,EAAE,OAAe;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,cAAc,EAAE,EAAE;IAClB,YAAY,EAAE,EAAE;IAChB,UAAU,EAAE,MAAM;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,wBAAwB,EAAE,IAAI;IAC9B,wBAAwB,EAAE,IAAI;IAC9B,uBAAuB,EAAE,IAAI;CAC9B,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/agent/buyer/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;GAIG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,OAAO;IACP,YAAY;IACZ,OAAO;IACP,WAAW;IACX,UAAU;IACV,iBAAiB;IACjB,eAAe;IACf,YAAY;IACZ,aAAa;IACb,qBAAqB;IACrB,WAAW;IACX,QAAQ;IACR,SAAS;CACD,CAAC;AAGX,mEAAmE;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAkE;IAC7F,KAAK,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC;IAC3C,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC;IAClC,oDAAoD;IACpD,8CAA8C;IAC9C,KAAK,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;IAClC,SAAS,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,QAAQ,CAAC;IACpD,QAAQ,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,YAAY,CAAC;IACnE,eAAe,EAAE,CAAC,eAAe,CAAC;IAClC,aAAa,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,qBAAqB,EAAE,WAAW,CAAC;IAC9E,UAAU,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;IAC5C,WAAW,EAAE,CAAC,eAAe,EAAE,qBAAqB,CAAC;IACrD,2CAA2C;IAC3C,mBAAmB,EAAE,CAAC,YAAY,CAAC;IACnC,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,aAAa;IACb,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,iBAAiB;CACT,CAAC;AAGX,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAU,CAAC;AAGnF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,YAAY;IACZ,SAAS;IACT,aAAa;IACb,UAAU;IACV,UAAU;IACV,OAAO;CACC,CAAC;AAiCX,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,OAAO;IACP,YAAY;IACZ,WAAW;IACX,eAAe;IACf,OAAO;IACP,UAAU;IACV,aAAa;IACb,gBAAgB;IAChB,kBAAkB;IAClB,WAAW;CACH,CAAC;AAyCX,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,SAAS;IACT,WAAW;IACX,gBAAgB;IAChB,mBAAmB;IACnB,aAAa;IACb,oBAAoB;IACpB,oBAAoB;IACpB,cAAc;IACd,oBAAoB;IACpB,qBAAqB;IACrB,UAAU;IACV,gBAAgB;IAChB,QAAQ;IACR,SAAS;IACT,WAAW;CACH,CAAC;AAGX,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,YAAY;IACZ,aAAa;IACb,QAAQ;IACR,OAAO;CACC,CAAC;AA+FX,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAAuF;IACpG,YAAY,IAA4B,EAAE,OAAe;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,cAAc,EAAE,EAAE;IAClB,YAAY,EAAE,EAAE;IAChB,UAAU,EAAE,MAAM;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,wBAAwB,EAAE,IAAI;IAC9B,wBAAwB,EAAE,IAAI;IAC9B,uBAAuB,EAAE,IAAI;CAC9B,CAAC"}
@@ -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
+ import { AgentKernel } from "./kernel.js";
17
+ import { type AgentProfile } from "../config/profile.js";
18
+ import type { CommerceClient } from "../commerce/types.js";
19
+ /** 裸 `kiwi` 的缺省 buyer profile(deepseek-v4-flash,环境变量可覆盖)。 */
20
+ export declare function defaultChatProfile(): AgentProfile;
21
+ /** 构建 commerce client(negotiation scope token 从 env 解析)。 */
22
+ export declare function buildClient(profile: AgentProfile): CommerceClient;
23
+ /**
24
+ * 为 profile 构建 AgentKernel(chat/weixin 共享装配)。
25
+ * provider=fake 运行确定性离线 chat fake;真实 provider 解析模型与认证。
26
+ */
27
+ export declare function buildChatKernel(profile: AgentProfile, dataDir?: string, catalog?: string): Promise<AgentKernel>;
@@ -0,0 +1,180 @@
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
+ * AgentKernel 装配(从 cli.ts 抽出,供 chat/weixin 等入口共享)。
18
+ *
19
+ * provider=fake 走确定性离线 chat fake;真实 provider 经 pi-ai builtin
20
+ * 目录解析模型与认证。`catalog` 是 agent catalog base URL(buyer 的
21
+ * negotiate_buyer_task 发现商家用)。从 cli.ts 机械抽取,无行为变化。
22
+ */
23
+ import { agentDataDir, ensurePathsForDir } from "./agent-db.js";
24
+ import { createFakeChatModels } from "./fake-chat-model.js";
25
+ import { isAgentMode } from "./mode.js";
26
+ import { AgentKernel } from "./kernel.js";
27
+ import { ProfileError, RUNTIME_VERSION, resolveSecret, } from "../config/profile.js";
28
+ import { HttpCommerceClient } from "../commerce/http-client.js";
29
+ import { isFakeProvider, resolveThinkingLevel } from "../runtime/model.js";
30
+ /** 裸 `kiwi` 的缺省 buyer profile(deepseek-v4-flash,环境变量可覆盖)。 */
31
+ export function defaultChatProfile() {
32
+ const provider = process.env.KIWI_MODEL_PROVIDER ?? "deepseek";
33
+ const model = process.env.KIWI_MODEL ?? "deepseek-v4-flash";
34
+ const apiKeyEnv = process.env.KIWI_MODEL_API_KEY_ENV ?? "DEEPSEEK_API_KEY";
35
+ const baseUrl = process.env.KIWI_MODEL_BASE_URL;
36
+ return {
37
+ runtime_version: RUNTIME_VERSION,
38
+ protocol_version: "shopping.negotiation/0.1",
39
+ agent_id: "kiwi-assistant",
40
+ role: "buyer",
41
+ owner_id: "kiwi-user",
42
+ commerce: {
43
+ base_url: "http://127.0.0.1:8765",
44
+ token_env: "SHOPPING_BUYER_TOKEN",
45
+ backend: "local_marketplace",
46
+ },
47
+ model: {
48
+ provider,
49
+ model,
50
+ api_key_env: apiKeyEnv,
51
+ ...(baseUrl !== undefined ? { base_url: baseUrl } : {}),
52
+ },
53
+ runtime: {
54
+ mode: "once",
55
+ poll_interval_seconds: 5,
56
+ turn_timeout_seconds: 90,
57
+ max_model_steps: 4,
58
+ max_retries: 2,
59
+ },
60
+ buyer_policy: {
61
+ target_skus: [],
62
+ quantity: 1,
63
+ max_total_price_private: 1_000_000,
64
+ acceptable_eta_latest: "2099-12-31T23:59:59+08:00",
65
+ required_after_sales_terms: [],
66
+ auto_negotiate: true,
67
+ human_review_on: [],
68
+ },
69
+ };
70
+ }
71
+ /** 构建 commerce client(negotiation scope token 从 env 解析)。 */
72
+ export function buildClient(profile) {
73
+ const token = resolveSecret(profile.commerce.token_env, "commerce token");
74
+ return new HttpCommerceClient({
75
+ baseUrl: profile.commerce.base_url,
76
+ token,
77
+ });
78
+ }
79
+ /**
80
+ * 为 profile 构建 AgentKernel(chat/weixin 共享装配)。
81
+ * provider=fake 运行确定性离线 chat fake;真实 provider 解析模型与认证。
82
+ */
83
+ export async function buildChatKernel(profile, dataDir, catalog) {
84
+ const paths = ensurePathsForDir(dataDir ?? agentDataDir(profile.agent_id));
85
+ let models;
86
+ let model;
87
+ let connector;
88
+ let thinkingLevel;
89
+ let merchantClient;
90
+ let broker;
91
+ let commerceClient;
92
+ if (isFakeProvider(profile)) {
93
+ ({ models, model } = createFakeChatModels());
94
+ if (profile.role === "buyer") {
95
+ const { FakeCommerceConnector, fakeConnectorProduct } = await import("./connector/fake-connector.js");
96
+ connector = new FakeCommerceConnector([
97
+ fakeConnectorProduct(),
98
+ fakeConnectorProduct({
99
+ sku: "sku-002",
100
+ title: "机制陶瓷杯",
101
+ price: 59,
102
+ stock: 0,
103
+ merchant_id: "merchant-002",
104
+ }),
105
+ ]);
106
+ }
107
+ else {
108
+ // Offline merchant chat: deterministic catalog client + dummy-scope
109
+ // credentials so the capability pack is exercisable without a gateway.
110
+ const { FakeMerchantClient, fakeMerchantProduct } = await import("./merchant/fake-merchant-client.js");
111
+ const { StaticCredentialBroker } = await import("./merchant/credential-broker.js");
112
+ merchantClient = new FakeMerchantClient({
113
+ products: [fakeMerchantProduct()],
114
+ });
115
+ broker = new StaticCredentialBroker({
116
+ negotiation: "fake-negotiation-token",
117
+ catalog: "fake-catalog-token",
118
+ inventory: "fake-inventory-token",
119
+ });
120
+ }
121
+ }
122
+ else {
123
+ const { builtinModels } = await import("@earendil-works/pi-ai/providers/all");
124
+ const collection = builtinModels();
125
+ const found = collection.getModel(profile.model.provider, profile.model.model);
126
+ if (found === undefined) {
127
+ process.stderr.write(`no built-in model ${profile.model.provider}/${profile.model.model}; check the profile\n`);
128
+ throw new ProfileError(`no built-in model ${profile.model.provider}/${profile.model.model}`);
129
+ }
130
+ models = collection;
131
+ model = found;
132
+ thinkingLevel = resolveThinkingLevel(profile);
133
+ if (profile.role === "buyer") {
134
+ const { ShoppingCliConnector } = await import("./connector/http-connector.js");
135
+ connector = new ShoppingCliConnector(profile.commerce.base_url, {
136
+ buyerBootstrapToken: process.env.SHOPPING_BUYER_BOOTSTRAP_TOKEN,
137
+ });
138
+ }
139
+ // Real gateway: negotiation client + scoped merchant client + broker.
140
+ const { ProfileCredentialBroker } = await import("./merchant/credential-broker.js");
141
+ broker = new ProfileCredentialBroker(profile);
142
+ try {
143
+ commerceClient = buildClient(profile);
144
+ }
145
+ catch {
146
+ // No negotiation token: negotiation tools fail closed at call time.
147
+ // Catalog/inventory 只读工具走公开搜索端点,不依赖该 token,仍会挂载。
148
+ commerceClient = undefined;
149
+ if (profile.role === "merchant") {
150
+ process.stderr.write(`[kiwi] 未设置 ${profile.commerce.token_env}:磋商工具停用(fail closed),` +
151
+ "目录/库存只读工具仍可用。\n");
152
+ }
153
+ }
154
+ if (profile.role === "merchant") {
155
+ const { HttpMerchantClient } = await import("./merchant/merchant-client.js");
156
+ merchantClient = new HttpMerchantClient(profile.commerce.base_url, broker);
157
+ }
158
+ }
159
+ // KIWI_MODE env: start the chat already in the given write mode (e.g.
160
+ // autopilot for autonomous negotiation) — no manual /mode needed.
161
+ const kiwiMode = process.env.KIWI_MODE;
162
+ const mode = isAgentMode(kiwiMode) ? kiwiMode : undefined;
163
+ if (kiwiMode !== undefined && mode === undefined) {
164
+ process.stderr.write(`unknown KIWI_MODE ${kiwiMode}(可选 ${["manual", "supervised", "autopilot"].join("/")})\n`);
165
+ }
166
+ return AgentKernel.open({
167
+ profile,
168
+ paths,
169
+ models,
170
+ model,
171
+ ...(mode !== undefined ? { mode } : {}),
172
+ ...(connector !== undefined ? { connector } : {}),
173
+ ...(commerceClient !== undefined ? { commerceClient } : {}),
174
+ ...(merchantClient !== undefined ? { merchantClient } : {}),
175
+ ...(broker !== undefined ? { broker } : {}),
176
+ ...(catalog !== undefined ? { catalog } : {}),
177
+ ...(thinkingLevel !== undefined ? { thinkingLevel } : {}),
178
+ });
179
+ }
180
+ //# sourceMappingURL=kernel-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel-builder.js","sourceRoot":"","sources":["../../src/agent/kernel-builder.ts"],"names":[],"mappings":"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"}