yc-component 0.1.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 (80) hide show
  1. package/README.en.md +36 -0
  2. package/README.md +216 -0
  3. package/dist/_virtual/_plugin-vue_export-helper.js +9 -0
  4. package/dist/ai-task/api/http.d.ts +6 -0
  5. package/dist/ai-task/api/http.d.ts.map +1 -0
  6. package/dist/ai-task/api/http.js +40 -0
  7. package/dist/ai-task/api/prompt.d.ts +11 -0
  8. package/dist/ai-task/api/prompt.d.ts.map +1 -0
  9. package/dist/ai-task/api/prompt.js +9 -0
  10. package/dist/ai-task/api/workflow.d.ts +51 -0
  11. package/dist/ai-task/api/workflow.d.ts.map +1 -0
  12. package/dist/ai-task/api/workflow.js +15 -0
  13. package/dist/ai-task/components/AiTaskPanel.css +1 -0
  14. package/dist/ai-task/components/AiTaskPanel.d.ts +4 -0
  15. package/dist/ai-task/components/AiTaskPanel.d.ts.map +1 -0
  16. package/dist/ai-task/components/AiTaskPanel.vue.js +7 -0
  17. package/dist/ai-task/components/AiTaskPanel.vue2.js +251 -0
  18. package/dist/ai-task/components/AiTaskProvider.d.ts +26 -0
  19. package/dist/ai-task/components/AiTaskProvider.d.ts.map +1 -0
  20. package/dist/ai-task/components/AiTaskProvider.vue.js +60 -0
  21. package/dist/ai-task/components/AiTaskProvider.vue2.js +4 -0
  22. package/dist/ai-task/components/AiUseDialog.css +1 -0
  23. package/dist/ai-task/components/AiUseDialog.d.ts +22 -0
  24. package/dist/ai-task/components/AiUseDialog.d.ts.map +1 -0
  25. package/dist/ai-task/components/AiUseDialog.vue.js +7 -0
  26. package/dist/ai-task/components/AiUseDialog.vue2.js +224 -0
  27. package/dist/ai-task/composables/useAiTask.d.ts +62 -0
  28. package/dist/ai-task/composables/useAiTask.d.ts.map +1 -0
  29. package/dist/ai-task/composables/useAiTask.js +11 -0
  30. package/dist/ai-task/config.d.ts +23 -0
  31. package/dist/ai-task/config.d.ts.map +1 -0
  32. package/dist/ai-task/config.js +23 -0
  33. package/dist/ai-task/context.d.ts +59 -0
  34. package/dist/ai-task/context.d.ts.map +1 -0
  35. package/dist/ai-task/context.js +42 -0
  36. package/dist/ai-task/dialog-state.d.ts +28 -0
  37. package/dist/ai-task/dialog-state.d.ts.map +1 -0
  38. package/dist/ai-task/dialog-state.js +28 -0
  39. package/dist/ai-task/index.d.ts +15 -0
  40. package/dist/ai-task/index.d.ts.map +1 -0
  41. package/dist/ai-task/index.js +24 -0
  42. package/dist/ai-task/inject.d.ts +307 -0
  43. package/dist/ai-task/inject.d.ts.map +1 -0
  44. package/dist/ai-task/inject.js +10 -0
  45. package/dist/ai-task/services/taskRunner.d.ts +11 -0
  46. package/dist/ai-task/services/taskRunner.d.ts.map +1 -0
  47. package/dist/ai-task/services/taskRunner.js +60 -0
  48. package/dist/ai-task/store/useAiTaskStore.d.ts +255 -0
  49. package/dist/ai-task/store/useAiTaskStore.d.ts.map +1 -0
  50. package/dist/ai-task/store/useAiTaskStore.js +230 -0
  51. package/dist/ai-task/style.css +3 -0
  52. package/dist/ai-task/types/index.d.ts +105 -0
  53. package/dist/ai-task/types/index.d.ts.map +1 -0
  54. package/dist/ai-task/useScopedStore.d.ts +255 -0
  55. package/dist/ai-task/useScopedStore.d.ts.map +1 -0
  56. package/dist/ai-task/useScopedStore.js +10 -0
  57. package/dist/ai-task/utils/runClientScript.d.ts +5 -0
  58. package/dist/ai-task/utils/runClientScript.d.ts.map +1 -0
  59. package/dist/ai-task/utils/runClientScript.js +26 -0
  60. package/dist/ai-task/utils/storage.d.ts +20 -0
  61. package/dist/ai-task/utils/storage.d.ts.map +1 -0
  62. package/dist/ai-task/utils/storage.js +45 -0
  63. package/dist/index.d.ts +6 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +31 -0
  66. package/dist/page-window/YcPageWindow.css +1 -0
  67. package/dist/page-window/YcPageWindow.d.ts +58 -0
  68. package/dist/page-window/YcPageWindow.d.ts.map +1 -0
  69. package/dist/page-window/YcPageWindow.vue.js +7 -0
  70. package/dist/page-window/YcPageWindow.vue2.js +230 -0
  71. package/dist/page-window/index.d.ts +5 -0
  72. package/dist/page-window/index.d.ts.map +1 -0
  73. package/dist/page-window/index.js +5 -0
  74. package/dist/page-window/style.css +1 -0
  75. package/dist/page-window/types.d.ts +32 -0
  76. package/dist/page-window/types.d.ts.map +1 -0
  77. package/dist/plugin.d.ts +14 -0
  78. package/dist/plugin.d.ts.map +1 -0
  79. package/dist/plugin.js +19 -0
  80. package/package.json +84 -0
