@icen.ai/ui 0.8.1 → 0.9.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 (141) hide show
  1. package/AGENTS.md +49 -6
  2. package/README.md +12 -9
  3. package/dist/behaviors/ai-branch.d.mts +19 -0
  4. package/dist/behaviors/ai-branch.mjs +217 -0
  5. package/dist/behaviors/ai-chat.d.mts +8 -6
  6. package/dist/behaviors/ai-chat.mjs +68 -8
  7. package/dist/behaviors/ai-composer.mjs +108 -20
  8. package/dist/behaviors/ai-feedback.d.mts +26 -0
  9. package/dist/behaviors/ai-feedback.mjs +303 -0
  10. package/dist/behaviors/ai-panel.d.mts +15 -1
  11. package/dist/behaviors/ai-panel.mjs +26 -0
  12. package/dist/behaviors/ai-threads.d.mts +38 -0
  13. package/dist/behaviors/ai-threads.mjs +319 -0
  14. package/dist/behaviors/ai-tool.mjs +5 -0
  15. package/dist/behaviors/ai-tools.mjs +5 -0
  16. package/dist/behaviors/charts.d.mts +103 -1
  17. package/dist/behaviors/charts.mjs +795 -0
  18. package/dist/behaviors/events.d.mts +193 -0
  19. package/dist/behaviors/kb-access.d.mts +34 -0
  20. package/dist/behaviors/kb-access.mjs +569 -0
  21. package/dist/behaviors/kb-acl.d.mts +50 -0
  22. package/dist/behaviors/kb-acl.mjs +405 -0
  23. package/dist/behaviors/kb-answer.d.mts +38 -0
  24. package/dist/behaviors/kb-answer.mjs +2055 -0
  25. package/dist/behaviors/kb-audit.d.mts +23 -0
  26. package/dist/behaviors/kb-audit.mjs +375 -0
  27. package/dist/behaviors/kb-canvas.d.mts +44 -0
  28. package/dist/behaviors/kb-canvas.mjs +589 -0
  29. package/dist/behaviors/kb-chain.d.mts +15 -0
  30. package/dist/behaviors/kb-chain.mjs +270 -0
  31. package/dist/behaviors/kb-checkpoint.d.mts +16 -0
  32. package/dist/behaviors/kb-checkpoint.mjs +342 -0
  33. package/dist/behaviors/kb-chunks.d.mts +31 -0
  34. package/dist/behaviors/kb-chunks.mjs +475 -0
  35. package/dist/behaviors/kb-citation.d.mts +38 -0
  36. package/dist/behaviors/kb-citation.mjs +677 -0
  37. package/dist/behaviors/kb-clarify.d.mts +20 -0
  38. package/dist/behaviors/kb-clarify.mjs +248 -0
  39. package/dist/behaviors/kb-conflict.d.mts +22 -0
  40. package/dist/behaviors/kb-conflict.mjs +284 -0
  41. package/dist/behaviors/kb-connector.d.mts +17 -0
  42. package/dist/behaviors/kb-connector.mjs +375 -0
  43. package/dist/behaviors/kb-core.d.mts +529 -0
  44. package/dist/behaviors/kb-core.mjs +890 -0
  45. package/dist/behaviors/kb-eval.d.mts +22 -0
  46. package/dist/behaviors/kb-eval.mjs +408 -0
  47. package/dist/behaviors/kb-explain.d.mts +11 -0
  48. package/dist/behaviors/kb-explain.mjs +243 -0
  49. package/dist/behaviors/kb-filter.d.mts +31 -0
  50. package/dist/behaviors/kb-filter.mjs +587 -0
  51. package/dist/behaviors/kb-gap.d.mts +27 -0
  52. package/dist/behaviors/kb-gap.mjs +273 -0
  53. package/dist/behaviors/kb-hittest.d.mts +34 -0
  54. package/dist/behaviors/kb-hittest.mjs +409 -0
  55. package/dist/behaviors/kb-metadata.d.mts +29 -0
  56. package/dist/behaviors/kb-metadata.mjs +326 -0
  57. package/dist/behaviors/kb-passage.d.mts +41 -0
  58. package/dist/behaviors/kb-passage.mjs +529 -0
  59. package/dist/behaviors/kb-pipeline.d.mts +18 -0
  60. package/dist/behaviors/kb-pipeline.mjs +381 -0
  61. package/dist/behaviors/kb-qa.d.mts +26 -0
  62. package/dist/behaviors/kb-qa.mjs +332 -0
  63. package/dist/behaviors/kb-rerank.d.mts +20 -0
  64. package/dist/behaviors/kb-rerank.mjs +315 -0
  65. package/dist/behaviors/kb-retrieval.d.mts +49 -0
  66. package/dist/behaviors/kb-retrieval.mjs +746 -0
  67. package/dist/behaviors/kb-review.d.mts +44 -0
  68. package/dist/behaviors/kb-review.mjs +451 -0
  69. package/dist/behaviors/kb-sandbox.d.mts +33 -0
  70. package/dist/behaviors/kb-sandbox.mjs +325 -0
  71. package/dist/behaviors/kb-segment.d.mts +32 -0
  72. package/dist/behaviors/kb-segment.mjs +499 -0
  73. package/dist/behaviors/kb-sources.d.mts +27 -0
  74. package/dist/behaviors/kb-sources.mjs +373 -0
  75. package/dist/behaviors/kb-sql.d.mts +43 -0
  76. package/dist/behaviors/kb-sql.mjs +948 -0
  77. package/dist/behaviors/kb-trace.d.mts +16 -0
  78. package/dist/behaviors/kb-trace.mjs +414 -0
  79. package/dist/behaviors/kb-visibility.d.mts +44 -0
  80. package/dist/behaviors/kb-visibility.mjs +403 -0
  81. package/dist/behaviors/kb-who-can.d.mts +32 -0
  82. package/dist/behaviors/kb-who-can.mjs +379 -0
  83. package/dist/components/ai-branch.mjs +3 -0
  84. package/dist/components/ai-chat.css +295 -0
  85. package/dist/components/ai-feedback.mjs +3 -0
  86. package/dist/components/ai-panel.css +217 -0
  87. package/dist/components/ai-threads.mjs +3 -0
  88. package/dist/components/chart-graph.css +57 -0
  89. package/dist/components/chart-graph.mjs +4 -0
  90. package/dist/components/chart-map.mjs +3 -0
  91. package/dist/components/chart-scatter.mjs +1 -1
  92. package/dist/components/charts.css +32 -0
  93. package/dist/components/charts.mjs +1 -0
  94. package/dist/components/kb-access.mjs +4 -0
  95. package/dist/components/kb-acl.mjs +4 -0
  96. package/dist/components/kb-agent.css +481 -0
  97. package/dist/components/kb-answer.mjs +4 -0
  98. package/dist/components/kb-audit.mjs +4 -0
  99. package/dist/components/kb-canvas.mjs +4 -0
  100. package/dist/components/kb-chain.mjs +4 -0
  101. package/dist/components/kb-checkpoint.mjs +4 -0
  102. package/dist/components/kb-chunks.mjs +4 -0
  103. package/dist/components/kb-citation.mjs +4 -0
  104. package/dist/components/kb-clarify.mjs +4 -0
  105. package/dist/components/kb-conflict.mjs +4 -0
  106. package/dist/components/kb-connector.mjs +4 -0
  107. package/dist/components/kb-data.css +649 -0
  108. package/dist/components/kb-eval.mjs +4 -0
  109. package/dist/components/kb-explain.mjs +4 -0
  110. package/dist/components/kb-filter.mjs +4 -0
  111. package/dist/components/kb-gap.mjs +4 -0
  112. package/dist/components/kb-ground.css +566 -0
  113. package/dist/components/kb-hittest.mjs +4 -0
  114. package/dist/components/kb-ingest.css +898 -0
  115. package/dist/components/kb-metadata.mjs +4 -0
  116. package/dist/components/kb-ops.css +548 -0
  117. package/dist/components/kb-passage.mjs +4 -0
  118. package/dist/components/kb-perm.css +444 -0
  119. package/dist/components/kb-pipeline.mjs +4 -0
  120. package/dist/components/kb-qa.mjs +4 -0
  121. package/dist/components/kb-rerank.mjs +4 -0
  122. package/dist/components/kb-retrieval.mjs +4 -0
  123. package/dist/components/kb-review.mjs +4 -0
  124. package/dist/components/kb-sandbox.mjs +4 -0
  125. package/dist/components/kb-search.css +940 -0
  126. package/dist/components/kb-segment.mjs +4 -0
  127. package/dist/components/kb-sources.mjs +4 -0
  128. package/dist/components/kb-sql.mjs +4 -0
  129. package/dist/components/kb-trace.mjs +4 -0
  130. package/dist/components/kb-visibility.mjs +4 -0
  131. package/dist/components/kb-who-can.mjs +4 -0
  132. package/dist/components/kb.css +252 -0
  133. package/dist/components/kb.mjs +9 -0
  134. package/dist/index.d.mts +37 -2
  135. package/dist/index.mjs +8555 -205
  136. package/dist/registry.json +325 -3
  137. package/dist/ui.css +5451 -45
  138. package/docs/research/2026-10-03-ai-kb-components.md +392 -0
  139. package/docs/research/2026-10-03-kb-permissions.md +992 -0
  140. package/docs/spec/kb-family.md +443 -0
  141. package/package.json +2 -2
