@freecallai/pro 0.0.0-stage → 0.0.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 (120) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +16 -2
  3. package/dist/FkpRichText.vue_vue_type_script_setup_true_lang-DnknqQTh.js +4115 -0
  4. package/dist/KnowledgeArea-OPR7smbt.js +923 -0
  5. package/dist/ToolForm-CWpUIVTl.js +185 -0
  6. package/dist/choice-DDg5gNtS.js +29 -0
  7. package/dist/guard-BCatAeT4.js +749 -0
  8. package/dist/index-5a9mHHzg.js +41 -0
  9. package/dist/index-BsQLwz91.js +5 -0
  10. package/dist/index-CJlAseSN.js +15 -0
  11. package/dist/index-CzpY61Qj.js +6 -0
  12. package/dist/index-D8bcFtWR.js +6 -0
  13. package/dist/index-DOEijEGU.js +49 -0
  14. package/dist/index-DSgEWJGP.js +6 -0
  15. package/dist/index-DxxX09iY.js +6 -0
  16. package/dist/index-nnvfy5q0.js +31 -0
  17. package/dist/index-urNonkMH.js +6 -0
  18. package/dist/index-xAjlBylT.js +5 -0
  19. package/dist/index.js +16 -0
  20. package/dist/inline-TT_dl8Y3.js +17 -0
  21. package/dist/knowledge-BZCmalF_.js +6 -0
  22. package/dist/knowledge-DnYGicjn.js +13 -0
  23. package/dist/media-extensions-ZoxmhIhH.js +276 -0
  24. package/dist/media-migration-CGOFwdYm.js +59 -0
  25. package/dist/media-upload-Dx45yv6a.js +69 -0
  26. package/dist/operations-JgnjGx3H.js +19 -0
  27. package/dist/question-D1--acV8.js +10 -0
  28. package/dist/question-DGC6JHy5.js +6 -0
  29. package/dist/rich-text/index.js +224 -0
  30. package/dist/rich-text/legacy-converter/index.js +485 -0
  31. package/dist/selection-state-D47jhx0U.js +20 -0
  32. package/dist/state-KfOqha3d.js +16 -0
  33. package/dist/style.css +1 -0
  34. package/dist/types/index.d.ts +10 -0
  35. package/dist/types/rich-text/FkpRichText.vue.d.ts +242 -0
  36. package/dist/types/rich-text/MediaView.vue.d.ts +92 -0
  37. package/dist/types/rich-text/__demo__/conversion-fixtures.d.ts +35 -0
  38. package/dist/types/rich-text/config/catalog.d.ts +3 -0
  39. package/dist/types/rich-text/config/descriptor.d.ts +58 -0
  40. package/dist/types/rich-text/config/media-options.d.ts +6 -0
  41. package/dist/types/rich-text/config/resolve.d.ts +17 -0
  42. package/dist/types/rich-text/config/selection-options.d.ts +6 -0
  43. package/dist/types/rich-text/extensions.d.ts +6 -0
  44. package/dist/types/rich-text/index.d.ts +17 -0
  45. package/dist/types/rich-text/legacy-converter/index.d.ts +45 -0
  46. package/dist/types/rich-text/media-extensions.d.ts +4 -0
  47. package/dist/types/rich-text/media-id.d.ts +2 -0
  48. package/dist/types/rich-text/model/agent-context.d.ts +7 -0
  49. package/dist/types/rich-text/model/capability-diff.d.ts +14 -0
  50. package/dist/types/rich-text/model/condition-contract.d.ts +10 -0
  51. package/dist/types/rich-text/model/convert.d.ts +6 -0
  52. package/dist/types/rich-text/model/guard.d.ts +7 -0
  53. package/dist/types/rich-text/model/json-value.d.ts +2 -0
  54. package/dist/types/rich-text/model/media-migration.d.ts +8 -0
  55. package/dist/types/rich-text/model/node-contract.d.ts +10 -0
  56. package/dist/types/rich-text/model/node-identity.d.ts +8 -0
  57. package/dist/types/rich-text/model/persistence-contract.d.ts +25 -0
  58. package/dist/types/rich-text/model/preview.d.ts +2 -0
  59. package/dist/types/rich-text/model/question-text.d.ts +15 -0
  60. package/dist/types/rich-text/model/reasoning-context.d.ts +24 -0
  61. package/dist/types/rich-text/model/scene-snapshot.d.ts +4 -0
  62. package/dist/types/rich-text/model/validate.d.ts +19 -0
  63. package/dist/types/rich-text/model/web-url.d.ts +2 -0
  64. package/dist/types/rich-text/plugins/agentSelect/descriptor.d.ts +2 -0
  65. package/dist/types/rich-text/plugins/attribute/descriptor.d.ts +2 -0
  66. package/dist/types/rich-text/plugins/attribute/index.d.ts +2 -0
  67. package/dist/types/rich-text/plugins/block.d.ts +3 -0
  68. package/dist/types/rich-text/plugins/choice.d.ts +4 -0
  69. package/dist/types/rich-text/plugins/image/descriptor.d.ts +2 -0
  70. package/dist/types/rich-text/plugins/image/index.d.ts +2 -0
  71. package/dist/types/rich-text/plugins/inline.d.ts +3 -0
  72. package/dist/types/rich-text/plugins/media-upload.d.ts +3 -0
  73. package/dist/types/rich-text/plugins/memory/descriptor.d.ts +2 -0
  74. package/dist/types/rich-text/plugins/memory/index.d.ts +2 -0
  75. package/dist/types/rich-text/plugins/operations.d.ts +86 -0
  76. package/dist/types/rich-text/plugins/originalReply/descriptor.d.ts +2 -0
  77. package/dist/types/rich-text/plugins/originalReply/knowledge.d.ts +2 -0
  78. package/dist/types/rich-text/plugins/originalReply/question.d.ts +2 -0
  79. package/dist/types/rich-text/plugins/reasoningPolish/descriptor.d.ts +2 -0
  80. package/dist/types/rich-text/plugins/reasoningPolish/index.d.ts +3 -0
  81. package/dist/types/rich-text/plugins/reasoningTemplate/descriptor.d.ts +2 -0
  82. package/dist/types/rich-text/plugins/reasoningTemplate/index.d.ts +3 -0
  83. package/dist/types/rich-text/plugins/registry.d.ts +14 -0
  84. package/dist/types/rich-text/plugins/selection-state.d.ts +4 -0
  85. package/dist/types/rich-text/plugins/separator/descriptor.d.ts +2 -0
  86. package/dist/types/rich-text/plugins/separator/index.d.ts +2 -0
  87. package/dist/types/rich-text/plugins/state.d.ts +3 -0
  88. package/dist/types/rich-text/plugins/tagged/descriptor.d.ts +2 -0
  89. package/dist/types/rich-text/plugins/tagged/index.d.ts +2 -0
  90. package/dist/types/rich-text/plugins/ticket/descriptor.d.ts +2 -0
  91. package/dist/types/rich-text/plugins/ticket/index.d.ts +2 -0
  92. package/dist/types/rich-text/plugins/todo/descriptor.d.ts +2 -0
  93. package/dist/types/rich-text/plugins/todo/knowledge.d.ts +2 -0
  94. package/dist/types/rich-text/plugins/todo/question.d.ts +2 -0
  95. package/dist/types/rich-text/plugins/tool/descriptor.d.ts +2 -0
  96. package/dist/types/rich-text/plugins/tool/index.d.ts +2 -0
  97. package/dist/types/rich-text/plugins/tool/operations.d.ts +4 -0
  98. package/dist/types/rich-text/plugins/tool/presentation.d.ts +7 -0
  99. package/dist/types/rich-text/plugins/variable/descriptor.d.ts +2 -0
  100. package/dist/types/rich-text/plugins/variable/index.d.ts +2 -0
  101. package/dist/types/rich-text/plugins/video/descriptor.d.ts +2 -0
  102. package/dist/types/rich-text/plugins/video/index.d.ts +2 -0
  103. package/dist/types/rich-text/public/types.d.ts +588 -0
  104. package/dist/types/rich-text/runtime/action-ports.d.ts +15 -0
  105. package/dist/types/rich-text/runtime/media-state.d.ts +6 -0
  106. package/dist/types/rich-text/runtime/media-target.d.ts +8 -0
  107. package/dist/types/rich-text/runtime/media-upload-session.d.ts +59 -0
  108. package/dist/types/rich-text/runtime/operations.d.ts +48 -0
  109. package/dist/types/rich-text/runtime/option-menu-session.d.ts +28 -0
  110. package/dist/types/rich-text/runtime/option-source.d.ts +10 -0
  111. package/dist/types/rich-text/runtime/port-result.d.ts +21 -0
  112. package/dist/types/rich-text/runtime/schema-plan.d.ts +17 -0
  113. package/dist/types/rich-text/runtime/tool-form-session.d.ts +39 -0
  114. package/dist/types/rich-text/runtime/tool-params.d.ts +5 -0
  115. package/dist/types/rich-text/types.d.ts +40 -0
  116. package/dist/types/rich-text/ui/CapabilityHelp.vue.d.ts +9 -0
  117. package/dist/types/rich-text/ui/KnowledgeArea.vue.d.ts +117 -0
  118. package/dist/types/rich-text/ui/ToolForm.vue.d.ts +14 -0
  119. package/dist/types/rich-text/ui/VariableOptionList.vue.d.ts +15 -0
  120. package/package.json +70 -3
