@opentiny/next-remoter 0.2.9 → 0.3.0-alpha.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.
@@ -5,6 +5,7 @@ import { ICustomAgentModelProviderLlmConfig } from '../types/type';
5
5
  import { MenuItemConfig, McpServerConfig } from '@opentiny/next-sdk';
6
6
  import { UnifiedModelConfig } from '../types/model-config';
7
7
 
8
+ declare function registerContentRenderer(key: string, renderer: (content: any) => VNode): void;
8
9
  declare function __VLS_template(): Readonly<{
9
10
  welcome(): any;
10
11
  suggestions(): any;
@@ -134,14 +135,15 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
134
135
  type: BooleanConstructor;
135
136
  default: boolean;
136
137
  };
137
- /**
138
- * 开启页面工具按需加载:仅当前激活路由对应的 withPageTools 工具对 LLM 可见,
139
- * 并在插件面板中展示;未加载页面的工具不会暴露给模型,也不显示在面板上。
140
- * 默认 false(关闭),需显式传入 :pageToolsOnDemand="true" 开启。
141
- */
142
- pageToolsOnDemand: {
143
- type: BooleanConstructor;
144
- default: boolean;
138
+ /** 自定义欢迎区建议卡片(与 tr-prompts 的 items 格式一致)。不传则使用内置默认文案 */
139
+ promptItems: {
140
+ type: ArrayConstructor;
141
+ default: undefined;
142
+ };
143
+ /** 自定义输入框上方快捷操作按钮(与 pill 下拉菜单格式一致)。不传则使用内置默认文案 */
144
+ pillItems: {
145
+ type: ArrayConstructor;
146
+ default: undefined;
145
147
  };
146
148
  }>, {
147
149
  /** 大模型代理 */
@@ -255,7 +257,15 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
255
257
  }) => Promise<boolean>;
256
258
  /** 删除插件核心方法 */
257
259
  deletePlugin: (plugin: PluginInfo) => Promise<void>;
258
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
260
+ /** 注册内容渲染器 */
261
+ registerContentRenderer: typeof registerContentRenderer;
262
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
263
+ "before-ai-render": (currMessage: {
264
+ role: string;
265
+ content: string;
266
+ uiContent: any[];
267
+ }) => void;
268
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
259
269
  fullscreen: import('vue').PropType<any>;
260
270
  show: import('vue').PropType<any>;
261
271
  selectedModelId: import('vue').PropType<any>;
@@ -373,16 +383,23 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
373
383
  type: BooleanConstructor;
374
384
  default: boolean;
375
385
  };
