@harrylabsj/kiwi 0.7.22 → 0.8.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.
Files changed (140) hide show
  1. package/README.md +45 -10
  2. package/dist/a2a/node.js +1 -1
  3. package/dist/a2a/node.js.map +1 -1
  4. package/dist/agent/buyer/buyer-tools.js +15 -8
  5. package/dist/agent/buyer/buyer-tools.js.map +1 -1
  6. package/dist/agent/buyer/scheduler.d.ts +1 -0
  7. package/dist/agent/buyer/scheduler.js +5 -1
  8. package/dist/agent/buyer/scheduler.js.map +1 -1
  9. package/dist/agent/buyer/task-store.js +5 -2
  10. package/dist/agent/buyer/task-store.js.map +1 -1
  11. package/dist/agent/chat-tools.js +10 -3
  12. package/dist/agent/chat-tools.js.map +1 -1
  13. package/dist/agent/context/fencing.d.ts +27 -0
  14. package/dist/agent/context/fencing.js +126 -0
  15. package/dist/agent/context/fencing.js.map +1 -0
  16. package/dist/agent/context/grounding.d.ts +18 -0
  17. package/dist/agent/context/grounding.js +22 -0
  18. package/dist/agent/context/grounding.js.map +1 -0
  19. package/dist/agent/host/events.d.ts +31 -0
  20. package/dist/agent/host/events.js +62 -0
  21. package/dist/agent/host/events.js.map +1 -0
  22. package/dist/agent/host/tui-renderer.d.ts +17 -0
  23. package/dist/agent/host/tui-renderer.js +125 -0
  24. package/dist/agent/host/tui-renderer.js.map +1 -0
  25. package/dist/agent/host/web-renderer.d.ts +71 -0
  26. package/dist/agent/host/web-renderer.js +185 -0
  27. package/dist/agent/host/web-renderer.js.map +1 -0
  28. package/dist/agent/kernel-builder.d.ts +3 -1
  29. package/dist/agent/kernel-builder.js +4 -1
  30. package/dist/agent/kernel-builder.js.map +1 -1
  31. package/dist/agent/kernel.d.ts +20 -1
  32. package/dist/agent/kernel.js +251 -14
  33. package/dist/agent/kernel.js.map +1 -1
  34. package/dist/agent/merchant/intelligence/backend.d.ts +40 -0
  35. package/dist/agent/merchant/intelligence/backend.js +2 -0
  36. package/dist/agent/merchant/intelligence/backend.js.map +1 -0
  37. package/dist/agent/merchant/intelligence/default-backend.d.ts +38 -0
  38. package/dist/agent/merchant/intelligence/default-backend.js +454 -0
  39. package/dist/agent/merchant/intelligence/default-backend.js.map +1 -0
  40. package/dist/agent/merchant/intelligence/http-analytics-source.d.ts +55 -0
  41. package/dist/agent/merchant/intelligence/http-analytics-source.js +193 -0
  42. package/dist/agent/merchant/intelligence/http-analytics-source.js.map +1 -0
  43. package/dist/agent/merchant/intelligence/types.d.ts +109 -0
  44. package/dist/agent/merchant/intelligence/types.js +2 -0
  45. package/dist/agent/merchant/intelligence/types.js.map +1 -0
  46. package/dist/agent/merchant/merchant-enrichment.d.ts +10 -0
  47. package/dist/agent/merchant/merchant-enrichment.js +38 -0
  48. package/dist/agent/merchant/merchant-enrichment.js.map +1 -0
  49. package/dist/agent/merchant/merchant-grounding.d.ts +5 -0
  50. package/dist/agent/merchant/merchant-grounding.js +76 -0
  51. package/dist/agent/merchant/merchant-grounding.js.map +1 -0
  52. package/dist/agent/merchant/merchant-presentations.d.ts +8 -0
  53. package/dist/agent/merchant/merchant-presentations.js +184 -0
  54. package/dist/agent/merchant/merchant-presentations.js.map +1 -0
  55. package/dist/agent/merchant/merchant-tools.d.ts +8 -0
  56. package/dist/agent/merchant/merchant-tools.js +208 -9
  57. package/dist/agent/merchant/merchant-tools.js.map +1 -1
  58. package/dist/agent/presentation/registry.d.ts +14 -0
  59. package/dist/agent/presentation/registry.js +24 -0
  60. package/dist/agent/presentation/registry.js.map +1 -0
  61. package/dist/agent/presentation/runner.d.ts +11 -0
  62. package/dist/agent/presentation/runner.js +17 -0
  63. package/dist/agent/presentation/runner.js.map +1 -0
  64. package/dist/agent/presentation/sanitize.d.ts +16 -0
  65. package/dist/agent/presentation/sanitize.js +37 -0
  66. package/dist/agent/presentation/sanitize.js.map +1 -0
  67. package/dist/agent/presentation/types.d.ts +28 -0
  68. package/dist/agent/presentation/types.js +8 -0
  69. package/dist/agent/presentation/types.js.map +1 -0
  70. package/dist/agent/session.d.ts +1 -1
  71. package/dist/agent/session.js +2 -2
  72. package/dist/agent/session.js.map +1 -1
  73. package/dist/agent/skills/registry.d.ts +11 -0
  74. package/dist/agent/skills/registry.js +119 -0
  75. package/dist/agent/skills/registry.js.map +1 -0
  76. package/dist/agent/skills/tools.d.ts +6 -0
  77. package/dist/agent/skills/tools.js +36 -0
  78. package/dist/agent/skills/tools.js.map +1 -0
  79. package/dist/agent/skills/types.d.ts +9 -0
  80. package/dist/agent/skills/types.js +2 -0
  81. package/dist/agent/skills/types.js.map +1 -0
  82. package/dist/agent/supplier/scheduler.d.ts +2 -0
  83. package/dist/agent/supplier/scheduler.js +101 -22
  84. package/dist/agent/supplier/scheduler.js.map +1 -1
  85. package/dist/agent/supplier/store.d.ts +2 -0
  86. package/dist/agent/supplier/store.js +44 -0
  87. package/dist/agent/supplier/store.js.map +1 -1
  88. package/dist/agent/system-prompt.d.ts +5 -1
  89. package/dist/agent/system-prompt.js +20 -3
  90. package/dist/agent/system-prompt.js.map +1 -1
  91. package/dist/cli.js +34 -14
  92. package/dist/cli.js.map +1 -1
  93. package/dist/config/profile.d.ts +21 -0
  94. package/dist/config/profile.js +59 -0
  95. package/dist/config/profile.js.map +1 -1
  96. package/dist/discovery/catalog-source/kiwi-record.d.ts +2 -0
  97. package/dist/discovery/catalog-source/kiwi-record.js.map +1 -1
  98. package/dist/discovery/catalog-source/kiwi-source.js +2 -0
  99. package/dist/discovery/catalog-source/kiwi-source.js.map +1 -1
  100. package/dist/handoff/authorization.js +1 -1
  101. package/dist/http/merchant-server.d.ts +65 -0
  102. package/dist/http/merchant-server.js +346 -0
  103. package/dist/http/merchant-server.js.map +1 -0
  104. package/dist/merchant/stats-store.d.ts +7 -0
  105. package/dist/merchant/stats-store.js +11 -0
  106. package/dist/merchant/stats-store.js.map +1 -1
  107. package/dist/negotiation/action-candidate.js +1 -1
  108. package/dist/operator/types.d.ts +1 -1
  109. package/dist/product-cli.d.ts +2 -2
  110. package/dist/product-cli.js +5 -3
  111. package/dist/product-cli.js.map +1 -1
  112. package/dist/product-supplier.d.ts +73 -0
  113. package/dist/product-supplier.js +224 -5
  114. package/dist/product-supplier.js.map +1 -1
  115. package/dist/runtime/fake-model.d.ts +1 -1
  116. package/dist/trust/identity/jwk.d.ts +11 -0
  117. package/dist/trust/identity/jwk.js +2 -0
  118. package/dist/trust/identity/jwk.js.map +1 -0
  119. package/dist/trust/identity/jws.d.ts +2 -1
  120. package/dist/trust/identity/jws.js.map +1 -1
  121. package/dist/trust/identity/keys.d.ts +2 -1
  122. package/dist/trust/identity/keys.js.map +1 -1
  123. package/dist/trust/identity/message-signature.d.ts +1 -14
  124. package/dist/trust/identity/message-signature.js.map +1 -1
  125. package/dist/weixin/channel.d.ts +3 -0
  126. package/dist/weixin/channel.js +18 -2
  127. package/dist/weixin/channel.js.map +1 -1
  128. package/examples/profiles/merchant.deepseek.yaml +6 -0
  129. package/examples/profiles/merchant.fake.yaml +6 -0
  130. package/examples/profiles/merchant.local.yaml +6 -0
  131. package/package.json +7 -6
  132. package/skills/kiwi-buyer/SKILL.md +66 -0
  133. package/skills/merchant/catalog-operations/SKILL.md +17 -0
  134. package/skills/merchant/change-approval/SKILL.md +16 -0
  135. package/skills/merchant/human-review/SKILL.md +17 -0
  136. package/skills/merchant/inventory-operations/SKILL.md +17 -0
  137. package/skills/merchant/negotiation-review/SKILL.md +18 -0
  138. package/skills/merchant/performance-insights/SKILL.md +19 -0
  139. package/contracts/candidate-agent-dto-1.0.README.md +0 -43
  140. package/contracts/conformance/python-service/README.md +0 -19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merchant-server.js","sourceRoot":"","sources":["../../src/http/merchant-server.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,11 @@ export interface DailyBucket {
42
42
  contact_events: number;
43
43
  negotiations: number;
44
44
  }