package/dist/style.css ADDED
@@ -0,0 +1 @@
1
+ @font-face{font-family:fkp-iconfont;src:url(data:font/woff2;base64,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) format("woff2");font-style:normal;font-weight:400;font-display:block}.fkp-icon{display:inline-block;font-family:fkp-iconfont!important;font-style:normal;font-weight:400;line-height:1;color:inherit;vertical-align:-.125em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fkp-rich-text{--fk-primary: #5668ea;--fk-border: #e6e9f0;position:relative;background:#fff;border:1px solid var(--fk-border);border-radius:12px;color:#3e485e;font:14px/1.65 -apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,sans-serif;transition:border-color .2s,box-shadow .2s;isolation:isolate}.fkp-rich-text:focus-within{border-color:#a9b2fa;box-shadow:0 0 0 3px #6273ed0a}.fkp-rich-text button,.fkp-rich-text input{font:inherit}.fkp-rich-text button{cursor:pointer}.fkp-rich-text button:disabled{cursor:not-allowed;opacity:.4}.fkp-rich-text button:focus-visible,.fkp-rich-text input:focus-visible{outline:2px solid #8392f7;outline-offset:2px}.fkp-rich-text button{display:inline-flex;align-items:center;justify-content:center;gap:5px}.fk-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:2px;padding:9px 10px;background:#f8f9fc;border-bottom:1px solid var(--fk-border);border-radius:12px 12px 0 0}.fk-tool{border:0;background:transparent;color:#697388;height:30px;padding:0 7px;font-size:12px!important;border-radius:5px;white-space:nowrap}.fk-tool:hover:not(:disabled),.fk-formatbar button:hover:not(:disabled){background:#eef0fb;color:var(--fk-primary)}.fk-mode{font-weight:600!important;color:#39445a}.fk-mode>.fkp-icon:first-child{color:#6275ee}.fk-tool-divider{height:16px;width:1px;background:#dfe3ed;margin:0 5px}.fk-toolbar-spacer{flex:1}.fk-tool.active{color:#5b64ce;background:#eceeff}.fk-icon-tool{width:30px;padding:0}.fk-polish{background:#eeedff;border:1px solid #e4e0ff;color:#7460cc;border-radius:6px;padding:4px 9px;font-size:12px!important}.fk-question{display:flex;gap:10px;align-items:center;min-height:52px;padding:0 18px;border-bottom:1px dashed var(--fk-border)}.fk-q-label{font-size:11px;font-weight:700;color:#8791a6;background:#f0f2f6;border-radius:4px;width:19px;height:20px;text-align:center}.fk-question input{flex:1;min-width:50px;background:none;border:0;outline:none!important;color:#344058;font-size:13px}.fk-question input::placeholder{color:#a3aaba}.fk-formatbar{display:flex;align-items:center;gap:3px;padding:10px 15px 0}.fk-formatbar button{background:none;border:0;color:#8b94a7;padding:5px;border-radius:4px}.fk-formatbar .active{color:#5765d7;background:#eeefff}.fk-formatbar i{height:12px;width:1px;background:#e9eaf0;margin:0 5px}.fk-formatbar>span{margin-left:auto;font-size:10px;color:#a2aaba;letter-spacing:1px}.fk-content-wrap{overflow:auto;min-height:190px}.fk-editor-content{outline:none;padding:14px 20px 24px;min-height:190px;overflow-wrap:anywhere;font-size:13px;line-height:1.95}.fk-editor-content p{margin:0 0 6px}.fk-editor-content p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:#a1a9b9;height:0;pointer-events:none}.fk-editor-content ul,.fk-editor-content ol{padding-left:24px}.fk-editor-content blockquote{border-left:3px solid #c7cdf9;margin:12px 0;padding-left:16px}.fk-editor-content pre{background:#f0f2f8;padding:12px;border-radius:6px}.fk-editor-footer{display:flex;align-items:center;justify-content:space-between;padding:9px 18px;color:#a2aaba;font-size:10px;border-top:1px solid #f3f4f7}.fk-editor-footer button{border:0;background:none;color:#a2aaba;padding:3px}.fk-editor-footer button:hover{color:#df6876}.fk-drop-line{position:absolute;height:2px;background:#5278ff;z-index:4;pointer-events:none;box-shadow:0 0 5px #5278ff22}.fk-drop-line:before{content:"";position:absolute;width:5px;height:5px;border:1.5px solid #5278ff;border-radius:50%;top:-2px;left:-4px;background:#fff}.fk-token{display:inline-block;line-height:1.6;border:1px solid #cbebde;border-radius:4px;padding:0 5px;margin:0 2px;background:#edf8f2;color:#428e6a;font-size:12px;white-space:nowrap}.fk-token--todo{background:#fff5e7;border-color:#f6ddad;color:#be8839}.fk-token.ProseMirror-selectednode{outline:2px solid #a0b2f6}.fk-original-reply{position:relative;background:#f6f7ff;border:1px solid #e1e4f9;border-left:3px solid #929de5;border-radius:6px;padding:28px 14px 9px;margin:12px 0}.fk-original-reply:before{content:"❝ 原话复述";position:absolute;top:6px;left:13px;font-size:10px;color:#7e8ac1}.fk-message-separator{display:flex;align-items:center;gap:12px;margin:18px 0;color:#9ba7c0;font-size:10px;-webkit-user-select:none;user-select:none}.fk-message-separator:before,.fk-message-separator:after{content:"";height:1px;border-top:1px dashed #d3dcec;flex:1}.fk-media{margin:14px 0;width:fit-content;max-width:100%;border-radius:7px;border:2px solid transparent;padding:3px}.fk-media.is-selected{border-color:#788cfa;background:#f5f7ff}.fk-media-surface{position:relative;overflow:hidden;border-radius:6px;background:#f0f2f6;min-width:180px;min-height:70px}.fk-media img,.fk-media video{display:block;max-width:100%;max-height:280px;object-fit:contain}.fk-media video{width:360px}.fk-media-actions{position:absolute;right:7px;top:7px;display:flex;gap:3px;padding:3px;border-radius:6px;background:#fffffff0;box-shadow:0 2px 12px #27345217}.fk-media-actions button,.fk-media-handle{border:0;background:transparent;padding:4px;color:#637087;display:flex}.fk-media-handle{cursor:grab}.fk-media-actions button:hover{color:#5369db;background:#f0f1ff}.fk-media-caption{display:flex;gap:6px;align-items:center;font-size:10px;color:#9aa2b2;margin-top:3px;flex-wrap:wrap}.fk-upload-state{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffe0;display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px}.fk-error{color:#d25861}.fk-spin{animation:fk-spin 1s linear infinite}@keyframes fk-spin{to{transform:rotate(360deg)}}.fk-inline-error{margin:6px 14px;padding:7px 10px;background:#fff0f1;border-radius:5px;color:#c86570;font-size:11px;display:flex;justify-content:space-between}.fk-inline-error button{border:0;background:none;color:inherit}.fkp-rich-text.is-disabled{opacity:.62;background:#fafbfc}.fkp-rich-text.is-readonly .fk-editor-content{padding-top:20px}.fk-media-failed{min-width:220px;min-height:100px;display:flex;align-items:center;justify-content:center;gap:10px;color:#929bad;font-size:12px}.fk-media.is-scene-media{box-sizing:border-box;display:block;width:100%;max-width:none;margin:8px 0;padding:4px;border:1px solid #e6e9f5;border-radius:2px;background:#fff}.fk-media.is-scene-media[data-drag-handle]{cursor:grab}.fk-media.is-scene-media[data-drag-handle]:active{cursor:grabbing}.fk-media.is-scene-media.is-video{background:#eef2f8}.fk-media.is-scene-media.is-selected{border-color:#165dff}.fk-media.is-scene-media .fk-media-surface{width:256px;max-width:100%;min-width:0;min-height:0;aspect-ratio:16 / 9;border-radius:2px}.fk-media.is-scene-media img,.fk-media.is-scene-media video{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}.fk-media.is-scene-media .fk-media-play.fku-button{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:4px;width:100%;height:100%;padding:0;border:0;border-radius:0;background:#0008;color:#fff;font-size:12px}.fk-media.is-scene-media .fk-media-surface:hover .fk-media-play.fku-button,.fk-media.is-scene-media .fk-media-play.fku-button:focus-visible{background:#0009;color:#fff}.fk-media.is-scene-media .fk-media-actions{z-index:2;opacity:0;pointer-events:none;transition:opacity .15s ease}.fk-media.is-scene-media:hover .fk-media-actions,.fk-media.is-scene-media:focus-within .fk-media-actions{opacity:1;pointer-events:auto}.fk-media.is-scene-media .fk-media-caption{display:none}.fk-media.is-scene-media.is-error .fk-media-caption{display:flex}@media(max-width:600px){.fk-setting{font-size:10px!important;padding:0 4px}.fk-drag-hint{display:none}.fk-toolbar{gap:1px}.fk-content-wrap{min-height:160px}}.fkp-rich-text{--fkp-scene-bg: #f6f8fc;--fkp-scene-line: #e6e9f5;--fkp-scene-muted: #86909c;position:relative;width:100%;max-width:960px;min-width:0;min-height:214px;border:0;border-radius:2px;background:var(--fkp-scene-bg);box-shadow:none;color:#1d2129;font-family:Microsoft YaHei UI,PingFang SC,sans-serif;font-size:14px;isolation:isolate}.fkp-rich-text:focus-within{border:0;box-shadow:none}.fkp-rich-text:focus-within:after{position:absolute;z-index:3;top:-1px;right:-1px;bottom:-1px;left:-1px;border:1px solid #165dff;border-radius:2px;content:"";pointer-events:none}.fkp-rich-text.has-open-menu{z-index:10}.fkp-scene-toolbar{position:relative;box-sizing:border-box;display:flex;align-items:center;height:32px;gap:8px;padding:0 4px;border-bottom:1px solid var(--fkp-scene-line);white-space:nowrap;overflow:visible}.fkp-toolbar-groups{display:flex;flex:1 1 auto;align-items:center;gap:8px;min-width:0}.fkp-toolbar-right{display:flex;flex:none;align-items:center;gap:8px;margin-left:auto}.fkp-toolbar-group{display:flex;flex:none;align-items:center}.fkp-toolbar-group>.fku-popover,.fkp-toolbar-right>.fku-popover,.fkp-type-wrap>.fku-popover,.fkp-more-wrap>.fku-popover{display:inline-flex;align-items:center}.fkp-capability-help-popover{box-sizing:border-box;width:min(324px,calc(100vw - 24px));padding:16px;border-radius:4px;box-shadow:0 8px 24px #1d212929}.fkp-capability-help-popover--more{width:min(324px,calc(100vw - 96px))}.fkp-capability-help-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.fkp-capability-help-head strong{color:#1d2129;font-size:16px;line-height:24px}.fkp-capability-help-head .fkp-capability-help-link.fku-button{flex:none;width:auto;min-height:24px;padding:0;color:#165dff;font-size:12px}.fkp-capability-help p{margin:10px 0 0;color:#86909c;font-size:12px;line-height:1.65;overflow-wrap:anywhere}.fkp-more-wrap{position:relative;flex:none}.fkp-more-button.fku-button{width:28px;min-width:28px;height:28px;padding:0}.fkp-more-menu{right:0;min-width:178px}.fkp-more-menu>.fkp-more-popover{display:block}.fkp-more-row{display:flex;align-items:center;justify-content:space-between}.fkp-more-row--question{padding:0 8px;border-radius:4px}.fkp-more-row--question:hover:not(.is-disabled){background:#ebeffa}.fkp-more-row .fku-button{flex:1}.fkp-more-row--question .fku-button{padding:0}.fkp-more-row .fkp-action-switch.fku-switch{flex:none;width:21px;min-width:21px;min-height:12px;height:12px;margin:0;padding:0}.fkp-scene-toolbar button:not(.fku-switch){border:0;background:none;color:#536073}.fkp-scene-toolbar button:not(.fku-switch):hover:not(:disabled){color:#3364ee;background:#ebeffa}.fkp-scene-toolbar .fkp-action-toggle .fkp-action-label.fku-button:hover:not(:disabled),.fkp-scene-toolbar .fkp-more-row--question .fku-button:hover:not(:disabled){background:transparent}.fkp-scene-toolbar button:not(.fku-switch):disabled{opacity:.4}.fkp-type-wrap{position:relative}.fkp-type-button{display:flex;align-items:center;gap:4px;height:24px;padding:4px 8px;font-size:12px;color:#1d2129!important}.fkp-type-button .fkp-icon:first-child{font-size:16px!important}.fkp-type-button .fkp-icon:last-child{font-size:12px!important}.fkp-type-button>.fkp-icon:first-child{color:#1760ff}.fkp-type-reasoning .fkp-type-button>.fkp-icon:first-child,.fkp-type-agent .fkp-type-button>.fkp-icon:first-child{color:#7733e6}.fkp-toolbar-divider{display:block;width:1px;height:12px;margin:0;background:#e6e9f5;flex:none}.fkp-action-toggle,.fkp-action-label,.fkp-tool-button,.fkp-scene-action,.fkp-agent-picker,.fkp-open-agent{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:32px;padding:0 4px;font-size:12px;border-radius:2px}.fkp-tool-button{min-width:28px}.fkp-rich-text .fkp-scene-toolbar .fkp-tool-button.fku-button,.fkp-rich-text .fkp-scene-toolbar .fkp-more-row>.fku-button{border:0;box-shadow:none;transition:color .1s,background-color .1s,opacity .1s}.fkp-action-toggle{box-sizing:border-box;flex:none;gap:4px;height:22px;padding:0 4px;border:1px solid transparent}.fkp-action-toggle:hover:not(.is-disabled):not(.is-todo-active):not(.is-question-active){background:#ebeffa}.fkp-action-toggle.is-todo-active{color:#ff7d00}.fkp-action-toggle.is-todo-active:hover{background:#ebeffa}.fkp-scene-toolbar .fkp-action-toggle.is-todo-active .fkp-action-label.fku-button{color:#ff7d00}.fkp-action-toggle.is-todo-active .fkp-action-switch.fku-switch{background:#ff7d00}.fkp-action-toggle.is-question-active{color:#165dff}.fkp-action-toggle.is-question-active:hover{background:#ebeffa}.fkp-scene-toolbar .fkp-action-toggle.is-question-active .fkp-action-label.fku-button{color:#005fff}.fkp-action-toggle.is-question-active .fkp-action-switch.fku-switch{background:#005fff}.fkp-action-label{gap:4px;height:20px;padding:0}.fkp-action-label .fkp-icon,.fkp-tool-button .fkp-icon{line-height:1}.fkp-action-switch.fku-switch{width:21px;min-width:21px;height:12px;margin:0;padding:0}.fkp-action-switch.fku-switch .arco-switch-handle{width:9px;height:9px;top:1.5px}.fkp-action-switch.fku-switch.arco-switch-checked .arco-switch-handle{left:calc(100% - 10.5px)}.fkp-toolbar-spacer{flex:1}.fkp-agent-picker{color:#722ed1!important}.fkp-open-agent{color:#aeb7c5!important}.fkp-open-agent:not(:disabled){color:#516bf1!important}.fkp-scene-toolbar .fkp-scene-action:last-child{color:#165dff}.fkp-scene-body{position:relative;box-sizing:border-box;padding:8px 12px;min-height:182px}.fkp-rich-text:focus-within .fkp-scene-body{background:#fff}.fkp-question-row,.fkp-knowledge-area{font-family:SimHei,黑体,PingFang SC,Microsoft YaHei,system-ui,sans-serif}.fkp-question-row{display:flex;align-items:flex-start;align-content:flex-start;flex-wrap:wrap;box-sizing:border-box;min-height:31px;gap:4px;padding-bottom:8px;border-bottom:1px dashed var(--fkp-scene-line);font-size:14px;line-height:22px;color:#1d2129}.fkp-question-prompt{display:inline-grid;grid-template-columns:auto minmax(0,max-content) auto;align-items:start;flex:0 1 auto;gap:2px;max-width:100%;min-width:0;cursor:text}.fkp-question-close{align-self:end}.fkp-question-tags{display:inline-flex;align-items:center;flex:0 1 auto;flex-wrap:wrap;gap:4px;max-width:100%;min-width:0}.fkp-question-field{position:relative;display:block;width:max-content;max-width:100%;min-width:0}.fkp-question-field.is-filled,.fkp-question-field.is-filled textarea{font-weight:700}.fkp-rich-text .fkp-knowledge-tag{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;height:22px;margin:0 2px;padding:0 4px;border:1px solid #bedaff;border-radius:2px;background:#e8f3ff;color:#165dff;font-family:Microsoft YaHei UI,PingFang SC,sans-serif;font-size:12px;font-weight:400;line-height:normal;vertical-align:bottom;-webkit-user-select:none;user-select:none;white-space:nowrap}.fkp-rich-text .fkp-knowledge-tag--todo{max-width:100%;border-color:#fdddc3;background:#fff7e8;color:#ff7d00;cursor:pointer}.fkp-rich-text .fkp-knowledge-tag--attribute{max-width:100%;border-color:#ace1dc;background:#e6f7f4;color:#00a29f;cursor:pointer}.fkp-rich-text .fkp-knowledge-tag--ticket{max-width:100%;border-color:#fdcdc5;background:#ffece8;color:#f53f3f;cursor:pointer}.fkp-ticket-token-icon,.fkp-ticket-token-arrow,.fkp-todo-token-icon,.fkp-todo-token-arrow,.fkp-attribute-token-icon,.fkp-attribute-token-arrow,.fkp-tool-token-icon{flex:none;font-size:16px}.fkp-ticket-token-label,.fkp-todo-token-label,.fkp-attribute-token-label,.fkp-tool-token-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.fkp-ticket-token-arrow,.fkp-todo-token-arrow,.fkp-attribute-token-arrow{font-size:12px;transition:transform .16s ease}.fkp-knowledge-tag--ticket:is(:hover,.is-menu-open) .fkp-ticket-token-arrow,.fkp-knowledge-tag--todo:is(:hover,.is-menu-open) .fkp-todo-token-arrow,.fkp-knowledge-tag--attribute:is(:hover,.is-menu-open) .fkp-attribute-token-arrow{transform:rotate(180deg)}.fkp-rich-text .fkp-knowledge-tag--variable{border-color:#aff0b5;background:#e8ffea;color:#00b42a}.fkp-rich-text .fkp-knowledge-tag--tool{border-color:#ace1dc;background:#e6f7f4;color:#00a29f}.fkp-inline-token-icon{flex:none;font-size:16px}.fkp-inline-token-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.fkp-rich-text .fkp-knowledge-tag--reasoning,.fkp-rich-text .fkp-knowledge-tag--agent{border-color:#ddbef6;background:#f5e8ff;color:#722ed1}.fkp-rich-text .fkp-tool-note{gap:8px;padding:0 4px;border-color:#ddbef6;background:#f5e8ff;color:#722ed1}.fkp-rich-text .fkp-tool-note--order-note{max-width:280px;cursor:pointer}.fkp-rich-text .fk-original-reply{display:flow-root;margin:0 0 6px;padding:0;border:0;border-radius:0;background:transparent}.fkp-rich-text .fk-original-reply:before{position:static;display:inline;margin-right:4px;color:#165dff;content:"<";line-height:22px;pointer-events:none;-webkit-user-select:none;user-select:none}.fkp-rich-text .fkp-knowledge-document .fk-original-reply>p:first-child:before{display:inline-flex;box-sizing:border-box;align-items:center;height:22px;float:none;margin-right:4px;padding:0 4px 0 24px;border:1px solid #bedaff;border-radius:2px;background:#e8f3ff;background-image:url("data:image/svg+xml,%3csvg%20preserveAspectRatio='none'%20width='16'%20height='16'%20overflow='visible'%20style='display:%20block;'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Frame'%3e%3cpath%20id='Vector'%20d='M13.6667%205.66667V2.66667C13.6667%202.29848%2013.3682%202%2013%202H3.66667C3.29848%202%203%202.29848%203%202.66667V12.6667C3%2013.0349%203.29848%2013.3333%203.66667%2013.3333H5.33333'%20stroke='%23165DFF'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20id='Vector_2'%20d='M5.66602%205H10.3327'%20stroke='%23165DFF'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20id='Vector_3'%20d='M5.66602%207.66406H7.33268'%20stroke='%23165DFF'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cg%20id='Vector_4'%3e%3c/g%3e%3cg%20id='Group%20132'%3e%3cpath%20id='Vector_5'%20d='M14%2010.4219H8V14.8504H14V10.4219Z'%20stroke='%23165DFF'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20id='Vector%2012'%20d='M11%2012V13'%20stroke='%23165DFF'%20stroke-linecap='round'/%3e%3cpath%20id='Vector_6'%20d='M12.7137%2010.4286V9.71429C12.7137%209.00419%2012.2852%208%2010.9994%208C9.71373%208%209.28516%209.00419%209.28516%209.71429V10.4286'%20stroke='%23165DFF'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:4px center;background-repeat:no-repeat;background-size:16px 16px;color:#165dff;content:"原话复述";font-size:12px;line-height:normal;vertical-align:middle;pointer-events:none;-webkit-user-select:none;user-select:none}.fkp-rich-text .fk-original-reply>p:first-child{display:inline;margin:0}.fkp-rich-text .fk-original-reply:has(>p:only-child>br.ProseMirror-trailingBreak:only-child){display:flex;align-items:center}.fkp-rich-text .fk-original-reply>p:only-child:has(>br.ProseMirror-trailingBreak:only-child){display:inline-flex;align-items:center;min-width:0}.fkp-rich-text .fk-original-reply:after{display:inline;color:#165dff;content:">";line-height:22px;pointer-events:none;-webkit-user-select:none;user-select:none}.fkp-rich-text .fk-original-reply>p:first-child:is(.is-empty,.is-editor-empty,:only-child:has(>br.ProseMirror-trailingBreak:only-child)):after{display:inline;color:#86909c;content:"请输入回复话术…";font-size:12px}.fkp-tool-note-icon,.fkp-tool-note-label{flex:none}.fkp-tool-note-divider{flex:none;width:1px;height:12px;margin:0 2px;background:#ddbef6}.fkp-tool-note-summary{min-width:0;overflow:hidden;text-overflow:ellipsis}.fkp-rich-text .fkp-knowledge-tag.is-invalid,.fkp-rich-text .fkp-knowledge-tag[data-invalid=true]{border-color:#86909c;background:#f6f8fc;color:#86909c}.fkp-rich-text .fkp-knowledge-tag .fkp-icon{font-size:12px;line-height:1}.fkp-rich-text .fkp-knowledge-tag .arco-tag-icon{margin-right:0;color:inherit}.fkp-rich-text .fkp-question-tag.fku-button{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;height:22px;min-height:22px;padding:0 4px;border:1px solid #bedaff;border-radius:2px;background:#e8f3ff;color:#165dff;font-size:12px;font-weight:400;line-height:normal;max-width:min(100%,240px);flex:none}.fkp-rich-text .fkp-question-tag--todo.fku-button{border-color:#fdddc3;background:#fff7e8;color:#ff7d00}.fkp-question-tag-icon{flex:none;font-size:16px}.fkp-rich-text .fkp-question-tag.fku-button:hover:not(:disabled),.fkp-rich-text .fkp-question-tag.fku-button[aria-expanded=true]{filter:brightness(.97)}.fkp-question-tag .fkp-question-tag-label{overflow:hidden;font-family:Microsoft YaHei UI,Microsoft YaHei,PingFang SC,sans-serif;text-overflow:ellipsis}.fkp-question-tag .fkp-icon{flex:none;transition:transform .16s ease}.fkp-question-tag:hover .fkp-icon,.fkp-question-tag[aria-expanded=true] .fkp-icon{transform:rotate(180deg)}.fkp-rich-text .fk-token{max-width:100%;overflow:hidden;margin:0 2px;text-overflow:ellipsis;vertical-align:bottom}.fkp-rich-text .fk-message-separator{justify-content:flex-start;margin:8px 0}.fkp-rich-text .fk-message-separator:before,.fkp-rich-text .fk-message-separator:after{display:none}.fkp-question-measure,.fkp-question-field .fku-textarea{font:inherit;letter-spacing:inherit}.fkp-question-measure{display:block;visibility:hidden;white-space:pre-wrap;overflow-wrap:anywhere}.fkp-question-field .fku-textarea{position:absolute;top:0;left:0;width:100%;min-width:0;height:100%;border:0;padding:0;background:transparent;box-shadow:none}.fkp-question-field .fku-textarea:focus-within{border:0;box-shadow:none}.fkp-question-field .fku-textarea .arco-textarea{box-sizing:border-box;width:100%;min-width:0;height:100%;min-height:22px;border:0;padding:0;background:transparent;color:#1d2129;font:inherit;font-size:14px;line-height:22px;letter-spacing:inherit;overflow-wrap:anywhere;overflow:hidden;resize:none}.fkp-question-field .fku-textarea .arco-textarea:focus-visible{outline:none}.fkp-question-row textarea::placeholder{color:var(--fkp-scene-muted);opacity:1}.fkp-knowledge-row{min-height:62px}.fkp-knowledge-area{position:relative;min-height:60px;max-height:600px;overflow:auto}.fkp-reference-placeholder{position:absolute;top:8px;left:0;display:flex;align-items:center;gap:4px;height:22px;color:var(--fkp-scene-muted);font-size:14px;line-height:22px;pointer-events:none}.fkp-reference-placeholder .fku-tag{margin:0;padding:3px 8px;font-size:12px;line-height:14px}.fkp-reference-bracket{color:#165dff}.fkp-knowledge-document{box-sizing:border-box;min-height:60px;padding:7px 0;outline:none;color:#1d2129;font-size:14px;line-height:22px;white-space:pre-wrap}.fkp-knowledge-document p{margin:0 0 6px}.fkp-knowledge-document p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--fkp-scene-muted);pointer-events:none;height:0;white-space:pre-wrap}.fkp-template-drawer{display:grid;gap:12px;color:#1d2129;font-size:14px}.fkp-template-intro{margin:0 0 4px;color:#86909c;line-height:22px}.fkp-template-card{border:1px solid #e5e6eb;border-radius:6px}.fkp-template-title.fku-button{display:flex;width:100%;justify-content:space-between;padding:12px 16px;color:#1d2129;text-align:left}.fkp-template-title[aria-expanded=true] .fkp-icon{transform:rotate(180deg)}.fkp-template-example{display:grid;gap:12px;padding:0 16px 16px;white-space:pre-wrap}.fkp-template-example p{margin:0;line-height:22px}.fkp-template-example .fku-button{justify-self:end}.fkp-tool-form{display:grid;gap:22px}.fkp-tool-form-field{display:grid;gap:8px;color:#1d2129}.fkp-tool-modal{max-width:calc(100vw - 32px)}.fkp-tool-modal .arco-modal-title{text-align:center}.fkp-tool-form-choice{min-width:0;margin:0;padding:0;border:0}.fkp-tool-form-choice legend{margin-bottom:8px;padding:0}.fkp-tool-form-choice .fku-radio-group{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}.fkp-tool-form-field--no-label{margin-top:-12px}.fkp-tool-form-field .fku-textarea{width:100%}.fkp-tool-form-field .arco-textarea{min-height:96px}.fkp-tool-form-flags .fku-radio:not(:first-child) .arco-radio-icon-hover{display:none}.fkp-tool-form-flag{position:relative;display:inline-block;width:16px;height:16px;border-left:2px solid #86909c}.fkp-tool-form-flag:after{position:absolute;top:1px;left:1px;width:10px;height:9px;background:var(--fkp-flag-color);clip-path:polygon(0 0,100% 0,80% 50%,100% 100%,0 100%);content:""}.fkp-tool-form-flags .arco-radio-checked .fkp-tool-form-flag{outline:1px solid #165dff;outline-offset:3px}.fkp-tool-form-checkbox{margin-top:-14px}.fkp-tool-form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.fkp-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.fkp-tool-form-field b,.fkp-tool-form-error{color:#f53f3f}.fkp-agent-preview{padding:8px 0;font-size:14px;line-height:22px;color:#4e5969;white-space:pre-wrap}.fkp-agent-preview-name{margin-bottom:4px;color:#722ed1;font-weight:500}.fkp-agent-preview .placeholder{color:var(--fkp-scene-muted)}.fkp-unsupported{min-height:125px;margin:0;padding:18px 0;color:#9a5860;white-space:pre-wrap;font:inherit}.fkp-unsupported p{margin:0 0 12px}.fkp-safe-preview{margin:0;color:var(--fkp-scene-text);white-space:pre-wrap;overflow-wrap:anywhere;font:inherit}.fkp-safe-state{max-height:240px;overflow:auto;padding:8px 12px;border:1px solid var(--fk-border);border-radius:6px}.fkp-delete.fku-button{position:absolute;right:12px;bottom:8px;border:0;background:none;color:#8b98ad;cursor:pointer}.fkp-delete.fku-button:hover{color:#df6376}.fkp-menu{position:absolute;top:calc(100% + 4px);z-index:20;min-width:180px;max-height:320px;overflow:auto;padding:8px;border:1px solid #e3e8f0;border-radius:8px;background:#fff;box-shadow:0 8px 25px #25304726}.fkp-menu button{display:flex;align-items:center;justify-content:flex-start;gap:9px;width:100%;min-height:34px;padding:5px 8px;text-align:left;border-radius:4px;font-size:14px}.fkp-option-menu button[aria-pressed=true]{background:#e8f2ff;color:#276be0}.fkp-type-menu{top:calc(100% + 10px);left:0;box-sizing:border-box;display:flex;flex-direction:column;gap:12px;width:min(320px,calc(100vw - 32px));max-height:min(350px,calc(100vh - 48px));overflow:auto;padding:16px;border:0;border-radius:4px;box-shadow:0 4px 5px #0000001a}.fkp-type-menu-arrow{position:absolute;z-index:21;top:calc(100% + 4px);left:44px;width:0;height:0;border-right:7px solid transparent;border-bottom:6px solid #fff;border-left:7px solid transparent;content:""}.fkp-type-confirm{position:absolute;z-index:21;top:calc(100% + 7px);box-sizing:border-box;width:min(320px,calc(100vw - 24px));padding:16px;border:1px solid #e5e6eb;border-radius:4px;background:#fff;box-shadow:0 4px 12px #1d212926;white-space:normal}.fkp-type-confirm-arrow{position:absolute;top:-7px;left:clamp(16px,var(--fkp-type-confirm-arrow-left, 48px),calc(100% - 16px));width:12px;height:12px;border-top:1px solid #e5e6eb;border-left:1px solid #e5e6eb;background:#fff;transform:rotate(45deg)}.fkp-type-confirm-message{display:flex;align-items:flex-start;gap:8px;color:#1d2129;font-size:14px;line-height:22px}.fkp-type-confirm-message .arco-icon{flex:none;margin-top:3px;color:#ff7d00;font-size:16px}.fkp-type-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.fkp-scene-toolbar .fkp-type-confirm-actions .fku-button:not(.fku-switch){width:auto;min-width:48px;height:24px;padding:0 12px;border-radius:2px;font-size:13px}.fkp-scene-toolbar .fkp-type-confirm-actions .fkp-type-confirm-cancel.fku-button{background:#f2f3f5;color:#4e5969}.fkp-scene-toolbar .fkp-type-confirm-actions .fkp-type-confirm-cancel.fku-button:hover{background:#e5e6eb;color:#1d2129}.fkp-scene-toolbar .fkp-type-confirm-actions .arco-btn-primary.fku-button{background:#165dff;color:#fff}.fkp-scene-toolbar .fkp-type-confirm-actions .arco-btn-primary.fku-button:hover{background:#4080ff;color:#fff}.fkp-type-menu-title{display:block;width:100%;color:#1d2129;font-size:16px;font-weight:700;line-height:21px}.fkp-scene-toolbar .fkp-type-menu .fkp-type-option.fku-button{box-sizing:border-box;display:flex;align-items:center;gap:12px;width:100%;min-height:87px;padding:12px;border:1px solid #e6e9f5;border-radius:8px;background:#f6f8fc;color:#1d2129;text-align:left;white-space:normal}.fkp-scene-toolbar .fkp-type-menu .fkp-type-option.fku-button:hover,.fkp-scene-toolbar .fkp-type-menu .fkp-type-option.fku-button:focus-visible{border-color:#b6c7f5;background:#f1f5ff}.fkp-type-option-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:50%;background:#165dff0d;color:#165dff}.fkp-type-option-icon.is-reasoning,.fkp-type-option-icon.is-agent{background:#722ed10d;color:#722ed1}.fkp-type-option-copy{display:flex;flex:1;flex-direction:column;gap:4px;min-width:0}.fkp-type-option-copy strong{color:#1d2129;font-size:14px;font-weight:700;line-height:19px}.fkp-type-option-copy>span{color:#86909c;font-size:12px;line-height:1.6;overflow-wrap:anywhere}.fkp-option-menu{top:36px;left:min(40%,280px);min-width:265px}.fkp-option-menu.is-choice-menu{box-sizing:border-box;left:16px;width:min(296px,calc(100% - 32px));min-width:0;max-width:calc(100vw - 32px);max-height:none;overflow:visible;padding:16px;border:1px solid #e5e6eb;border-radius:4px;box-shadow:0 8px 24px #1d212929}.fkp-option-menu.is-tagged-menu{width:min(336px,calc(100% - 32px))}.fkp-option-menu.is-variable-menu{width:min(426px,calc(100% - 32px))}.fkp-option-menu.is-ticket-menu{width:min(320px,calc(100% - 32px))}.fkp-option-menu:is(.is-attribute-menu,.is-tool-menu){width:min(320px,calc(100% - 32px))}.fkp-option-menu.is-choice-menu:before{position:absolute;top:-5px;left:24px;width:10px;height:10px;transform:rotate(45deg);border-top:1px solid #e5e6eb;border-left:1px solid #e5e6eb;background:#fff;content:""}.fkp-option-menu:is(.is-variable-menu,.is-ticket-menu,.is-attribute-menu,.is-tool-menu,.is-todo-menu):before{left:clamp(8px,calc(var(--fkp-choice-arrow-left, 29px) - 5px),calc(100% - 18px))}.fkp-option-menu.is-choice-menu .fkp-menu-head{padding:0}.fkp-option-menu.is-choice-menu .fkp-menu-head strong{color:#1d2129;font-size:16px}.fkp-option-menu.is-choice-menu :is(.fkp-todo-help,.fkp-variable-help,.fkp-ticket-help,.fkp-reference-help).fku-button{width:auto;min-height:22px;padding:0;color:#005fff;font-size:12px;white-space:nowrap}.fkp-todo-guidance{margin:4px 0 12px;color:#86909c;font-size:12px;line-height:1.6;white-space:normal}.fkp-todo-guidance p{margin:0}.fkp-ticket-heading{display:inline-flex;align-items:center;gap:6px;min-width:0}.fkp-ticket-badge{padding:1px 4px;border-radius:2px;background:#e8f3ff;color:#165dff;font-size:12px;line-height:18px}.fkp-ticket-dot{width:6px;height:6px;border-radius:50%;background:#f53f3f}.fkp-ticket-guidance,.fkp-reference-guidance{margin:8px 0 12px;color:#86909c;font-size:12px;line-height:1.6;overflow-wrap:anywhere}.fkp-tagged-guidance,.fkp-variable-guidance{margin:10px 0 14px;color:#ff7d00;font-size:12px;line-height:1.6;overflow-wrap:anywhere}.fkp-option-menu.is-choice-menu>.fkp-menu-search{flex-direction:row-reverse;box-sizing:border-box;height:32px;margin:0 0 12px;padding:5px 12px;border:0;border-radius:2px;background:#f6f8fc}.fkp-option-menu.is-choice-menu>.fkp-menu-search input{font-size:14px}.fkp-option-menu:is(.is-todo-menu,.is-ticket-menu,.is-attribute-menu,.is-tool-menu) .fkp-option-list{max-height:min(260px,42vh);overflow-y:auto;padding:4px 0}.fkp-option-menu:is(.is-todo-menu,.is-ticket-menu,.is-attribute-menu,.is-tool-menu) .fkp-option-list>.fku-button{min-height:36px;padding:7px 12px;border-radius:0;color:#1d2129;font-size:14px}.fkp-option-menu.is-todo-menu .fkp-option-list>.fku-button[aria-pressed=true]{background:#e8f3ff;color:#005fff}.fkp-option-menu.is-ticket-menu .fkp-option-list>.fku-button[aria-pressed=true]{background:transparent;color:#165dff}.fkp-variable-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-height:min(260px,42vh);overflow:hidden}.fkp-variable-root,.fkp-variable-children{min-width:0;max-height:min(260px,42vh);overflow-y:auto;padding:4px 0}.fkp-variable-root{border-right:1px solid #e5e6eb}.fkp-variable-columns .fku-button{display:flex;align-items:center;justify-content:flex-start;gap:8px;width:100%;min-height:36px;padding:7px 12px;border-radius:0;color:#1d2129;font-size:14px;text-align:left}.fkp-variable-columns .fku-button:hover,.fkp-variable-columns .fkp-variable-group[aria-pressed=true]{color:#165dff}.fkp-variable-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fkp-variable-group-arrow{flex:none;margin-left:auto;transform:rotate(-90deg)}.fkp-option-menu.is-agent-menu{box-sizing:border-box;width:320px;min-width:0;max-width:min(calc(100% - 16px),calc(100vw - 32px));max-height:none;overflow:visible;padding:16px;border:1px solid #e5e6eb;border-radius:4px;box-shadow:0 8px 24px #1d212929}.fkp-agent-menu-arrow{position:absolute;top:-5px;left:var(--fkp-agent-arrow-left, 50%);width:10px;height:10px;transform:translate(-50%) rotate(45deg);border-top:1px solid #e5e6eb;border-left:1px solid #e5e6eb;background:#fff}.fkp-option-menu.is-agent-menu .fkp-menu-head{padding:0}.fkp-option-menu.is-agent-menu .fkp-menu-head strong{color:#1d2129;font-size:16px;line-height:22px}.fkp-option-menu.is-agent-menu .fkp-agent-help.fku-button{width:auto;min-height:22px;padding:0;color:#005fff;font-size:12px;white-space:nowrap}.fkp-agent-guidance{margin:8px 0 12px;color:#86909c;font-size:12px;line-height:1.5;white-space:normal}.fkp-option-menu.is-agent-menu>.fkp-menu-search{flex-direction:row-reverse;box-sizing:border-box;height:32px;margin:0;padding:5px 12px;border:0;border-radius:2px;background:#f6f8fc}.fkp-option-menu.is-agent-menu .fkp-option-list{max-height:min(260px,calc(100vh - 210px));overflow-y:auto;margin-top:4px;padding:0}.fkp-option-menu.is-agent-menu .fkp-option-list>.fku-button{min-height:36px;padding:7px 12px;border-radius:0;color:#1d2129;font-size:14px}.fkp-option-menu.is-agent-menu .fkp-option-list>.fku-button[aria-pressed=true]{background:#f5e8ff;color:#722ed1}.fkp-menu-head{display:flex;align-items:center;justify-content:space-between;padding:2px 6px 6px}.fkp-menu-head button{width:25px;min-height:25px;justify-content:center}.fkp-menu-path{display:flex;align-items:center;gap:8px;padding:3px 8px;color:#66758c;font-size:12px}.fkp-menu-path button{width:auto;min-height:24px;padding:2px 5px;color:#276be0}.fkp-option-child-icon{margin-left:auto;transform:rotate(-90deg)}.fkp-menu-more{justify-content:center!important;color:#276be0}.fkp-menu-search{display:flex;align-items:center;gap:6px;margin:4px 6px;padding:5px 8px;border:1px solid #dfe5ee;border-radius:5px;color:#8190a5}.fkp-menu-search .fku-input{width:100%;border:0;padding:0;background:transparent;box-shadow:none}.fkp-menu-search .fku-input:focus-within{border:0;box-shadow:none}.fkp-menu-search input{width:100%;outline:none;font-size:13px}.fkp-menu-empty{display:flex;align-items:center;gap:6px;margin:10px;color:#8b98aa;font-size:13px}.fkp-spin{animation:fk-spin 1s linear infinite}.fkp-rich-text.is-readonly .fkp-question-row textarea,.fkp-rich-text.is-readonly .fkp-question-prompt{cursor:default}.fkp-rich-text{--fk-primary: rgb(var(--primary-6));--fk-border: var(--color-border-2)}.fk-toolbar .fku-button{display:inline-flex;align-items:center;justify-content:center;gap:5px}.fk-toolbar .fk-setting{display:inline-flex;align-items:center;gap:5px;padding:0 5px;color:var(--color-text-3);font-size:12px;cursor:pointer;height:30px}.fk-toolbar .fk-setting.active{color:rgb(var(--primary-6))}.fk-toolbar .fku-switch.arco-switch-small{min-width:22px;height:12px;width:22px}.fk-toolbar .fku-switch.arco-switch-small .arco-switch-handle{width:8px;height:8px;top:2px}.fk-toolbar .fku-switch.arco-switch-small.arco-switch-checked .arco-switch-handle{left:calc(100% - 10px)}.fk-question .fku-input{background:transparent;border-color:transparent;padding:0;flex:1;min-width:50px}.fk-question .fku-input:focus-within{border-color:transparent;box-shadow:none}.fk-question .fku-input .arco-input{font-size:13px}.fk-formatbar .fku-button{min-width:25px;width:25px;height:25px;padding:4px}.fk-editor-footer .fku-button{height:24px;min-width:24px}.fk-media-actions .fku-button{height:24px;min-width:24px;padding:3px;display:inline-flex}.fk-polish.fku-button{height:28px}.fk-menu-content{min-width:170px;font:12px/1.65 -apple-system,BlinkMacSystemFont,PingFang SC,sans-serif}.fk-menu-content>b{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--color-text-3);font-weight:500;margin:0 0 10px}.fk-menu-content>.fku-button{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;font-size:12px;color:var(--color-text-2);padding:0 8px;margin:2px 0}.fk-menu-content>.fku-button>span{display:inline-flex;align-items:center;gap:6px}.fk-menu-content small{color:var(--color-text-3);font-size:10px}.fk-variable-menu{position:static;min-width:250px;width:270px;max-width:calc(100vw - 60px)}.fk-variable-menu>b>span{font-size:8px;letter-spacing:1px}.fk-variable-menu .fku-input{margin-bottom:6px}.fk-variable-menu input{border:0;margin:0;padding:0;font:inherit}.fk-video-preview{display:block;width:100%;max-height:75vh}.fk-inline-error.fku-alert{display:flex;width:calc(100% - 28px);padding:8px 12px}.fk-inline-error .arco-alert-body{font-size:12px}@media(max-width:600px){.fk-toolbar .fk-setting{font-size:10px;gap:3px;padding:0 3px}.fk-toolbar .fk-setting>.fkp-icon{display:none}.fk-toolbar .fku-switch.arco-switch-small{min-width:22px}.fk-variable-menu{left:auto}}
@@ -0,0 +1,10 @@
1
+ import { App } from 'vue';
2
+ export { default as FkpRichText } from './rich-text';
3
+ export type { KnowledgeMode } from './rich-text/types';
4
+ export type { FkpRichTextProps, FkpRichTextHandle, KnowledgeSceneV1, KnowledgeConditionV1, LoadedConditionV1, SaveConditionInputV1, SavedConditionV1, KnowledgePersistenceAdapterV1, KnowledgeType, CapabilityId, CapabilitySlot, CapabilityRuleV1, SceneConfigInputV1, RichTextHostPorts, PortRequestContext, PortResult, PortErrorCode, Page, CapabilityOption, ToolFormField, ToolFormDefinition, VariableOption, AgentSummary, AgentPrompt, MediaAsset, SceneConfigLayersV1, HostPolicySnapshotV1, EditorDiagnostic, ChangeMeta, } from './rich-text/public/types';
5
+ export { emptyScene, resolveSceneConfig } from './rich-text';
6
+ export { serializeQuestionForModel, serializeQuestionTagsForModel, } from './rich-text';
7
+ declare const _default: {
8
+ install(app: App): void;
9
+ };
10
+ export default _default;
@@ -0,0 +1,242 @@
1
+ import { JSONContent } from '@tiptap/core';
2
+ import { ChoiceTokenKind } from './model/node-contract';
3
+ import { MediaTarget } from './runtime/media-target';
4
+ import { PluginPlan } from './runtime/operations';
5
+ import { CapabilityId, ChangeMeta, EditorDiagnostic, FkpRichTextProps, KnowledgeSceneV1 } from './public/types';
6
+ declare const _default: import('vue').DefineComponent<FkpRichTextProps, {
7
+ undoTypeSwitch(): boolean;
8
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
9
+ delete: () => any;
10
+ help: (request: {
11
+ capabilityId: CapabilityId;
12
+ }) => any;
13
+ change: (scene: KnowledgeSceneV1, meta: ChangeMeta) => any;
14
+ "update:modelValue": (scene: KnowledgeSceneV1) => any;
15
+ diagnostic: (issue: EditorDiagnostic) => any;
16
+ "busy-change": (busy: {
17
+ uploading: number;
18
+ requesting: number;
19
+ }) => any;
20
+ }, string, import('vue').PublicProps, Readonly<FkpRichTextProps> & Readonly<{
21
+ onDelete?: (() => any) | undefined;
22
+ onHelp?: ((request: {
23
+ capabilityId: CapabilityId;
24
+ }) => any) | undefined;
25
+ onChange?: ((scene: KnowledgeSceneV1, meta: ChangeMeta) => any) | undefined;
26
+ "onUpdate:modelValue"?: ((scene: KnowledgeSceneV1) => any) | undefined;
27
+ onDiagnostic?: ((issue: EditorDiagnostic) => any) | undefined;
28
+ "onBusy-change"?: ((busy: {
29
+ uploading: number;
30
+ requesting: number;
31
+ }) => any) | undefined;
32
+ }>, {
33
+ readonly: boolean;
34
+ disabled: boolean;
35
+ sceneKey: string;
36
+ modelValue: KnowledgeSceneV1;
37
+ ackRevision: number;
38
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
39
+ sceneRoot: HTMLElement;
40
+ toolbar: HTMLDivElement;
41
+ typeWrap: HTMLDivElement;
42
+ toolbarLeft: HTMLDivElement;
43
+ area: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{
44
+ modelValue: JSONContent;
45
+ editable: boolean;
46
+ placeholder?: string;
47
+ referencePlaceholder?: boolean;
48
+ schemaPlan: import('./runtime/schema-plan').KnowledgeSchemaPlan;
49
+ activeChoiceId?: string | null;
50
+ }> & Readonly<{
51
+ "onUpdate:modelValue"?: ((value: JSONContent) => any) | undefined;
52
+ "onRetry-media"?: ((id: string) => any) | undefined;
53
+ "onLoad-error"?: ((message: string) => any) | undefined;
54
+ "onEdit-tool"?: ((payload: {
55
+ nodeId: string;
56
+ nodeVersion: number;
57
+ key: string;
58
+ label: string;
59
+ params: Record<string, unknown> | null;
60
+ }) => any) | undefined;
61
+ "onChoice-menu"?: ((payload: {
62
+ nodeId: string;
63
+ nodeVersion: number;
64
+ key: string;
65
+ kind: ChoiceTokenKind;
66
+ anchor: HTMLElement;
67
+ }) => any) | undefined;
68
+ "onLeave-choice"?: (() => any) | undefined;
69
+ }>, {
70
+ isSelectionInsideOriginalReply: () => boolean;
71
+ insertToken: (kind: string, key: string, label: string, token?: string) => void;
72
+ insertOriginal: () => void;
73
+ insertSeparator: () => void;
74
+ insertBatch: (content: JSONContent[], target: MediaTarget, refocus: boolean) => JSONContent | null;
75
+ restoreDoc: (doc: JSONContent) => void;
76
+ insertMedia: (asset: {
77
+ id?: string;
78
+ url: string;
79
+ kind: "image" | "video";
80
+ posterUrl?: string;
81
+ }, name: string, target?: MediaTarget) => boolean;
82
+ insertPendingMedia: (file: File, kind: "image" | "video", target: MediaTarget) => string | null;
83
+ applyNodeUpdate: (plan: Extract<PluginPlan, {
84
+ kind: "updateNode";
85
+ }>, owner: "image" | "video") => boolean;
86
+ applyPluginNodeOperation: (plan: import('./runtime/operations').NodeMutationPlan, owner: string) => boolean;
87
+ applyPluginNodeOperations: (plans: readonly import('./runtime/operations').NodeMutationPlan[], owner: string) => boolean;
88
+ previewPluginNodeOperations: (plans: readonly import('./runtime/operations').NodeMutationPlan[], owner: string) => JSONContent | null;
89
+ failMedia: (id: string, message: string, expectedNodeVersion: number) => boolean;
90
+ retryMedia: (id: string, expectedNodeVersion: number) => boolean;
91
+ getMediaState: (id: string) => import('./runtime/media-state').MediaNodeState | null;
92
+ reportMediaProgress: (id: string, expectedNodeVersion: number, percent: number) => boolean;
93
+ captureSelection: () => {
94
+ nodeCaret?: {
95
+ id: string;
96
+ kind: "inlineAfter";
97
+ offset: number;
98
+ } | {
99
+ id: string;
100
+ kind: "blockAfter";
101
+ offset: number;
102
+ siblingOffset: number;
103
+ } | undefined;
104
+ from: number;
105
+ to: number;
106
+ focused: boolean;
107
+ } | null;
108
+ restoreSelection: (selection: ReturnType<() => {
109
+ nodeCaret?: {
110
+ id: string;
111
+ kind: "inlineAfter";
112
+ offset: number;
113
+ } | {
114
+ id: string;
115
+ kind: "blockAfter";
116
+ offset: number;
117
+ siblingOffset: number;
118
+ } | undefined;
119
+ from: number;
120
+ to: number;
121
+ focused: boolean;
122
+ } | null>) => void;
123
+ captureMediaTarget: () => MediaTarget | null;
124
+ captureMediaTargetAt: (clientX: number, clientY: number) => MediaTarget | null;
125
+ focus: () => boolean | undefined;
126
+ getJSON: () => import('@tiptap/core').DocumentType<Record<string, any> | undefined, import('@tiptap/core').NodeType<string, Record<string, any> | undefined, any, (import('@tiptap/core').NodeType<any, any, any, any> | import('@tiptap/core').TextType<import('@tiptap/core').MarkType<any, any>>)[]>[]> | undefined;
127
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
128
+ "update:modelValue": (value: JSONContent) => any;
129
+ "retry-media": (id: string) => any;
130
+ "load-error": (message: string) => any;
131
+ "edit-tool": (payload: {
132
+ nodeId: string;
133
+ nodeVersion: number;
134
+ key: string;
135
+ label: string;
136
+ params: Record<string, unknown> | null;
137
+ }) => any;
138
+ "choice-menu": (payload: {
139
+ nodeId: string;
140
+ nodeVersion: number;
141
+ key: string;
142
+ kind: ChoiceTokenKind;
143
+ anchor: HTMLElement;
144
+ }) => any;
145
+ "leave-choice": () => any;
146
+ }, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
147
+ areaRoot: HTMLDivElement;
148
+ }, any, import('vue').ComponentProvideOptions, {
149
+ P: {};
150
+ B: {};
151
+ D: {};
152
+ C: {};
153
+ M: {};
154
+ Defaults: {};
155
+ }, Readonly<{
156
+ modelValue: JSONContent;
157
+ editable: boolean;
158
+ placeholder?: string;
159
+ referencePlaceholder?: boolean;
160
+ schemaPlan: import('./runtime/schema-plan').KnowledgeSchemaPlan;
161
+ activeChoiceId?: string | null;
162
+ }> & Readonly<{
163
+ "onUpdate:modelValue"?: ((value: JSONContent) => any) | undefined;
164
+ "onRetry-media"?: ((id: string) => any) | undefined;
165
+ "onLoad-error"?: ((message: string) => any) | undefined;
166
+ "onEdit-tool"?: ((payload: {
167
+ nodeId: string;
168
+ nodeVersion: number;
169
+ key: string;
170
+ label: string;
171
+ params: Record<string, unknown> | null;
172
+ }) => any) | undefined;
173
+ "onChoice-menu"?: ((payload: {
174
+ nodeId: string;
175
+ nodeVersion: number;
176
+ key: string;
177
+ kind: ChoiceTokenKind;
178
+ anchor: HTMLElement;
179
+ }) => any) | undefined;
180
+ "onLeave-choice"?: (() => any) | undefined;
181
+ }>, {
182
+ isSelectionInsideOriginalReply: () => boolean;
183
+ insertToken: (kind: string, key: string, label: string, token?: string) => void;
184
+ insertOriginal: () => void;
185
+ insertSeparator: () => void;
186
+ insertBatch: (content: JSONContent[], target: MediaTarget, refocus: boolean) => JSONContent | null;
187
+ restoreDoc: (doc: JSONContent) => void;
188
+ insertMedia: (asset: {
189
+ id?: string;
190
+ url: string;
191
+ kind: "image" | "video";
192
+ posterUrl?: string;
193
+ }, name: string, target?: MediaTarget) => boolean;
194
+ insertPendingMedia: (file: File, kind: "image" | "video", target: MediaTarget) => string | null;
195
+ applyNodeUpdate: (plan: Extract<PluginPlan, {
196
+ kind: "updateNode";
197
+ }>, owner: "image" | "video") => boolean;
198
+ applyPluginNodeOperation: (plan: import('./runtime/operations').NodeMutationPlan, owner: string) => boolean;
199
+ applyPluginNodeOperations: (plans: readonly import('./runtime/operations').NodeMutationPlan[], owner: string) => boolean;
200
+ previewPluginNodeOperations: (plans: readonly import('./runtime/operations').NodeMutationPlan[], owner: string) => JSONContent | null;
201
+ failMedia: (id: string, message: string, expectedNodeVersion: number) => boolean;
202
+ retryMedia: (id: string, expectedNodeVersion: number) => boolean;
203
+ getMediaState: (id: string) => import('./runtime/media-state').MediaNodeState | null;
204
+ reportMediaProgress: (id: string, expectedNodeVersion: number, percent: number) => boolean;
205
+ captureSelection: () => {
206
+ nodeCaret?: {
207
+ id: string;
208
+ kind: "inlineAfter";
209
+ offset: number;
210
+ } | {
211
+ id: string;
212
+ kind: "blockAfter";
213
+ offset: number;
214
+ siblingOffset: number;
215
+ } | undefined;
216
+ from: number;
217
+ to: number;
218
+ focused: boolean;
219
+ } | null;
220
+ restoreSelection: (selection: ReturnType<() => {
221
+ nodeCaret?: {
222
+ id: string;
223
+ kind: "inlineAfter";
224
+ offset: number;
225
+ } | {
226
+ id: string;
227
+ kind: "blockAfter";
228
+ offset: number;
229
+ siblingOffset: number;
230
+ } | undefined;
231
+ from: number;
232
+ to: number;
233
+ focused: boolean;
234
+ } | null>) => void;
235
+ captureMediaTarget: () => MediaTarget | null;
236
+ captureMediaTargetAt: (clientX: number, clientY: number) => MediaTarget | null;
237
+ focus: () => boolean | undefined;
238
+ getJSON: () => import('@tiptap/core').DocumentType<Record<string, any> | undefined, import('@tiptap/core').NodeType<string, Record<string, any> | undefined, any, (import('@tiptap/core').NodeType<any, any, any, any> | import('@tiptap/core').TextType<import('@tiptap/core').MarkType<any, any>>)[]>[]> | undefined;
239
+ }, {}, {}, {}, {}> | null;
240
+ fileInput: HTMLInputElement;
241
+ }, HTMLElement>;
242
+ export default _default;
@@ -0,0 +1,92 @@
1
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
2
+ editor: {
3
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["editor"]>;
4
+ required: true;
5
+ };
6
+ node: {
7
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["node"]>;
8
+ required: true;
9
+ };
10
+ decorations: {
11
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["decorations"]>;
12
+ required: true;
13
+ };
14
+ selected: {
15
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["selected"]>;
16
+ required: true;
17
+ };
18
+ extension: {
19
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["extension"]>;
20
+ required: true;
21
+ };
22
+ getPos: {
23
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["getPos"]>;
24
+ required: true;
25
+ };
26
+ updateAttributes: {
27
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["updateAttributes"]>;
28
+ required: true;
29
+ };
30
+ deleteNode: {
31
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["deleteNode"]>;
32
+ required: true;
33
+ };
34
+ view: {
35
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["view"]>;
36
+ required: true;
37
+ };
38
+ innerDecorations: {
39
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["innerDecorations"]>;
40
+ required: true;
41
+ };
42
+ HTMLAttributes: {
43
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["HTMLAttributes"]>;
44
+ required: true;
45
+ };
46
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
47
+ editor: {
48
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["editor"]>;
49
+ required: true;
50
+ };
51
+ node: {
52
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["node"]>;
53
+ required: true;
54
+ };
55
+ decorations: {
56
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["decorations"]>;
57
+ required: true;
58
+ };
59
+ selected: {
60
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["selected"]>;
61
+ required: true;
62
+ };
63
+ extension: {
64
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["extension"]>;
65
+ required: true;
66
+ };
67
+ getPos: {
68
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["getPos"]>;
69
+ required: true;
70
+ };
71
+ updateAttributes: {
72
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["updateAttributes"]>;
73
+ required: true;
74
+ };
75
+ deleteNode: {
76
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["deleteNode"]>;
77
+ required: true;
78
+ };
79
+ view: {
80
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["view"]>;
81
+ required: true;
82
+ };
83
+ innerDecorations: {
84
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["innerDecorations"]>;
85
+ required: true;
86
+ };
87
+ HTMLAttributes: {
88
+ type: import('vue').PropType<import('@tiptap/core').NodeViewProps["HTMLAttributes"]>;
89
+ required: true;
90
+ };
91
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
92
+ export default _default;
@@ -0,0 +1,35 @@
1
+ import { KnowledgeSceneV1 } from '../public/types';
2
+ import { LegacyKnowledgeItem, LegacyReferenceResolver } from '../legacy-converter';
3
+ export interface ConversionFixture {
4
+ id: string;
5
+ label: string;
6
+ description: string;
7
+ coverage: string[];
8
+ sourceRecordKey: string;
9
+ questionText: string;
10
+ questionStorage: 'external' | 'inline';
11
+ item: LegacyKnowledgeItem;
12
+ expected?: {
13
+ type: KnowledgeSceneV1['type'];
14
+ question: string;
15
+ blockTypes: string[];
16
+ tokenKinds: string[];
17
+ tokenKeys: string[];
18
+ textParts: string[];
19
+ media: Array<{
20
+ kind: string;
21
+ src: string;
22
+ }>;
23
+ enabledStates: string[];
24
+ selectedTagIds?: Record<string, string>;
25
+ agentId?: string;
26
+ };
27
+ expectedIssuePath?: string;
28
+ }
29
+ export declare const conversionFixtureResolver: LegacyReferenceResolver;
30
+ export declare function createConversionFixtures(media: {
31
+ imageUrl: string;
32
+ videoUrl: string;
33
+ }): ConversionFixture[];
34
+ /** Checks the visible scene contract of a fixture without relying on generated node IDs. */
35
+ export declare function checkConversionFixture(fixture: ConversionFixture, scene: KnowledgeSceneV1): string[];
@@ -0,0 +1,3 @@
1
+ import { CapabilityDescriptor } from './descriptor';
2
+ export declare const catalog: readonly CapabilityDescriptor[];
3
+ export type { CapabilityDescriptor } from './descriptor';
@@ -0,0 +1,58 @@
1
+ import { CapabilityId, CapabilitySlot, KnowledgeType, RichTextHostPorts } from '../public/types';
2
+ export declare const optionSourcePort: {
3
+ readonly agents: "searchAgents";
4
+ readonly variables: "listVariables";
5
+ readonly flatTags: "listCapabilityOptions";
6
+ readonly capabilities: "listCapabilityOptions";
7
+ };
8
+ export declare const hostActions: {
9
+ readonly agentOpenConfig: {
10
+ readonly id: "agentSelect.openConfig";
11
+ readonly requiredPorts: readonly ["openAgentConfig"];
12
+ };
13
+ readonly imageUpload: {
14
+ readonly id: "image.upload";
15
+ readonly requiredPorts: readonly ["uploadMedia"];
16
+ };
17
+ readonly videoUpload: {
18
+ readonly id: "video.upload";
19
+ readonly requiredPorts: readonly ["uploadMedia"];
20
+ };
21
+ readonly reasoningPolishPropose: {
22
+ readonly id: "reasoningPolish.propose";
23
+ readonly requiredPorts: readonly ["proposeReasoning"];
24
+ };
25
+ readonly reasoningTemplateLoad: {
26
+ readonly id: "reasoningTemplate.load";
27
+ readonly requiredPorts: readonly ["getReasoningTemplate"];
28
+ };
29
+ };
30
+ export interface CapabilityDescriptor {
31
+ id: CapabilityId;
32
+ apiVersion: 1;
33
+ dataVersion: number;
34
+ implementation: 'plugin' | 'host';
35
+ label: string;
36
+ slot: CapabilitySlot;
37
+ order: number;
38
+ types: readonly KnowledgeType[];
39
+ icon: string;
40
+ actions?: readonly {
41
+ id: string;
42
+ requiredPorts: readonly (keyof RichTextHostPorts)[];
43
+ }[];
44
+ /** Read-only view data dependencies; they do not execute editor operations. */
45
+ readPorts?: readonly (keyof RichTextHostPorts)[];
46
+ primaryActionId?: string;
47
+ optionKind?: 'media' | 'selection';
48
+ optionSource?: keyof typeof optionSourcePort;
49
+ /** Selection menu opens on pointer hover instead of click. */
50
+ optionTrigger?: 'click' | 'hover';
51
+ /** Selection options can contain category entries that load child pages. */
52
+ optionHierarchy?: 'flat' | 'tree';
53
+ /** Ports used by host-owned selection UI before the plugin action runs. */
54
+ uiPorts?: readonly (keyof RichTextHostPorts)[];
55
+ questionTag?: {
56
+ kind: 'todo' | 'default';
57
+ };
58
+ }
@@ -0,0 +1,6 @@
1
+ export interface MediaOptions {
2
+ maxBytes?: number;
3
+ mimeTypes?: string[];
4
+ }
5
+ export declare function parseMediaOptions(value: unknown, kind: 'image' | 'video'): MediaOptions | null;
6
+ export declare function narrowMediaOptions(layers: readonly (MediaOptions | undefined)[], onWiden: () => void): MediaOptions;
@@ -0,0 +1,17 @@
1
+ import { CapabilityDescriptor } from './catalog';
2
+ import { MediaOptions } from './media-options';
3
+ import { SelectionOptions } from './selection-options';
4
+ import { EditorDiagnostic, FkpRichTextProps, KnowledgeType } from '../public/types';
5
+ export interface ResolvedCapability extends CapabilityDescriptor {
6
+ canInsert: boolean;
7
+ visible: boolean;
8
+ options?: MediaOptions | SelectionOptions;
9
+ }
10
+ export interface ResolvedSceneConfig {
11
+ type: KnowledgeType;
12
+ mode: 'editable' | 'readonly';
13
+ capabilities: ResolvedCapability[];
14
+ diagnostics: EditorDiagnostic[];
15
+ fingerprint: string;
16
+ }
17
+ export declare function resolveSceneConfig(type: KnowledgeType, input: Pick<FkpRichTextProps, 'config' | 'policy' | 'ports' | 'readonly' | 'disabled'>, now?: number): ResolvedSceneConfig;
@@ -0,0 +1,6 @@
1
+ export interface SelectionOptions {
2
+ pageSize?: number;
3
+ }
4
+ /** Parse options for paged variable, attribute, tool, Agent and template lists. */
5
+ export declare function parseSelectionOptions(value: unknown): SelectionOptions | null;
6
+ export declare function narrowSelectionOptions(layers: readonly (SelectionOptions | undefined)[], onWiden: () => void): Required<SelectionOptions>;