@@ -2,6 +2,7 @@ import { ChartEventDetail } from './charts.js';
2
2
  import { AiUsage } from './ai-core.js';
3
3
  import { AiDoneEventDetail } from './ai-provider.js';
4
4
  import { AiComposerRefSource } from './ai-composer.js';
5
+ import { KbCitation, KbSegmentConfig, KbRetrievalQuery, KbFilterNode, KbCheckpointScope, KbSandboxMessage, KbChainStep, KbAclEntry, KbIdentity, KbAclDecision, KbAccessRequest, KbRole, KbAuditChannel, KbHygieneIssue } from './kb-core.js';
5
6
  import './popover.js';
6
7
  import './ai-panel.js';
7
8
 
@@ -284,6 +285,198 @@ interface IcenEventMap {
284
285
  };
285
286
  'icen:ai-usage': AiUsage;
286
287
  'icen:ai-done': AiDoneEventDetail;
288
+ 'icen:ai-thread-select': {
289
+ key: string;
290
+ };
291
+ 'icen:ai-thread-action': {
292
+ action: 'rename' | 'pin' | 'archive' | 'delete' | 'move';
293
+ key: string;
294
+ };
295
+ 'icen:ai-feedback': {
296
+ value: 1 | -1 | 0;
297
+ reason?: string;
298
+ el?: HTMLElement;
299
+ };
300
+ 'icen:ai-branch-change': {
301
+ index: number;
302
+ count: number;
303
+ };
304
+ 'icen:kb-citation-open': {
305
+ citation: KbCitation;
306
+ };
307
+ 'icen:kb-source-open': {
308
+ source: KbCitation;
309
+ };
310
+ 'icen:kb-passage-jump': {
311
+ citation: KbCitation;
312
+ };
313
+ 'icen:kb-passage-close': Record<string, never>;
314
+ 'icen:kb-pipeline-toggle': {
315
+ el: HTMLElement;
316
+ open: boolean;
317
+ };
318
+ 'icen:kb-pipeline-rerun': {
319
+ documentId: string;
320
+ };
321
+ 'icen:kb-chunk-toggle': {
322
+ chunkId: string;
323
+ available: boolean;
324
+ };
325
+ 'icen:kb-chunk-edit': {
326
+ chunkId: string;
327
+ };
328
+ 'icen:kb-chunk-remove': {
329
+ chunkId: string;
330
+ };
331
+ 'icen:kb-chunk-add': {
332
+ documentId: string;
333
+ };
334
+ 'icen:kb-chunk-search': {
335
+ mode: 'text' | 'vector';
336
+ query: string;
337
+ };
338
+ 'icen:kb-segment-change': {
339
+ config: KbSegmentConfig;
340
+ };
341
+ 'icen:kb-connector-sync': {
342
+ connectorId: string;
343
+ };
344
+ 'icen:kb-connector-reauth': {
345
+ connectorId: string;
346
+ };
347
+ 'icen:kb-connector-schedule': {
348
+ connectorId: string;
349
+ schedule: string;
350
+ };
351
+ 'icen:kb-metadata-change': {
352
+ action: 'define' | 'bind' | 'remove';
353
+ key: string;
354
+ };
355
+ 'icen:kb-qa-change': {
356
+ op: 'add' | 'edit' | 'remove';
357
+ index: number;
358
+ };
359
+ 'icen:kb-qa-import': {
360
+ source: string;
361
+ };
362
+ 'icen:kb-retrieval-run': {
363
+ query: KbRetrievalQuery;
364
+ };
365
+ 'icen:kb-filter-change': {
366
+ node: KbFilterNode | null;
367
+ valid: boolean;
368
+ };
369
+ 'icen:kb-rerank-toggle': {
370
+ enabled: boolean;
371
+ model?: string;
372
+ };
373
+ 'icen:kb-hittest-add': {
374
+ question: string;
375
+ };
376
+ 'icen:kb-hittest-run': Record<string, never>;
377
+ 'icen:kb-sql-edit': {
378
+ sql: string;
379
+ };
380
+ 'icen:kb-sql-rerun': {
381
+ sql: string;
382
+ };
383
+ 'icen:kb-clarify-answer': {
384
+ id?: string;
385
+ value: string;
386
+ label: string;
387
+ };
388
+ 'icen:kb-verified-open': {
389
+ assetId: string;
390
+ };
391
+ 'icen:kb-explain-toggle': {
392
+ el: HTMLElement;
393
+ open: boolean;
394
+ };
395
+ 'icen:kb-trace-select': {
396
+ spanId: string;
397
+ };
398
+ 'icen:kb-trace-toggle': {
399
+ spanId: string;
400
+ open: boolean;
401
+ };
402
+ 'icen:kb-review-assign': {
403
+ taskId: string;
404
+ assignee: string;
405
+ };
406
+ 'icen:kb-review-score': {
407
+ taskId: string;
408
+ name: string;
409
+ value: string | number;
410
+ };
411
+ 'icen:kb-review-submit': {
412
+ taskId: string;
413
+ };
414
+ 'icen:kb-gap-action': {
415
+ query: string;
416
+ action: 'create-doc' | 'add-synonym';
417
+ };
418
+ 'icen:kb-eval-compare': {
419
+ runA: string;
420
+ runB: string;
421
+ };
422
+ 'icen:kb-canvas-ai': {
423
+ instruction: string;
424
+ selection?: {
425
+ text: string;
426
+ };
427
+ };
428
+ 'icen:kb-canvas-version': {
429
+ versionId: string;
430
+ };
431
+ 'icen:kb-checkpoint-restore': {
432
+ checkpointId: string;
433
+ scope: KbCheckpointScope;
434
+ };
435
+ 'icen:kb-sandbox-message': {
436
+ channel: 'in' | 'out';
437
+ payload: KbSandboxMessage;
438
+ };
439
+ 'icen:kb-chain-step': {
440
+ index: number;
441
+ step: KbChainStep;
442
+ };
443
+ 'icen:kb-acl-grant': {};
444
+ 'icen:kb-acl-remove': {
445
+ subject: KbAclEntry['subject'];
446
+ };
447
+ 'icen:kb-acl-inherit': {
448
+ action: 'break' | 'restore';
449
+ };
450
+ 'icen:kb-whocan-check': {
451
+ identity: KbIdentity;
452
+ decision: KbAclDecision;
453
+ };
454
+ 'icen:kb-access-request': {
455
+ request: KbAccessRequest;
456
+ };
457
+ 'icen:kb-access-decide': {
458
+ id: string;
459
+ decision: 'approve' | 'deny';
460
+ role?: KbRole;
461
+ };
462
+ 'icen:kb-access-expire': {
463
+ id: string;
464
+ };
465
+ 'icen:kb-audit-filter': {
466
+ channel: KbAuditChannel | 'all';
467
+ };
468
+ 'icen:kb-audit-export': {
469
+ channel: KbAuditChannel | 'all';
470
+ };
471
+ 'icen:kb-hygiene-action': {
472
+ issue: KbHygieneIssue;
473
+ };
474
+ 'icen:kb-visibility-identity': {
475
+ identity: KbIdentity;
476
+ };
477
+ 'icen:kb-visibility-layer': {
478
+ layer: 'pre' | 'post' | 'none';
479
+ };
287
480
  [key: `icen:${string}`]: unknown;