45
+ /** 单日买家身份集合的去重行,用于跨日粒度聚合。 */
46
+ export interface DailyBuyerIdentity {
47
+ day: string;
48
+ buyer_identity: string;
49
+ }
45
50
  /** 单 SKU 聚合。 */
46
51
  export interface SkuStat {
47
52
  sku: string;
@@ -66,6 +71,8 @@ export declare class MerchantStatsStore {
66
71
  totalsSince(sinceDay: string): ContactTotals;
67
72
  /** 按日聚合(只返回有数据的天;零填充由调用方做)。 */
68
73
  dailySince(sinceDay: string): DailyBucket[];
74
+ /** 按日返回原始身份去重行,避免周/月把同一买家跨日重复相加。 */
75
+ dailyBuyerIdentitiesSince(sinceDay: string): DailyBuyerIdentity[];
69
76
  /** SKU 热度榜(按触达事件数降序,sku 升序兜底,截断 limit)。 */
70
77
  topSkus(sinceDay: string, limit: number): SkuStat[];
71
78
  close(): void;
@@ -103,6 +103,17 @@ export class MerchantStatsStore {
103
103
  negotiations: r.negotiations,
104
104
  }));
105
105
  }
106
+ /** 按日返回原始身份去重行,避免周/月把同一买家跨日重复相加。 */
107
+ dailyBuyerIdentitiesSince(sinceDay) {
108
+ const rows = this.db
109
+ .prepare(`SELECT substr(occurred_at, 1, 10) AS day, buyer_identity
110
+ FROM buyer_contact_events
111
+ WHERE substr(occurred_at, 1, 10) >= ?
112
+ GROUP BY day, buyer_identity
113
+ ORDER BY day, buyer_identity`)
114
+ .all(sinceDay);
115
+ return rows.map((row) => ({ day: row.day, buyer_identity: row.buyer_identity }));
116
+ }
106
117
  /** SKU 热度榜(按触达事件数降序,sku 升序兜底,截断 limit)。 */