@@ -0,0 +1,11 @@
1
+ import { inject as o } from "vue";
2
+ import { createAiTaskApi as t } from "../context.js";
3
+ import { AI_TASK_INJECT_KEY as e } from "../inject.js";
4
+ import { useScopedAiTaskStore as i } from "../useScopedStore.js";
5
+ function f() {
6
+ const r = o(e, null);
7
+ return r || t(i());
8
+ }
9
+ export {
10
+ f as useAiTask
11
+ };
@@ -0,0 +1,23 @@
1
+ import { Prompt } from './api/prompt';
2
+ export interface YcAiTaskConfig {
3
+ /** 工作流 projectId,默认 default-project */
4
+ projectId?: string;
5
+ /** localStorage 键名,默认 yc-ai-task-queue-v1 */
6
+ storageKey?: string;
7
+ /** API 根路径,留空则走当前站点相对路径(如 /yc-ai) */
8
+ baseURL?: string;
9
+ /**
10
+ * 可选:读取 Bearer Token。
11
+ * 默认不传则请求不带 Token,由 yc_ai_service 根据 Origin 域名白名单决定是否放行。
12
+ */
13
+ getToken?: () => string | null;
14
+ /** 401 时回调(如跳转登录);仅配置了 getToken 的管理端场景需要 */
15
+ onUnauthorized?: () => void;
16
+ /** 自定义加载提示词列表,不传则请求 GET /yc-ai/ai/prompts */
17
+ listPrompts?: () => Promise<Prompt[]>;
18
+ }
19
+ export declare function setAiTaskConfig(partial: YcAiTaskConfig): void;
20
+ export declare function getAiTaskConfig(): YcAiTaskConfig;
21
+ export declare function getProjectId(): string;
22
+ export declare function getStorageKey(): string;
23
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/ai-task/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAE1C,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;IAC9B,4CAA4C;IAC5C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;CACtC;AASD,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,QAEtD;AAED,wBAAgB,eAAe,IAAI,cAAc,CAEhD;AAED,wBAAgB,YAAY,WAE3B;AAED,wBAAgB,aAAa,WAE5B"}
@@ -0,0 +1,23 @@
1
+ const t = {
2
+ projectId: "default-project",
3
+ storageKey: "yc-ai-task-queue-v1"
4
+ };
5
+ let e = { ...t };
6
+ function n(o) {
7
+ e = { ...e, ...o };
8
+ }
9
+ function r() {
10
+ return e;
11
+ }
12
+ function c() {
13
+ return e.projectId ?? t.projectId;
14
+ }
15
+ function g() {
16
+ return e.storageKey ?? t.storageKey;
17
+ }
18
+ export {
19
+ r as getAiTaskConfig,
20
+ c as getProjectId,
21
+ g as getStorageKey,
22
+ n as setAiTaskConfig
23
+ };
@@ -0,0 +1,59 @@
1
+ import { useAiTaskStore } from './store/useAiTaskStore';
2
+ import { AiTaskFinishHandler, AiTaskSubmitOptions, AiUseDialogOptions, AiTaskStatus, AiTaskItem } from './types';
3
+ import { Ref, ComputedRef } from 'vue';
4
+ export type AiTaskStore = ReturnType<typeof useAiTaskStore>;
5
+ export declare function createAiTaskApi(store: AiTaskStore): {
6
+ tasks: Ref<{
7
+ id: string;
8
+ title: string;
9
+ freeText: string;
10
+ promptId?: number | undefined;
11
+ autoMatch?: boolean | undefined;
12
+ status: AiTaskStatus;
13
+ progress: number;
14
+ summary: string;
15
+ runId?: number | undefined;
16
+ result?: Record<string, unknown> | undefined;
17
+ errorMessage?: string | undefined;
18
+ createdAt: number;
19
+ finishedAt?: number | undefined;
20
+ logs: string[];
21
+ }[], AiTaskItem[] | {
22
+ id: string;
23
+ title: string;
24
+ freeText: string;
25
+ promptId?: number | undefined;
26
+ autoMatch?: boolean | undefined;
27
+ status: AiTaskStatus;
28
+ progress: number;
29
+ summary: string;
30
+ runId?: number | undefined;
31
+ result?: Record<string, unknown> | undefined;
32
+ errorMessage?: string | undefined;
33
+ createdAt: number;
34
+ finishedAt?: number | undefined;
35
+ logs: string[];
36
+ }[]>;
37
+ panelVisible: Ref<boolean, boolean>;
38
+ panelMinimized: Ref<boolean, boolean>;
39
+ dialogVisible: Ref<boolean, boolean>;
40
+ runningCount: ComputedRef<number>;
41
+ activeCount: ComputedRef<number>;
42
+ panelTitle: ComputedRef<"AI 处理中" | "部分任务失败" | "AI 任务">;
43
+ panelSubtitle: ComputedRef<string>;
44
+ openUseDialog: (options?: AiUseDialogOptions) => void;
45
+ closeUseDialog: () => void;
46
+ openTaskPanel: () => void;
47
+ hideTaskPanel: () => void;
48
+ togglePanelMinimize: () => void;
49
+ submitTask: (options: AiTaskSubmitOptions) => string;
50
+ cancelTask: (id: string) => Promise<void>;
51
+ cancelAll: () => void;
52
+ clearFinished: () => void;
53
+ removeTask: (id: string) => void;
54
+ loadTaskResult: (id: string) => Promise<Record<string, unknown> | null>;
55
+ refreshTasks: () => Promise<void>;
56
+ onTaskFinish: (handler: AiTaskFinishHandler) => () => boolean;
57
+ };
58
+ export type AiTaskContext = ReturnType<typeof createAiTaskApi>;
59
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/ai-task/context.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,SAAS,CAAA;AAEhB,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAE3D,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAqBpB,kBAAkB;;;;;0BAQtB,mBAAmB;qBACxB,MAAM;;;qBAGN,MAAM;yBACF,MAAM;;4BAEH,mBAAmB;EAE9C;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA"}
@@ -0,0 +1,42 @@
1
+ import { storeToRefs as g } from "pinia";
2
+ import { showAiDialog as u } from "./dialog-state.js";
3
+ function p(e) {
4
+ const {
5
+ tasks: i,
6
+ panelVisible: l,
7
+ panelMinimized: n,
8
+ dialogVisible: s,
9
+ runningCount: c,
10
+ activeCount: o,
11
+ panelTitle: T,
12
+ panelSubtitle: k
13
+ } = g(e);
14
+ return {
15
+ tasks: i,
16
+ panelVisible: l,
17
+ panelMinimized: n,
18
+ dialogVisible: s,
19
+ runningCount: c,
20
+ activeCount: o,
21
+ panelTitle: T,
22
+ panelSubtitle: k,
23
+ openUseDialog: (a) => {
24
+ u(a ?? {}), e.openDialog(a ?? {});
25
+ },
26
+ closeUseDialog: () => e.closeDialog(),
27
+ openTaskPanel: () => e.showPanel(),
28
+ hideTaskPanel: () => e.hidePanel(),
29
+ togglePanelMinimize: () => e.toggleMinimize(),
30
+ submitTask: (a) => e.enqueue(a),
31
+ cancelTask: (a) => e.cancelTask(a),
32
+ cancelAll: () => e.cancelAll(),
33
+ clearFinished: () => e.clearFinished(),
34
+ removeTask: (a) => e.removeTask(a),
35
+ loadTaskResult: (a) => e.loadTaskResult(a),
36
+ refreshTasks: () => e.refreshActiveTasks(),
37
+ onTaskFinish: (a) => e.onTaskFinish(a)
38
+ };
39
+ }
40
+ export {
41
+ p as createAiTaskApi
42
+ };
@@ -0,0 +1,28 @@
1
+ import { AiUseDialogOptions, AiTaskFinishHandler } from './types';
2
+ export interface AiDialogState {
3
+ visible: boolean;
4
+ options: AiUseDialogOptions;
5
+ }
6
+ export declare const AI_DIALOG_OPEN_EVENT = "yc-component:ai-dialog-open";
7
+ export declare const aiDialogState: {
8
+ visible: boolean;
9
+ options: {
10
+ title?: string | undefined;
11
+ freeText?: string | undefined;
12
+ promptId?: number | undefined;
13
+ autoMatch?: boolean | undefined;
14
+ prompts?: {
15
+ id: number;
16
+ name: string;
17
+ content?: string | undefined;
18
+ category?: string | undefined;
19
+ workflowDefinitionKey?: string | undefined;
20
+ }[] | undefined;
21
+ onSubmitted?: ((taskId: string) => void) | undefined;
22
+ onFinish?: AiTaskFinishHandler | undefined;
23
+ };
24
+ };
25
+ export declare function showAiDialog(options?: AiUseDialogOptions): void;
26
+ export declare function hideAiDialog(): void;
27
+ export declare function openAiUseDialog(options?: AiUseDialogOptions): void;
28
+ //# sourceMappingURL=dialog-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog-state.d.ts","sourceRoot":"","sources":["../../src/ai-task/dialog-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEjD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,kBAAkB,CAAA;CAC5B;AAGD,eAAO,MAAM,oBAAoB,gCAAgC,CAAA;AAajE,eAAO,MAAM,aAAa;aAlBf,OAAO;;;;;;;;;;;;;;;;CAkBqB,CAAA;AAEvC,wBAAgB,YAAY,CAAC,OAAO,GAAE,kBAAuB,QAM5D;AAED,wBAAgB,YAAY,SAE3B;AAED,wBAAgB,eAAe,CAAC,OAAO,GAAE,kBAAuB,QAE/D"}
@@ -0,0 +1,28 @@
1
+ import { reactive as e } from "vue";
2
+ const o = "__YC_COMPONENT_AI_DIALOG__", n = "yc-component:ai-dialog-open";
3
+ function a() {
4
+ const i = globalThis;
5
+ return i[o] || (i[o] = e({
6
+ visible: !1,
7
+ options: {}
8
+ })), i[o];
9
+ }
10
+ const t = a();
11
+ function s(i = {}) {
12
+ t.options = { ...i }, t.visible = !0, globalThis.dispatchEvent(
13
+ new CustomEvent(n, { detail: { ...i } })
14
+ );
15
+ }
16
+ function c() {
17
+ t.visible = !1;
18
+ }
19
+ function _(i = {}) {
20
+ s(i);
21
+ }
22
+ export {
23
+ n as AI_DIALOG_OPEN_EVENT,
24
+ t as aiDialogState,
25
+ c as hideAiDialog,
26
+ _ as openAiUseDialog,
27
+ s as showAiDialog
28
+ };
@@ -0,0 +1,15 @@
1
+ export { default as YcAiTaskProvider } from './components/AiTaskProvider';
2
+ export { default as YcAiUseDialog } from './components/AiUseDialog';
3
+ export { default as YcAiTaskPanel } from './components/AiTaskPanel';
4
+ /** 兼容旧命名 */
5
+ export { default as AiTaskProvider } from './components/AiTaskProvider';
6
+ export { default as AiUseDialog } from './components/AiUseDialog';
7
+ export { default as AiTaskPanel } from './components/AiTaskPanel';
8
+ export { useAiTask } from './composables/useAiTask';
9
+ export { openAiUseDialog, showAiDialog, hideAiDialog } from './dialog-state';
10
+ export { listPrompts } from './api/prompt';
11
+ export { useAiTaskStore } from './store/useAiTaskStore';
12
+ export { setAiTaskConfig, getAiTaskConfig } from './config';
13
+ export type { YcAiTaskConfig } from './config';
14
+ export type { AiTaskItem, AiTaskStatus, AiTaskSubmitOptions, AiUseDialogOptions, AiUseDialogProps, AiPromptOption, AiTaskFinishPayload, AiTaskFinishHandler, } from './types';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai-task/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAC7E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAEvE,YAAY;AACZ,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAC3E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAErE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC3D,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,YAAY,EACV,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,SAAS,CAAA"}
@@ -0,0 +1,24 @@
1
+ import { default as a, default as i } from "./components/AiTaskProvider.vue.js";
2
+ import { default as r, default as t } from "./components/AiUseDialog.vue.js";
3
+ import { default as l, default as A } from "./components/AiTaskPanel.vue.js";
4
+ import { useAiTask as d } from "./composables/useAiTask.js";
5
+ import { hideAiDialog as g, openAiUseDialog as k, showAiDialog as u } from "./dialog-state.js";
6
+ import { listPrompts as T } from "./api/prompt.js";
7
+ import { useAiTaskStore as D } from "./store/useAiTaskStore.js";
8
+ import { getAiTaskConfig as c, setAiTaskConfig as U } from "./config.js";
9
+ export {
10
+ l as AiTaskPanel,
11
+ a as AiTaskProvider,
12
+ r as AiUseDialog,
13
+ A as YcAiTaskPanel,
14
+ i as YcAiTaskProvider,
15
+ t as YcAiUseDialog,
16
+ c as getAiTaskConfig,
17
+ g as hideAiDialog,
18
+ T as listPrompts,
19
+ k as openAiUseDialog,
20
+ U as setAiTaskConfig,
21
+ u as showAiDialog,
22
+ d as useAiTask,
23
+ D as useAiTaskStore
24
+ };
@@ -0,0 +1,307 @@
1
+ import { InjectionKey, Ref, ComputedRef } from 'vue';
2
+ import { AiTaskStatus, AiTaskItem, AiUseDialogOptions, AiTaskSubmitOptions, AiTaskFinishHandler } from './types';
3
+ import { Store } from 'pinia';
4
+ export declare const AI_TASK_INJECT_KEY: InjectionKey<{
5
+ tasks: Ref<{
6
+ id: string;
7
+ title: string;
8
+ freeText: string;
9
+ promptId?: number | undefined;
10
+ autoMatch?: boolean | undefined;
11
+ status: AiTaskStatus;
12
+ progress: number;
13
+ summary: string;
14
+ runId?: number | undefined;
15
+ result?: Record<string, unknown> | undefined;
16
+ errorMessage?: string | undefined;
17
+ createdAt: number;
18
+ finishedAt?: number | undefined;
19
+ logs: string[];
20
+ }[], AiTaskItem[] | {
21
+ id: string;
22
+ title: string;
23
+ freeText: string;
24
+ promptId?: number | undefined;
25
+ autoMatch?: boolean | undefined;
26
+ status: AiTaskStatus;
27
+ progress: number;
28
+ summary: string;
29
+ runId?: number | undefined;
30
+ result?: Record<string, unknown> | undefined;
31
+ errorMessage?: string | undefined;
32
+ createdAt: number;
33
+ finishedAt?: number | undefined;
34
+ logs: string[];
35
+ }[]>;
36
+ panelVisible: Ref<boolean, boolean>;
37
+ panelMinimized: Ref<boolean, boolean>;
38
+ dialogVisible: Ref<boolean, boolean>;
39
+ runningCount: ComputedRef<number>;
40
+ activeCount: ComputedRef<number>;
41
+ panelTitle: ComputedRef<"AI 处理中" | "部分任务失败" | "AI 任务">;
42
+ panelSubtitle: ComputedRef<string>;
43
+ openUseDialog: (options?: AiUseDialogOptions) => void;
44
+ closeUseDialog: () => void;
45
+ openTaskPanel: () => void;
46
+ hideTaskPanel: () => void;
47
+ togglePanelMinimize: () => void;
48
+ submitTask: (options: AiTaskSubmitOptions) => string;
49
+ cancelTask: (id: string) => Promise<void>;
50
+ cancelAll: () => void;
51
+ clearFinished: () => void;
52
+ removeTask: (id: string) => void;
53
+ loadTaskResult: (id: string) => Promise<Record<string, unknown> | null>;
54
+ refreshTasks: () => Promise<void>;
55
+ onTaskFinish: (handler: AiTaskFinishHandler) => () => boolean;
56
+ }>;
57
+ export declare const AI_TASK_STORE_KEY: InjectionKey< Store<"ycAiTask", Pick<{
58
+ tasks: Ref<{
59
+ id: string;
60
+ title: string;
61
+ freeText: string;
62
+ promptId?: number | undefined;
63
+ autoMatch?: boolean | undefined;
64
+ status: AiTaskStatus;
65
+ progress: number;
66
+ summary: string;
67
+ runId?: number | undefined;
68
+ result?: Record<string, unknown> | undefined;
69
+ errorMessage?: string | undefined;
70
+ createdAt: number;
71
+ finishedAt?: number | undefined;
72
+ logs: string[];
73
+ }[], AiTaskItem[] | {
74
+ id: string;
75
+ title: string;
76
+ freeText: string;
77
+ promptId?: number | undefined;
78
+ autoMatch?: boolean | undefined;
79
+ status: AiTaskStatus;
80
+ progress: number;
81
+ summary: string;
82
+ runId?: number | undefined;
83
+ result?: Record<string, unknown> | undefined;
84
+ errorMessage?: string | undefined;
85
+ createdAt: number;
86
+ finishedAt?: number | undefined;
87
+ logs: string[];
88
+ }[]>;
89
+ panelVisible: Ref<boolean, boolean>;
90
+ panelMinimized: Ref<boolean, boolean>;
91
+ dialogVisible: Ref<boolean, boolean>;
92
+ dialogOptions: Ref<{
93
+ title?: string | undefined;
94
+ freeText?: string | undefined;
95
+ promptId?: number | undefined;
96
+ autoMatch?: boolean | undefined;
97
+ prompts?: {
98
+ id: number;
99
+ name: string;
100
+ content?: string | undefined;
101
+ category?: string | undefined;
102
+ workflowDefinitionKey?: string | undefined;
103
+ }[] | undefined;
104
+ onSubmitted?: ((taskId: string) => void) | undefined;
105
+ onFinish?: AiTaskFinishHandler | undefined;
106
+ }, AiUseDialogOptions | {
107
+ title?: string | undefined;
108
+ freeText?: string | undefined;
109
+ promptId?: number | undefined;
110
+ autoMatch?: boolean | undefined;
111
+ prompts?: {
112
+ id: number;
113
+ name: string;
114
+ content?: string | undefined;
115
+ category?: string | undefined;
116
+ workflowDefinitionKey?: string | undefined;
117
+ }[] | undefined;
118
+ onSubmitted?: ((taskId: string) => void) | undefined;
119
+ onFinish?: AiTaskFinishHandler | undefined;
120
+ }>;
121
+ hydrated: Ref<boolean, boolean>;
122
+ runningCount: ComputedRef<number>;
123
+ activeCount: ComputedRef<number>;
124
+ panelTitle: ComputedRef<"AI 处理中" | "部分任务失败" | "AI 任务">;
125
+ panelSubtitle: ComputedRef<string>;
126
+ hydrate: () => Promise<void>;
127
+ showPanel: () => void;
128
+ hidePanel: () => void;
129
+ toggleMinimize: () => void;
130
+ openDialog: (options?: AiUseDialogOptions) => void;
131
+ closeDialog: () => void;
132
+ enqueue: (options: AiTaskSubmitOptions) => string;
133
+ onTaskFinish: (handler: AiTaskFinishHandler) => () => boolean;
134
+ refreshActiveTasks: () => Promise<void>;
135
+ loadTaskResult: (id: string) => Promise<Record<string, unknown> | null>;
136
+ cancelTask: (id: string) => Promise<void>;
137
+ cancelAll: () => void;
138
+ clearFinished: () => void;
139
+ removeTask: (id: string) => void;
140
+ }, "tasks" | "panelVisible" | "panelMinimized" | "dialogVisible" | "dialogOptions" | "hydrated">, Pick<{
141
+ tasks: Ref<{
142
+ id: string;
143
+ title: string;
144
+ freeText: string;
145
+ promptId?: number | undefined;
146
+ autoMatch?: boolean | undefined;
147
+ status: AiTaskStatus;
148
+ progress: number;
149
+ summary: string;
150
+ runId?: number | undefined;
151
+ result?: Record<string, unknown> | undefined;
152
+ errorMessage?: string | undefined;
153
+ createdAt: number;
154
+ finishedAt?: number | undefined;
155
+ logs: string[];
156
+ }[], AiTaskItem[] | {
157
+ id: string;
158
+ title: string;
159
+ freeText: string;
160
+ promptId?: number | undefined;
161
+ autoMatch?: boolean | undefined;
162
+ status: AiTaskStatus;
163
+ progress: number;
164
+ summary: string;
165
+ runId?: number | undefined;
166
+ result?: Record<string, unknown> | undefined;
167
+ errorMessage?: string | undefined;
168
+ createdAt: number;
169
+ finishedAt?: number | undefined;
170
+ logs: string[];
171
+ }[]>;
172
+ panelVisible: Ref<boolean, boolean>;
173
+ panelMinimized: Ref<boolean, boolean>;
174
+ dialogVisible: Ref<boolean, boolean>;
175
+ dialogOptions: Ref<{
176
+ title?: string | undefined;
177
+ freeText?: string | undefined;
178
+ promptId?: number | undefined;
179
+ autoMatch?: boolean | undefined;
180
+ prompts?: {
181
+ id: number;
182
+ name: string;
183
+ content?: string | undefined;
184
+ category?: string | undefined;
185
+ workflowDefinitionKey?: string | undefined;
186
+ }[] | undefined;
187
+ onSubmitted?: ((taskId: string) => void) | undefined;
188
+ onFinish?: AiTaskFinishHandler | undefined;
189
+ }, AiUseDialogOptions | {
190
+ title?: string | undefined;
191
+ freeText?: string | undefined;
192
+ promptId?: number | undefined;
193
+ autoMatch?: boolean | undefined;
194
+ prompts?: {
195
+ id: number;
196
+ name: string;
197
+ content?: string | undefined;
198
+ category?: string | undefined;
199
+ workflowDefinitionKey?: string | undefined;
200
+ }[] | undefined;
201
+ onSubmitted?: ((taskId: string) => void) | undefined;
202
+ onFinish?: AiTaskFinishHandler | undefined;
203
+ }>;
204
+ hydrated: Ref<boolean, boolean>;
205
+ runningCount: ComputedRef<number>;
206
+ activeCount: ComputedRef<number>;
207
+ panelTitle: ComputedRef<"AI 处理中" | "部分任务失败" | "AI 任务">;
208
+ panelSubtitle: ComputedRef<string>;
209
+ hydrate: () => Promise<void>;
210
+ showPanel: () => void;
211
+ hidePanel: () => void;
212
+ toggleMinimize: () => void;
213
+ openDialog: (options?: AiUseDialogOptions) => void;
214
+ closeDialog: () => void;
215
+ enqueue: (options: AiTaskSubmitOptions) => string;
216
+ onTaskFinish: (handler: AiTaskFinishHandler) => () => boolean;
217
+ refreshActiveTasks: () => Promise<void>;
218
+ loadTaskResult: (id: string) => Promise<Record<string, unknown> | null>;
219
+ cancelTask: (id: string) => Promise<void>;
220
+ cancelAll: () => void;
221
+ clearFinished: () => void;
222
+ removeTask: (id: string) => void;
223
+ }, "runningCount" | "activeCount" | "panelTitle" | "panelSubtitle">, Pick<{
224
+ tasks: Ref<{
225
+ id: string;
226
+ title: string;
227
+ freeText: string;
228
+ promptId?: number | undefined;
229
+ autoMatch?: boolean | undefined;
230
+ status: AiTaskStatus;
231
+ progress: number;
232
+ summary: string;
233
+ runId?: number | undefined;
234
+ result?: Record<string, unknown> | undefined;
235
+ errorMessage?: string | undefined;
236
+ createdAt: number;
237
+ finishedAt?: number | undefined;
238
+ logs: string[];
239
+ }[], AiTaskItem[] | {
240
+ id: string;
241
+ title: string;
242
+ freeText: string;
243
+ promptId?: number | undefined;
244
+ autoMatch?: boolean | undefined;
245
+ status: AiTaskStatus;
246
+ progress: number;
247
+ summary: string;
248
+ runId?: number | undefined;
249
+ result?: Record<string, unknown> | undefined;
250
+ errorMessage?: string | undefined;
251
+ createdAt: number;
252
+ finishedAt?: number | undefined;
253
+ logs: string[];
254
+ }[]>;
255
+ panelVisible: Ref<boolean, boolean>;
256
+ panelMinimized: Ref<boolean, boolean>;
257
+ dialogVisible: Ref<boolean, boolean>;
258
+ dialogOptions: Ref<{
259
+ title?: string | undefined;
260
+ freeText?: string | undefined;
261
+ promptId?: number | undefined;
262
+ autoMatch?: boolean | undefined;
263
+ prompts?: {
264
+ id: number;
265
+ name: string;
266
+ content?: string | undefined;
267
+ category?: string | undefined;
268
+ workflowDefinitionKey?: string | undefined;
269
+ }[] | undefined;
270
+ onSubmitted?: ((taskId: string) => void) | undefined;
271
+ onFinish?: AiTaskFinishHandler | undefined;
272
+ }, AiUseDialogOptions | {
273
+ title?: string | undefined;
274
+ freeText?: string | undefined;
275
+ promptId?: number | undefined;
276
+ autoMatch?: boolean | undefined;
277
+ prompts?: {
278
+ id: number;
279
+ name: string;
280
+ content?: string | undefined;
281
+ category?: string | undefined;
282
+ workflowDefinitionKey?: string | undefined;
283
+ }[] | undefined;
284
+ onSubmitted?: ((taskId: string) => void) | undefined;
285
+ onFinish?: AiTaskFinishHandler | undefined;
286
+ }>;
287
+ hydrated: Ref<boolean, boolean>;
288
+ runningCount: ComputedRef<number>;
289
+ activeCount: ComputedRef<number>;
290
+ panelTitle: ComputedRef<"AI 处理中" | "部分任务失败" | "AI 任务">;
291
+ panelSubtitle: ComputedRef<string>;
292
+ hydrate: () => Promise<void>;
293
+ showPanel: () => void;
294
+ hidePanel: () => void;
295
+ toggleMinimize: () => void;
296
+ openDialog: (options?: AiUseDialogOptions) => void;
297
+ closeDialog: () => void;
298
+ enqueue: (options: AiTaskSubmitOptions) => string;
299
+ onTaskFinish: (handler: AiTaskFinishHandler) => () => boolean;
300
+ refreshActiveTasks: () => Promise<void>;
301
+ loadTaskResult: (id: string) => Promise<Record<string, unknown> | null>;
302
+ cancelTask: (id: string) => Promise<void>;
303
+ cancelAll: () => void;
304
+ clearFinished: () => void;
305
+ removeTask: (id: string) => void;
306
+ }, "hydrate" | "showPanel" | "hidePanel" | "toggleMinimize" | "openDialog" | "closeDialog" | "enqueue" | "onTaskFinish" | "refreshActiveTasks" | "loadTaskResult" | "cancelTask" | "cancelAll" | "clearFinished" | "removeTask">>>;
307
+ //# sourceMappingURL=inject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../src/ai-task/inject.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,KAAK,CAAA;AAevC,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA0C,CAAA;AACzE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kOAA0C,CAAA"}
@@ -0,0 +1,10 @@
1
+ const o = "__YC_AI_TASK_CTX_KEY__", t = "__YC_AI_TASK_STORE_KEY__";
2
+ function T(_) {
3
+ const K = globalThis;
4
+ return K[_] || (K[_] = Symbol(_)), K[_];
5
+ }
6
+ const E = T(o), A = T(t);
7
+ export {
8
+ E as AI_TASK_INJECT_KEY,
9
+ A as AI_TASK_STORE_KEY
10
+ };
@@ -0,0 +1,11 @@
1
+ import { InvokeWorkflowStartParams, WorkflowInvokeResponse } from '../types';
2
+ export declare function startAiWorkflowRun(params: InvokeWorkflowStartParams): Promise<number>;
3
+ export interface SyncRunCallbacks {
4
+ onProgress?: (progress: number, summary: string) => void;
5
+ }
6
+ export declare function syncWorkflowRunStatus(runId: number, callbacks?: SyncRunCallbacks): Promise<WorkflowInvokeResponse | null>;
7
+ export declare function pollWorkflowRunUntilDone(runId: number, callbacks?: SyncRunCallbacks, signal?: AbortSignal): Promise<WorkflowInvokeResponse>;
8
+ export declare function fetchRunResult(runId: number): Promise<Record<string, unknown> | null>;
9
+ export declare function cancelRunOnServer(runId: number): Promise<void>;
10
+ export declare function isTerminalRunStatus(status: string): boolean;
11
+ //# sourceMappingURL=taskRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskRunner.d.ts","sourceRoot":"","sources":["../../../src/ai-task/services/taskRunner.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAUjF,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ3F;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACzD;AAED,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,gBAAgB,GAC3B,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAqCxC;AAED,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,gBAAgB,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,sBAAsB,CAAC,CASjC;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAM3F;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,iBAEpD;AAiBD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,WAEjD"}