376
- /**
377
- * 开启页面工具按需加载:仅当前激活路由对应的 withPageTools 工具对 LLM 可见,
378
- * 并在插件面板中展示;未加载页面的工具不会暴露给模型,也不显示在面板上。
379
- * 默认 false(关闭),需显式传入 :pageToolsOnDemand="true" 开启。
380
- */
381
- pageToolsOnDemand: {
382
- type: BooleanConstructor;
383
- default: boolean;
386
+ /** 自定义欢迎区建议卡片(与 tr-prompts 的 items 格式一致)。不传则使用内置默认文案 */
387
+ promptItems: {
388
+ type: ArrayConstructor;
389
+ default: undefined;
384
390
  };
385
- }>> & Readonly<{}>, {
391
+ /** 自定义输入框上方快捷操作按钮(与 pill 下拉菜单格式一致)。不传则使用内置默认文案 */
392
+ pillItems: {
393
+ type: ArrayConstructor;
394
+ default: undefined;
395
+ };
396
+ }>> & Readonly<{
397
+ "onBefore-ai-render"?: ((currMessage: {
398
+ role: string;
399
+ content: string;
400
+ uiContent: any[];
401
+ }) => any) | undefined;
402
+ }>, {
386
403
  title: string;
387
404
  systemPrompt: string;
388
405
  mode: string;
@@ -402,7 +419,8 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
402
419
  skills: Record<string, string>;
403
420
  layoutMode: "absolute" | "fixed" | "static" | "relative" | "sticky";
404
421
  debugStream: boolean;
405
- pageToolsOnDemand: boolean;
422
+ promptItems: unknown[];
423
+ pillItems: unknown[];
406
424
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
407
425
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
408
426
  export default _default;
@@ -1,7 +1,6 @@
1
1
  import { ChatCompletionResponse, ChatCompletionRequest, StreamHandler, BaseModelProvider, AIModelConfig } from '@opentiny/tiny-robot-kit';
2
2
  import { Ref } from 'vue';
3
3
  import { AgentModelProvider } from '@opentiny/next-sdk';
4
- import { getRemoteRouteState } from './useRouteBasedTools';
5
4
  import { ICustomAgentModelProviderLlmConfig } from '../types/type';
6
5
  import { ProviderV2 } from '@ai-sdk/provider';
7
6
  import { PromptManager } from './promptManager';
@@ -16,12 +15,6 @@ export declare class CustomAgentModelProvider extends BaseModelProvider {
16
15
  /** 生成式UI启用状态 */
17
16
  isGenuiEnabled?: Ref<boolean>;
18
17
  debugStream: boolean;
19
- /** 开启页面工具按需加载 */
20
- pageToolsOnDemand: boolean;
21
- /** 实例级路由状态 getter,由 useRouteBasedTools 注入,实现多 remoter 隔离 */
22
- private _getRouteState;
23
- /** 由 useRouteBasedTools 注入实例级 getRemoteRouteState,实现多实例隔离 */
24
- setRouteStateGetter(fn: () => ReturnType<typeof getRemoteRouteState>): void;
25
18
  constructor(config: AIModelConfig, systemPrompt: string, llmConfig?: ICustomAgentModelProviderLlmConfig);
26
19
  /**
27
20
  * 更新大语言模型配置
@@ -100,4 +100,5 @@ export declare function usePlugin(agent: any, enabledTools: Ref<Record<string, b
100
100
  category?: string | undefined;
101
101
  } | null>;
102
102
  searchPlugin: (query: string, item: PluginInfo) => boolean;
103
+ syncInstalledPluginTools: () => void;
103
104
  };
@@ -16,7 +16,7 @@ export declare function usePluginSession(options: {
16
16
  mode: string;
17
17
  qrCodeUrl?: string;
18
18
  remoteUrl?: string;
19
- menuItems?: MenuItemConfig[];
19
+ menuItems?: Ref<MenuItemConfig[] | undefined>;
20
20
  AILogoUrl?: string;
21
21
  show: Ref<boolean>;
22
22
  addPluginFromScan: (sessionId: string, agentRoot: string) => Promise<boolean>;
@@ -1,39 +1,7 @@
1
- import { Ref } from 'vue';
2
- import { PluginInfo } from '@opentiny/tiny-robot';
3
-
4
- /** 路由状态结构;initialized 为 true 表示已收到有效快照(如同窗口本地 map 或 iframe 收到 MSG_ROUTE_STATE_INITIAL) */
5
- export type RemoteRouteState = {
6
- toolRouteMap: Map<string, string>;
7
- activeRoutes: Set<string>;
8
- /** 是否已就绪:iframe 下收到父窗口快照后为 true,未收到前为 false,用于 fail closed */
9
- initialized: boolean;
10
- } | null;
11
1
  /**
12
- * 获取跨窗口同步后的路由状态(兼容旧 API,返回默认实例的状态)
13
- * @param instanceKey 可选,指定 remoter 实例 key;不传则返回默认实例(单例模式)
14
- */
15
- export declare const getRemoteRouteState: (instanceKey?: symbol) => RemoteRouteState;
16
- /**
17
- * 路由感知工具过滤 composable
18
- *
19
- * 支持两种场景:
20
- * - 同窗口:业务页面与 Remoter 在同一 window,直接读取 getToolRouteMap/getActiveRoutes
21
- * - iframe:Remoter 在 iframe 内,通过 remoter-ready 握手获取父窗口的路由状态,
22
- * 并接收父窗口广播的 page-ready/page-leave,实现按需加载
23
- *
24
- * 默认关闭(enabled = false),需显式传入 :pageToolsOnDemand="true" 开启。
2
+ * 简化后的工具同步:
3
+ * - 仅监听工具目录变化并触发 remoter refresh
25
4
  */
26
5
  export declare function useRouteBasedTools(options: {
27
- /** 是否启用路由感知模式,默认 false,支持运行时动态切换 */
28
- enabled: Ref<boolean>;
29
- /** 仅依赖 ignoreToolnames 的最小 Agent 约束 */
30
- agent: {
31
- ignoreToolnames: string[];
32
- };
33
- /** 已安装插件列表的响应式引用,用于同步 UI 开关状态 */
34
- installedPlugins: Ref<PluginInfo[]>;
35
- /** 可选,CustomAgentModelProvider 实例,用于注入实例级 getRemoteRouteState,实现多实例隔离 */
36
- customAgentProvider?: {
37
- setRouteStateGetter: (fn: () => RemoteRouteState) => void;
38
- };
6
+ onToolCatalogChanged?: () => void | Promise<void>;
39
7
  }): void;