107
118
  topSkus(sinceDay, limit) {
108
119
  const rows = this.db
@@ -1 +1 @@
1
- {"version":3,"file":"stats-store.js","sourceRoot":"","sources":["../../src/merchant/stats-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stats-store.js","sourceRoot":"","sources":["../../src/merchant/stats-store.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  /**
17
- * A2A v0.4 candidate model (docs/kiwi-a2a-architecture-baseline.md §7).
17
+ * A2A v0.4 candidate model (docs/kiwi-a2a-architecture-baseline-rev1.3.md §7).
18
18
  *
19
19
  * ActionCandidate is the unified base class semantics: "Agent 建议执行、但尚未
20
20
  * 真正执行的外部有副作用动作" — an external side-effectful action the agent
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  /**
17
- * Operator control plane types (docs/operator-tui-v0.2.md §5–§10).
17
+ * Operator control plane types (operator control-plane design §5–§10).
18
18
  *
19
19
  * Three state domains stay separate: the marketplace conversation (owned by
20
20
  * shopping-cli), the operator session (this private event stream), and the
@@ -41,8 +41,8 @@ export declare const DEFAULT_PROFILE_PATH: string;
41
41
  * profile 覆盖成测试 merchant)。
42
42
  */
43
43
  export declare function writeDefaultProfile(yaml: string, profilePath?: string): void;
44
- /** package.json / USAGE 同步的产品版本。 */
45
- export declare const PRODUCT_VERSION = "0.7.22";
44
+ /** package.json 是发布版本的唯一来源,避免 CLI 与正式安装包版本漂移。 */
45
+ export declare const PRODUCT_VERSION: string;
46
46
  /**
47
47
  * 缺省 kiwi-catalog 地址(单一来源,cli.ts 各处解析一致)。
48
48
  *
@@ -30,6 +30,7 @@ import { spawnSync } from "node:child_process";
30
30
  import { mkdirSync, writeFileSync } from "node:fs";
31
31
  import { homedir } from "node:os";
32
32
  import path from "node:path";
33
+ import packageJson from "../package.json" with { type: "json" };
33
34
  import { EXIT } from "./exit-codes.js";
34
35
  import { SHOPPING_CLI_COMPAT, compatRangeText, versionInRange } from "./product-compat.js";
35
36
  /**
@@ -50,8 +51,8 @@ export function writeDefaultProfile(yaml, profilePath) {
50
51
  mkdirSync(path.dirname(target), { recursive: true, mode: 0o700 });
51
52
  writeFileSync(target, yaml, { mode: 0o600 });
52
53
  }
53
- /** package.json / USAGE 同步的产品版本。 */
54
- export const PRODUCT_VERSION = "0.7.22";
54
+ /** package.json 是发布版本的唯一来源,避免 CLI 与正式安装包版本漂移。 */
55
+ export const PRODUCT_VERSION = packageJson.version;
55
56
  /**
56
57
  * 缺省 kiwi-catalog 地址(单一来源,cli.ts 各处解析一致)。
57
58
  *
@@ -73,11 +74,12 @@ Usage:
73
74
  Agent;--catalog/--limit/--category/--region)
74
75
  kiwi buyer tasks [--data-dir <dir>] [D4] 查看 Buyer 任务(start 运行后)
75
76
  kiwi buyer supplier save <merchant-id> [M1] 保存供应商(不轮询;经 --catalog 解析)
76
- kiwi buyer supplier watch <merchant-id> [--query <词>] [--region <区域>] [--interval <秒≥3600>]
77
+ kiwi buyer supplier watch <merchant-id> [--query <词>] [--region <区域>] [--interval <秒≥3600>] [--expires 90d]
77
78
  [M1] 建立观察关系(人类确认;非交互需 --yes)
78
79
  kiwi buyer supplier prefer <merchant-id> [--scope <范围>] [--expires 90d]
79
80
  [M1] 设为偏好供应商(人类确认;非交互需 --yes)
80
81
  kiwi buyer supplier list [M1] 查看本地供应商关系
82
+ kiwi buyer supplier metrics [M0] 供应商关系指标(§14 口径,本地只读)
81
83
  kiwi buyer supplier pause <relationship-id>
82
84
  [M1] 暂停观察
83
85
  kiwi buyer supplier remove <relationship-id>
@@ -1 +1 @@
1
- {"version":3,"file":"product-cli.js","sourceRoot":"","sources":["../src/product-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"product-cli.js","sourceRoot":"","sources":["../src/product-cli.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,8 @@ export interface SupplierWatchOptions extends SupplierCommandOptions {
44
44
  region?: string;
45
45
  /** 轮询间隔(秒);缺省 6h,下限 1h(§8:不做分钟级轮询)。 */
46
46
  intervalSeconds?: number;
47
+ /** 如 "90d";缺省 90d,主动观察关系不允许无限期。 */
48
+ expires?: string;
47
49
  yes?: boolean;
48
50
  confirm?: () => Promise<boolean>;
49
51
  }
@@ -73,3 +75,74 @@ export declare function supplierPause(options: SupplierIdOptions): Promise<Suppl
73
75
  * 若将来存在有效 receipt,先 best-effort revoke 但远端不可达不阻塞本地删除。
74
76
  */
75
77
  export declare function supplierRemove(options: SupplierIdOptions): Promise<SupplierSummary>;
78
+ export interface SupplierMetricsOptions extends SupplierCommandOptions {
79
+ /** 测试注入时钟;缺省真实时间。 */
80
+ now?: () => string;
81
+ }
82
+ /** 比率指标:永远给出分子/分母;分母为 0 时 value=null(不虚报 0 或 1)。 */
83
+ export interface RatioMetric {
84
+ value: number | null;
85
+ numerator: number;
86
+ denominator: number;
87
+ note?: string;
88
+ }
89
+ export interface SupplierMetricsReport {
90
+ generated_at: string;
91
+ principal_id: string;
92
+ /** Qualified RFQ 的可计算代理口径(仓库内无更严格定义)。 */
93
+ qualified_rfq_definition: string;
94
+ successful_rfqs: number;
95
+ failed_rfqs: number;
96
+ /** §14 save-after-RFQ conversion:7 天内同 merchant 建立关系的建议占比。 */
97
+ save_after_rfq: RatioMetric;
98
+ /** §14 active watched/preferred relationships + 全量 type×status 分布。 */
99
+ relationships_by_type_status: {
100
+ total: number;
101
+ active_watched_preferred: number;
102
+ buckets: {
103
+ relationship_type: string;
104
+ status: string;
105
+ count: number;
106
+ }[];
107
+ };
108
+ /** §14 7/30 天关系复用率(分母=建立已满窗口的关系,避免新关系虚低)。 */
109
+ reuse_7d: RatioMetric;
110
+ reuse_30d: RatioMetric;
111
+ /** §14 relationship-assisted Qualified RFQ。 */
112
+ relationship_assisted_rfq: RatioMetric;
113
+ /** §14 重复 Merchant / Buyer(单 principal 本地视角,buyer 恒为 1)。 */
114
+ repeat_merchants: {
115
+ merchants_with_successful_rfq: number;
116
+ merchants_with_repeat_rfq: number;
117
+ successful_rfqs: number;
118
+ unidentified_merchant_rfqs: number;
119
+ };
120
+ observations: {
121
+ total: number;
122
+ by_kind: Record<string, number>;
123
+ /** 可计算代理:observation 对应关系当前仍是 active watched 的占比。 */
124
+ on_active_watched: RatioMetric;
125
+ /** 严格通知命中率本地无记录,恒 null。 */
126
+ notification_hit_rate: {
127
+ value: null;
128
+ note: string;
129
+ };
130
+ };
131
+ /** §14 暂停率和删除率(占全部关系,含 deleted)。 */
132
+ lifecycle: {
133
+ paused: RatioMetric;
134
+ deleted: RatioMetric;
135
+ };
136
+ /** §14 identity-change review 与 stale/unreachable 代理。 */
137
+ health: {
138
+ review_required: RatioMetric;
139
+ degraded_sources: RatioMetric;
140
+ };
141
+ }
142
+ /**
143
+ * `kiwi buyer supplier metrics`(§13 M0 / §14):Buyer 本地只读指标。全部数据
144
+ * 来自本机 state.sqlite(supplier_relationships / supplier_observations /
145
+ * supplier_observation_state / task_events),单 principal 视角。算不出来的
146
+ * 指标如实给 null + 原因,不编造。
147
+ */
148
+ export declare function supplierMetrics(options?: SupplierMetricsOptions): Promise<SupplierMetricsReport>;
@@ -26,7 +26,7 @@
26
26
  import { existsSync } from "node:fs";
27
27
  import path from "node:path";
28
28
  import { agentDataDir, openAgentDatabase } from "./agent/agent-db.js";
29
- import { SupplierRelationshipStore, } from "./agent/supplier/store.js";
29
+ import { SupplierRelationshipStore, assertSupplierEndpointAuthority, } from "./agent/supplier/store.js";
30
30
  import { KiwiCatalogSource } from "./discovery/catalog-source/kiwi-source.js";
31
31
  import { DEFAULT_CATALOG_URL } from "./product-cli.js";
32
32
  function openSupplierStore(options) {
@@ -44,7 +44,7 @@ function openSupplierStore(options) {
44
44
  throw new Error("本地 Buyer principal 不存在——先运行 `kiwi buyer start` 完成初始化");
45
45
  }
46
46
  const store = new SupplierRelationshipStore({ db, principalId: principal.principal_id });
47
- return { db, store };
47
+ return { db, store, principalId: principal.principal_id };
48
48
  }
49
49
  catch (err) {
50
50
  db.close();
@@ -58,6 +58,16 @@ async function resolveMerchant(catalogUrl, merchantId) {
58
58
  if (record.agent_card_url === undefined) {
59
59
  throw new Error(`catalog record ${merchantId} 没有 agent_card_url,无法建立供应商关系`);
60
60
  }
61
+ if (record.administrative_state !== "active" ||
62
+ record.freshness_state === "unreachable" ||
63
+ record.verification_level === "discovered") {
64
+ throw new Error(`catalog record ${merchantId} 当前不可建立自动供应商关系` +
65
+ `(admin=${record.administrative_state}, freshness=${record.freshness_state}, verification=${record.verification_level})`);
66
+ }
67
+ assertSupplierEndpointAuthority(record.canonical_domain, record.agent_card_url);
68
+ if (record.ucp_profile_url !== undefined) {
69
+ assertSupplierEndpointAuthority(record.canonical_domain, record.ucp_profile_url);
70
+ }
61
71
  return {
62
72
  merchant_id: record.merchant_id ?? record.catalog_agent_id,
63
73
  catalog_agent_id: record.catalog_agent_id,
@@ -105,6 +115,7 @@ function parseExpiresDays(value) {
105
115
  }
106
116
  return new Date(Date.now() + days * 24 * 3600 * 1000).toISOString();
107
117
  }
118
+ const DEFAULT_ACTIVE_RELATIONSHIP_EXPIRY = "90d";
108
119
  /** `kiwi buyer supplier save <merchant-id>`:保存身份,不轮询(§2.1)。 */
109
120
  export async function supplierSave(options) {
110
121
  const resolved = await resolveMerchant(options.catalogUrl ?? DEFAULT_CATALOG_URL, options.merchantId);
@@ -153,6 +164,7 @@ export async function supplierWatch(options) {
153
164
  ? { interval_seconds: options.intervalSeconds }
154
165
  : {},
155
166
  consent_source: "human_explicit",
167
+ expires_at: parseExpiresDays(options.expires ?? DEFAULT_ACTIVE_RELATIONSHIP_EXPIRY),
156
168
  }));
157
169
  }
158
170
  finally {
@@ -177,9 +189,7 @@ export async function supplierPrefer(options) {
177
189
  catalog_agent_id: resolved.catalog_agent_id,
178
190
  ...(options.scope !== undefined ? { procurement_scope: options.scope } : {}),
179
191
  },
180
- ...(options.expires !== undefined
181
- ? { expires_at: parseExpiresDays(options.expires) }
182
- : {}),
192
+ expires_at: parseExpiresDays(options.expires ?? DEFAULT_ACTIVE_RELATIONSHIP_EXPIRY),
183
193
  consent_source: "human_explicit",
184
194
  }));
185
195
  }