288
481
  }
289
482
  interface IcenListenOptions {
@@ -0,0 +1,34 @@
1
+ import { KbAccessRequest, KbAccessState, KbRole } from './kb-core.js';
2
+ import './ai-core.js';
3
+
4
+ /** createKbAccess 入参(spec §9.3;request 宽进——素对象经 normalizeAccessRequest 归一) */
5
+ interface KbAccessOpts {
6
+ /** 当前访问请求(内部持有副本,不打脏调用方数据) */
7
+ request: KbAccessRequest | Record<string, unknown>;
8
+ /** requester = 申请人视角(被拒五件套 + 表单);approver = 审批人视角(队列卡)。缺省 requester */
9
+ mode?: 'requester' | 'approver';
10
+ /** 表单提交回调(与 icen:kb-access-request 双通道) */
11
+ onRequest?: (r: KbAccessRequest) => void;
12
+ /** 审批决定回调(与 icen:kb-access-decide 双通道;approve 时 role = 批准档位) */
13
+ onDecide?: (id: string, decision: 'approve' | 'deny', role?: KbRole) => void;
14
+ /** 被拒原因文案(缺省固定模板「此内容仅对授权者开放」——不给受限侧任何更多信息,§9.0.3) */
15
+ deniedHint?: string;
16
+ /** 切换身份回调(宿主关注:切换固定身份集重查权限;不派库事件) */
17
+ onSwitchIdentity?: () => void;
18
+ }
19
+ /** createKbAccess 句柄(函数名冻结于 spec §9.3) */
20
+ interface KbAccessHandle {
21
+ /** 合并更新请求字段(Partial)或整体切状态(单字符串);带过期时间的 granted 会即时派生 expired */
22
+ setState(next: Partial<KbAccessRequest> | KbAccessState): void;
23
+ /** 当前请求(normalize 后的副本;外部修改不影响内部) */
24
+ getState(): KbAccessRequest;
25
+ /** 清空 DOM 与标记(幂等;同一 el 重复 create 会先销毁旧实例) */
26
+ destroy(): void;
27
+ }
28
+ /**
29
+ * 创建访问申请流(requester:被拒五件套 + 表单 + 状态徽章族;approver:审批队列卡)。
30
+ * 快照渲染:setState / 表单交互后整树重建(重建前回填用户已输入的理由/时长,不打断打字)。
31
+ */
32
+ declare function createKbAccess(el: HTMLElement, opts: KbAccessOpts): KbAccessHandle;
33
+
34
+ export { type KbAccessHandle, type KbAccessOpts, createKbAccess };