@@ -230,4 +240,213 @@ export async function supplierRemove(options) {
230
240
  db.close();
231
241
  }
232
242
  }
243
+ // ---- M0 指标(pull-relationship 设计 v0.1 §13/§14) ------------------------------
244
+ const DAY_MS = 24 * 3600 * 1000;
245
+ function ratio(numerator, denominator, note) {
246
+ const m = {
247
+ value: denominator === 0 ? null : numerator / denominator,
248
+ numerator,
249
+ denominator,
250
+ };
251
+ if (note !== undefined)
252
+ m.note = note;
253
+ return m;
254
+ }
255
+ /**
256
+ * a2a_negotiated 事件没有 merchant_id 字段——用 catalog_agent_id(对
257
+ * relationship.merchant_id 或 scope.catalog_agent_id)或 agent_card_url 匹配
258
+ * merchant(代理口径,§14 注明)。
259
+ */
260
+ function rfqMatchesRelationship(payload, rel) {
261
+ const caid = payload.catalog_agent_id;
262
+ if (typeof caid === "string" &&
263
+ caid !== "" &&
264
+ (rel.merchant_id === caid || rel.scope.catalog_agent_id === caid)) {
265
+ return true;
266
+ }
267
+ const cardUrl = payload.agent_card_url;
268
+ return typeof cardUrl === "string" && cardUrl !== "" && rel.agent_card_url === cardUrl;
269
+ }
270
+ /**
271
+ * `kiwi buyer supplier metrics`(§13 M0 / §14):Buyer 本地只读指标。全部数据
272
+ * 来自本机 state.sqlite(supplier_relationships / supplier_observations /
273
+ * supplier_observation_state / task_events),单 principal 视角。算不出来的
274
+ * 指标如实给 null + 原因,不编造。
275
+ */
276
+ export async function supplierMetrics(options = {}) {
277
+ const { db, store, principalId } = openSupplierStore(options);
278
+ try {
279
+ const now = new Date(Date.parse(options.now !== undefined ? options.now() : new Date().toISOString())).toISOString();
280
+ const nowMs = Date.parse(now);
281
+ const relationships = store.listRelationships({ includeDeleted: true });
282
+ const eventRows = db
283
+ .prepare(`SELECT e.type AS type, e.payload_json AS payload_json, e.created_at AS created_at
284
+ FROM task_events e JOIN buyer_tasks t ON t.task_id = e.task_id
285
+ WHERE t.principal_id = ? AND e.type IN ('a2a_negotiated', 'supplier_save_suggested')
286
+ ORDER BY e.created_at, e.event_id`)
287
+ .all(principalId);
288
+ const successfulRfqs = [];
289
+ let failedRfqs = 0;
290
+ const suggestions = [];
291
+ for (const row of eventRows) {
292
+ const payload = JSON.parse(row.payload_json);
293
+ if (row.type === "supplier_save_suggested") {
294
+ suggestions.push({ created_at: row.created_at, payload });
295
+ }
296
+ else if (payload.ok === true) {
297
+ successfulRfqs.push({ created_at: row.created_at, payload });
298
+ }
299
+ else {
300
+ failedRfqs += 1;
301
+ }
302
+ }
303
+ // a. save-after-RFQ conversion:建议后 7 天内同 merchant 建立关系(含已删除,
304
+ // 转化是历史事实;created_at 严格晚于建议时间)。
305
+ let converted = 0;
306
+ for (const s of suggestions) {
307
+ const merchant = s.payload.merchant_id;
308
+ if (typeof merchant !== "string")
309
+ continue;
310
+ const t = Date.parse(s.created_at);
311
+ const hit = relationships.some((r) => r.merchant_id === merchant &&
312
+ Date.parse(r.created_at) > t &&
313
+ Date.parse(r.created_at) <= t + 7 * DAY_MS);
314
+ if (hit)
315
+ converted += 1;
316
+ }
317
+ const saveAfterRfq = ratio(converted, suggestions.length, "窗口=建议事件后 7 天");
318
+ // b. type × status 分布。
319
+ const bucketMap = new Map();
320
+ let activeWatchedPreferred = 0;
321
+ for (const r of relationships) {
322
+ const key = `${r.relationship_type}/${r.status}`;
323
+ bucketMap.set(key, (bucketMap.get(key) ?? 0) + 1);
324
+ if (r.status === "active" &&
325
+ (r.relationship_type === "watched" || r.relationship_type === "preferred")) {
326
+ activeWatchedPreferred += 1;
327
+ }
328
+ }
329
+ const buckets = [...bucketMap.entries()]
330
+ .map(([key, count]) => {
331
+ const [relationship_type, status] = key.split("/");
332
+ return { relationship_type, status, count };
333
+ })
334
+ .sort((a, b) => `${a.relationship_type}/${a.status}`.localeCompare(`${b.relationship_type}/${b.status}`));
335
+ // c. 7/30 天复用:分母=建立已满窗口的关系(含非 active,复用是历史事实)。
336
+ const reuse = (days) => {
337
+ const eligible = relationships.filter((r) => Date.parse(r.created_at) + days * DAY_MS <= nowMs);
338
+ let reused = 0;
339
+ for (const r of eligible) {
340
+ const t0 = Date.parse(r.created_at);
341
+ const hit = successfulRfqs.some((e) => {
342
+ const t = Date.parse(e.created_at);
343
+ return t >= t0 && t <= t0 + days * DAY_MS && rfqMatchesRelationship(e.payload, r);
344
+ });
345
+ if (hit)
346
+ reused += 1;
347
+ }
348
+ return ratio(reused, eligible.length, "merchant 经 catalog_agent_id/agent_card_url 匹配(a2a_negotiated 无 merchant_id,代理口径)");
349
+ };
350
+ // d. relationship-assisted:RFQ 发生前已建立且当前仍 active 的同 merchant 关系。
351
+ // 历史状态不可重建,用当前 status='active' 代理(口径文档注明)。
352
+ let assisted = 0;
353
+ for (const e of successfulRfqs) {
354
+ const t = Date.parse(e.created_at);
355
+ const hit = relationships.some((r) => r.status === "active" &&
356
+ Date.parse(r.created_at) <= t &&
357
+ rfqMatchesRelationship(e.payload, r));
358
+ if (hit)
359
+ assisted += 1;
360
+ }
361
+ const assistedMetric = ratio(assisted, successfulRfqs.length, "active 取当前状态(历史状态不可重建,代理口径)");
362
+ // e. 重复 Merchant:按 catalog_agent_id(缺省 agent_card_url)分组成功 RFQ。
363
+ const byMerchant = new Map();
364
+ let unidentified = 0;
365
+ for (const e of successfulRfqs) {
366
+ const id = e.payload.catalog_agent_id ?? e.payload.agent_card_url;
367
+ if (typeof id === "string" && id !== "") {
368
+ byMerchant.set(id, (byMerchant.get(id) ?? 0) + 1);
369
+ }
370
+ else {
371
+ unidentified += 1;
372
+ }
373
+ }
374
+ let repeatMerchants = 0;
375
+ for (const n of byMerchant.values()) {
376
+ if (n >= 2)
377
+ repeatMerchants += 1;
378
+ }
379
+ // f. observation 面。
380
+ const obsRows = db
381
+ .prepare(`SELECT o.kind AS kind, r.relationship_type AS relationship_type, r.status AS status
382
+ FROM supplier_observations o
383
+ JOIN supplier_relationships r ON r.relationship_id = o.relationship_id
384
+ WHERE r.principal_id = ?`)
385
+ .all(principalId);
386
+ const byKind = {};
387
+ let onActiveWatched = 0;
388
+ for (const o of obsRows) {
389
+ byKind[o.kind] = (byKind[o.kind] ?? 0) + 1;
390
+ if (o.status === "active" && o.relationship_type === "watched")
391
+ onActiveWatched += 1;
392
+ }
393
+ // g. lifecycle(分母含 deleted)。
394
+ const total = relationships.length;
395
+ const paused = relationships.filter((r) => r.status === "paused").length;
396
+ const deleted = relationships.filter((r) => r.status === "deleted").length;
397
+ // h. health。
398
+ const reviewRequired = relationships.filter((r) => r.status === "review_required").length;
399
+ const stateRows = db
400
+ .prepare(`SELECT s.failure_count AS failure_count, s.backoff_until AS backoff_until
401
+ FROM supplier_observation_state s
402
+ JOIN supplier_relationships r ON r.relationship_id = s.relationship_id
403
+ WHERE r.principal_id = ?`)
404
+ .all(principalId);
405
+ const degraded = stateRows.filter((s) => s.failure_count > 0 ||
406
+ (s.backoff_until !== null && Date.parse(s.backoff_until) > nowMs)).length;
407
+ return {
408
+ generated_at: now,
409
+ principal_id: principalId,
410
+ qualified_rfq_definition: "代理口径:task_events 中 type='a2a_negotiated' 且 payload.ok=true 的成功终态事件" +
411
+ "(仓库内无更严格的 Qualified RFQ 定义)",
412
+ successful_rfqs: successfulRfqs.length,
413
+ failed_rfqs: failedRfqs,
414
+ save_after_rfq: saveAfterRfq,
415
+ relationships_by_type_status: {
416
+ total,
417
+ active_watched_preferred: activeWatchedPreferred,
418
+ buckets,
419
+ },
420
+ reuse_7d: reuse(7),
421
+ reuse_30d: reuse(30),
422
+ relationship_assisted_rfq: assistedMetric,
423
+ repeat_merchants: {
424
+ merchants_with_successful_rfq: byMerchant.size,
425
+ merchants_with_repeat_rfq: repeatMerchants,
426
+ successful_rfqs: successfulRfqs.length,
427
+ unidentified_merchant_rfqs: unidentified,
428
+ },
429
+ observations: {
430
+ total: obsRows.length,
431
+ by_kind: byKind,
432
+ on_active_watched: ratio(onActiveWatched, obsRows.length, "代理口径:observation 对应关系当前仍是 active watched 的占比"),
433
+ notification_hit_rate: {
434
+ value: null,
435
+ note: "严格命中率不可计算:本地不记录通知是否触达/被用户采纳",
436
+ },
437
+ },
438
+ lifecycle: {
439
+ paused: ratio(paused, total),
440
+ deleted: ratio(deleted, total),
441
+ },
442
+ health: {
443
+ review_required: ratio(reviewRequired, total),
444
+ degraded_sources: ratio(degraded, stateRows.length, "stale/unreachable 代理:failure_count>0 或 backoff_until>now"),
445
+ },
446
+ };
447
+ }
448
+ finally {
449
+ db.close();
450
+ }
451
+ }
233
452
  //# sourceMappingURL=product-supplier.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"product-supplier.js","sourceRoot":"","sources":["../src/product-supplier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"product-supplier.js","sourceRoot":"","sources":["../src/product-supplier.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ export interface ScriptedFake {
35
35
  export declare function createScriptedFakeStreamFn(responses: FauxResponseStep[]): ScriptedFake;
36
36
  /**
37
37
  * Structured influence of applied operator strategy directives on candidate
38
- * generation (docs/operator-tui-v0.2.md §7). Compiled by the operator runner
38
+ * generation (operator control-plane design §7). Compiled by the operator runner
39
39
  * from the session's directive list; never widens HardPolicy by itself — the
40
40
  * authoritative policy gates still run on the profile at submit time.
41
41
  */
@@ -0,0 +1,11 @@
1
+ /**
2
+ * JWK(RFC 7517)结构类型。
3
+ *
4
+ * @types/node ≥26 不再从 `node:crypto` 顶层导出 `JsonWebKey`,改为
5
+ * `crypto.webcrypto` 命名空间下的 `webcrypto.JsonWebKey`。此处集中 re-export,
6
+ * 并补 RFC 7517 的 `kid`(W3C JsonWebKey 未含,JWKS 接缝按 kid 匹配需要它)。
7
+ */
8
+ import type { webcrypto } from "node:crypto";
9
+ export type JsonWebKey = webcrypto.JsonWebKey & {
10
+ kid?: string;
11
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=jwk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwk.js","sourceRoot":"","sources":["../../../src/trust/identity/jwk.ts"],"names":[],"mappings":""}
@@ -24,7 +24,8 @@
24
24
  * 是否强制 JWS 由 TrustPolicy.requireCardJws(level) 决定(§31),本模块只提供
25
25
  * 「验签 + 卡片绑定」能力,不做强制决策。
26
26
  */
27
- import { KeyObject, type JsonWebKey } from "node:crypto";
27
+ import { KeyObject } from "node:crypto";
28
+ import type { JsonWebKey } from "./jwk.js";
28
29
  import type { AgentCard } from "../../discovery/agent-card/index.js";
29
30
  import { type KeyResolver, type SigningKey } from "./keys.js";
30
31
  export type JwsErrorCode = "malformed" | "unsupported_algorithm" | "missing_key" | "invalid_signature";