@aalis/plugin-scheduler 0.14.0 → 0.15.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.
package/dist/index.d.ts CHANGED
@@ -64,12 +64,13 @@ export interface SchedulerService {
64
64
  pauseJob(name: string): boolean;
65
65
  resumeJob(name: string): boolean;
66
66
  triggerJob(name: string): Promise<boolean>;
67
+ /** cron 无效时抛出原因,不收下 */
67
68
  addJob(job: SchedulerJobConfig): void;
68
- /** upsert:已存在则先 remove 再 add,用于 WebUI 表单"创建/编辑"统一入口 */
69
+ /** upsert:已存在则先 remove 再 add;计划任务页的新建与编辑都经它。cron 无效时抛出原因,原任务不变 */
69
70
  setJob(job: SchedulerJobConfig): void;
70
71
  removeJob(name: string): boolean;
71
72
  }
72
- export declare const scheduler: import("@aalis/core").ServiceDescriptor<SchedulerService, import("@aalis/core").ServiceRef<SchedulerService>>;
73
+ export declare const scheduler: import("@aalis/core").ServiceDescriptor<SchedulerService, SchedulerService>;
73
74
  export declare const configSchema: {
74
75
  readonly jobs: {
75
76
  readonly type: "array";
@@ -151,10 +152,10 @@ export declare const configSchema: {
151
152
  };
152
153
  declare const _default: import("@aalis/core").PluginDefinition<{
153
154
  tools: import("@aalis/core").ServiceDescriptor<import("@aalis/api-tools").ToolService, import("@aalis/api-tools").BoundTools>;
154
- cronEngine: import("@aalis/core").ServiceDescriptor<import("@aalis/api-cron-engine").CronEngine, import("@aalis/core").ServiceRef<import("@aalis/api-cron-engine").CronEngine>>;
155
+ cronEngine: import("@aalis/core").ServiceDescriptor<import("@aalis/api-cron-engine").CronEngine, import("@aalis/api-cron-engine").CronEngine>;
155
156
  /** 动态任务的持久化出口;没有 storage 时任务只活在本次激活里(读写各自降级) */
156
- storage: import("@aalis/core").OptionalUse<import("@aalis/api-storage").StorageService, import("@aalis/core").ServiceRef<import("@aalis/api-storage").StorageService>>;
157
- /** 页面与页面动作的登记口;无 WebUI 时调度照常运行 */
157
+ storage: import("@aalis/core").OptionalUse<import("@aalis/api-storage").StorageService, import("@aalis/api-storage").BoundStorage>;
158
+ /** 计划任务页的登记口;无 WebUI 时调度照常运行 */
158
159
  webui: import("@aalis/core").OptionalUse<import("@aalis/api-webui").WebUIService, import("@aalis/api-webui").BoundWebui>;
159
160
  events: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Events, import("@aalis/core").Events>;
160
161
  lifecycle: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").LifecycleCap, import("@aalis/core").LifecycleCap>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,QAAQ,EAA6B,MAAM,sBAAsB,CAAC;AAchF,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3B,kBAAkB;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAiCD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,IAAI,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACtC,uDAAuD;IACvD,MAAM,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACtC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAClC;AAGD,eAAO,MAAM,SAAS,+GAA+C,CAAC;AAItE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuEvB,CAAC;;;;IAqFD,gDAAgD;;IAEhD,kCAAkC;;;;;;;;AAUpC,wBAWG;AAsyBH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,YAAY,CAAC,GAAG,eAAe,CASjF;AAeD,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,WAAW;QACnB,aAAa;QACb,qBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACzC,aAAa;QACb,oBAAoB,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxC,aAAa;QACb,qBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;KAC3D;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,QAAQ,EAA0C,MAAM,sBAAsB,CAAC;AAc7F,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3B,kBAAkB;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAiCD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,IAAI,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,uBAAuB;IACvB,MAAM,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACtC,kEAAkE;IAClE,MAAM,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACtC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAClC;AAGD,eAAO,MAAM,SAAS,6EAA+C,CAAC;AAItE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuEvB,CAAC;;;;IA6CD,gDAAgD;;IAEhD,gCAAgC;;;;;;;;AAUlC,wBAWG;AAq6BH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,YAAY,CAAC,GAAG,eAAe,CASjF;AAeD,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,WAAW;QACnB,aAAa;QACb,qBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACzC,aAAa;QACb,oBAAoB,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxC,aAAa;QACb,qBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;KAC3D;CACF"}
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
1
1
  import { cronEngine } from '@aalis/api-cron-engine';
2
- import { createStorageGateway, isStorageNotFound, isStorageUri, storage } from '@aalis/api-storage';
2
+ import { isStorageNotFound, isStorageUri, storage } from '@aalis/api-storage';
3
3
  import { tools } from '@aalis/api-tools';
4
4
  import { webuiServer } from '@aalis/api-webui';
5
5
  import { config, definePlugin, defineService, events, lifecycle, logger, optional, provide, } from '@aalis/core';
6
- import { defineConfig, parseConfig } from '@aalis/schema-config';
6
+ import { configError, defineConfig, parseConfig } from '@aalis/schema-config';
7
7
  import { parseEverySeconds } from '@aalis/util-cron';
8
8
  // ──────────── Cron 解析 ────────────
9
9
  // 解析在 @aalis/util-cron(parseEverySeconds 等);
10
10
  // scheduler 声明 cronEngine 后调用 subscribe()/nextFireTime()。
11
11
  /** setTimeout 的 delay 上限(32 位有符号毫秒,约 24.8 天);超过即溢出成立即触发 */
12
12
  const MAX_TIMEOUT_MS = 2 ** 31 - 1;
13
- // ----- 服务描述符(按激活绑定;调用型:绑定接口是 ServiceRef)-----
13
+ // ----- 服务描述符(调用型:业务层就是提供者的形状)-----
14
14
  export const scheduler = defineService('scheduler');
15
15
  // ──────────── 插件元数据 ────────────
16
16
  export const configSchema = defineConfig({
@@ -85,78 +85,37 @@ export const configSchema = defineConfig({
85
85
  },
86
86
  });
87
87
  // ──────────── WebUI 页面 ────────────
88
- const webuiPages = [
89
- {
90
- key: 'scheduler',
91
- label: '计划任务',
92
- icon: '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><polyline points="12,6 12,12 16,14"/></svg>',
93
- order: 55,
94
- content: [
95
- {
96
- type: 'table',
97
- label: '任务列表',
98
- source: 'listJobs',
99
- columns: [
100
- { key: 'name', label: '名称' },
101
- { key: 'schedule', label: '调度规则' },
102
- { key: 'sessionId', label: '目标会话' },
103
- { key: 'status', label: '状态' },
104
- { key: 'nextRun', label: '下次执行', render: 'countdown' },
105
- { key: 'lastRunText', label: '上次执行' },
106
- { key: 'runCount', label: '执行次数' },
107
- { key: 'lastResult', label: '最近结果' },
108
- ],
109
- actions: [
110
- { label: '立即执行', method: 'triggerJob' },
111
- { label: '暂停', method: 'pauseJob' },
112
- { label: '恢复', method: 'resumeJob' },
113
- { label: '删除', method: 'removeJob', confirm: '确定删除该任务?', danger: true },
114
- ],
115
- refresh: 30,
116
- },
117
- {
118
- type: 'form',
119
- label: '新建 / 编辑任务',
120
- source: 'newJobDraft',
121
- save: 'upsertJob',
122
- schema: {
123
- name: {
124
- type: 'string',
125
- label: '名称',
126
- required: true,
127
- description: '任务唯一标识;填已有动态任务名会覆盖(配置文件中的静态任务无法覆盖)',
128
- },
129
- cron: {
130
- type: 'string',
131
- label: 'Cron 表达式',
132
- description: '5 字段或别名:@hourly / @daily / @weekly / @every 30s;与 interval / runAt / delaySeconds 四选一',
133
- },
134
- interval: { type: 'number', label: '固定间隔(秒)', description: '与 cron / runAt / delaySeconds 四选一' },
135
- runAt: {
136
- type: 'string',
137
- label: '一次性运行时间',
138
- description: 'ISO 字符串,如 2026-05-19T10:00:00;执行一次后自动删除',
139
- },
140
- delaySeconds: {
141
- type: 'number',
142
- label: 'X 秒后执行一次',
143
- description: '与 cron / interval / runAt 四选一;填写后会转换为 runAt = now + N 秒,执行一次后自动删除',
144
- },
145
- sessionId: { type: 'string', label: '目标会话 ID', required: true },
146
- platform: { type: 'string', label: '目标平台', default: 'internal' },
147
- content: { type: 'textarea', label: '消息内容', required: true, description: '届时发送给自己的指令/提示' },
148
- enabled: { type: 'boolean', label: '启用', default: true },
149
- paused: {
150
- type: 'boolean',
151
- label: '创建后立即暂停',
152
- default: false,
153
- description: '勾选后任务创建但不会自动运行,需手动「恢复」;仅周期任务(cron / interval)可用',
154
- },
155
- },
156
- },
157
- ],
88
+ /** 新建与编辑共用的输入:调度方式(四选一)、目标会话与内容。新建另收任务名,编辑的任务名取这一行 */
89
+ const JOB_FIELDS = defineConfig({
90
+ cron: {
91
+ type: 'string',
92
+ label: 'Cron 表达式',
93
+ description: '5 字段或别名:@hourly、@daily、@weekly、@every 30s;与固定间隔、一次性运行时间、X 秒后执行四选一',
94
+ },
95
+ interval: { type: 'number', label: '固定间隔(秒)', description: '不小于 5;与其余三种调度方式四选一' },
96
+ runAt: {
97
+ type: 'string',
98
+ label: '一次性运行时间',
99
+ description: 'ISO 时间,如 2026-05-19T10:00:00;执行一次后自动删除',
100
+ },
101
+ delaySeconds: {
102
+ type: 'number',
103
+ label: 'X 秒后执行一次',
104
+ description: '换算成一次性运行时间 = 现在 + N 秒,执行一次后自动删除',
105
+ },
106
+ sessionId: { type: 'string', label: '目标会话 ID', required: true },
107
+ platform: { type: 'string', label: '目标平台', default: 'internal' },
108
+ content: { type: 'textarea', label: '消息内容', required: true, description: '届时发送给自己的指令或提示' },
109
+ enabled: { type: 'boolean', label: '启用', default: true },
110
+ paused: {
111
+ type: 'boolean',
112
+ label: '暂停',
113
+ default: false,
114
+ description: '勾选后不自动运行,要手动「恢复」;只对周期任务(cron、固定间隔)有效',
158
115
  },
159
- ];
116
+ });
117
+ /** 单个会话最多几个计划任务(防资源耗尽);编辑已有任务不计入 */
118
+ const MAX_JOBS_PER_SESSION = 20;
160
119
  // ──────────── 插件入口 ────────────
161
120
  const uses = {
162
121
  // tools 必须先就绪,否则下方 register tool 全部静默丢失(optional 不参与激活闸)
@@ -165,7 +124,7 @@ const uses = {
165
124
  cronEngine,
166
125
  /** 动态任务的持久化出口;没有 storage 时任务只活在本次激活里(读写各自降级) */
167
126
  storage: optional(storage),
168
- /** 页面与页面动作的登记口;无 WebUI 时调度照常运行 */
127
+ /** 计划任务页的登记口;无 WebUI 时调度照常运行 */
169
128
  webui: optional(webuiServer),
170
129
  events,
171
130
  lifecycle,
@@ -186,38 +145,222 @@ export default definePlugin({
186
145
  apply: run,
187
146
  });
188
147
  async function run(caps) {
189
- const cfg = parseConfig(configSchema, caps.config, caps.logger);
148
+ const cfg = parseConfig(configSchema, caps.config.use, caps.logger.use);
190
149
  const { cronEngine, storage, webui, events, lifecycle, logger, provide, tools } = caps;
191
150
  const config = resolveConfig(cfg);
192
- for (const page of webuiPages)
193
- webui.registerPage(page);
194
151
  const runtimes = new Map();
195
152
  // 配置中定义的任务名称集合(不需要持久化)
196
153
  const configJobNames = new Set(config.jobs.map(j => j.name));
197
154
  // 动态任务集合(需要持久化)
198
155
  const dynamicJobs = new Map();
199
156
  // ── 持久化读写 (经 storage 抽象,默认 data:/scheduler-jobs.json) ──
200
- const storageGateway = createStorageGateway(storage);
201
157
  const persistUri = config.persistPath;
202
158
  /**
203
159
  * 激活时那次读失败了、又不是「文件不存在」(storage 不在场、读错误、解析失败、结构不对):写的是整表,
204
160
  * 此后一律拒写,否则下一次增删改就把原有动态任务冲掉。只在激活时读一次,storage 迟到也不重读。
205
161
  */
206
162
  let loadFailed = false;
207
- /** 拒写期间新建或改动的任务只在内存、重启即失:回执末尾如实注明(AI 工具与 WebUI 表单同一附注),文件正常时为空串 */
208
- const persistNote = () => (loadFailed ? `;仅本次运行生效,未写入 ${persistUri}(加载失败,见日志)` : '');
163
+ /** 拒写期间新建或改动的任务只在内存、重启即失:回执末尾如实注明(AI 工具与计划任务页同一附注),文件正常时为空串 */
164
+ const persistNote = () => loadFailed ? `;仅本次运行生效,未写入 ${persistUri}:它读不出来,处理办法见「需要处理」里的提示` : '';
165
+ // 先读完持久化任务再登记页面:登记之后到服务就绪之间不再有等待,页面一出现取数与动作就可用
166
+ const persisted = await loadDynamicJobs();
167
+ // ── 计划任务页:动作是本次激活的闭包,直接操作本插件自己的调度表;登记随激活撤回 ──
168
+ /**
169
+ * 新建与编辑共用:调度方式恰好一个(四者是互不相容的定时语义,多填时取哪个都是猜),与 scheduler_create_job
170
+ * 工具路径同一条判据与同一份 delaySeconds 换算。actor 取闸门放行后的调用者,不从输入读,免得伪造他人身份
171
+ */
172
+ function saveJob(name, input, caller, creating) {
173
+ const cron = input.cron?.trim() || undefined;
174
+ const interval = input.interval !== undefined && input.interval > 0 ? input.interval : undefined;
175
+ const delaySeconds = input.delaySeconds !== undefined && input.delaySeconds > 0 ? Math.floor(input.delaySeconds) : undefined;
176
+ const rawRunAt = input.runAt?.trim() || undefined;
177
+ const provided = [cron, interval, delaySeconds, rawRunAt].filter(v => v !== undefined).length;
178
+ if (provided === 0)
179
+ throw new Error('cron、固定间隔、一次性运行时间、X 秒后执行必须填写其中之一');
180
+ if (provided > 1)
181
+ throw new Error('cron、固定间隔、一次性运行时间、X 秒后执行互斥,只能填一个');
182
+ const runAt = delaySeconds !== undefined ? new Date(Date.now() + delaySeconds * 1000).toISOString() : rawRunAt;
183
+ // 一次性任务被暂停时到点的定时器直接跳过,之后既不重排也不自删,任务就永久卡死在那里
184
+ if (input.paused && runAt)
185
+ throw new Error('暂停对一次性任务(一次性运行时间、X 秒后执行)没有可用语义');
186
+ // 防误填高频任务:挡住 interval:0.5 这类会占满调度的间隔
187
+ if (interval !== undefined && interval < 5)
188
+ throw new Error('固定间隔不能小于 5 秒(防高频任务耗尽资源)');
189
+ const sessionId = input.sessionId.trim();
190
+ if (!sessionId)
191
+ throw new Error('目标会话 ID 不能为空');
192
+ const content = input.content.trim();
193
+ if (!content)
194
+ throw new Error('消息内容不能为空');
195
+ if (creating) {
196
+ const all = service.getJobs();
197
+ if (all.some(j => j.name === name))
198
+ throw new Error(`已有同名任务 ${name},改它用「编辑」`);
199
+ if (all.filter(j => j.sessionId === sessionId).length >= MAX_JOBS_PER_SESSION) {
200
+ throw new Error(`本会话定时任务数已达上限 ${MAX_JOBS_PER_SESSION},请先删除部分任务再新建`);
201
+ }
202
+ }
203
+ service.setJob({
204
+ name,
205
+ cron,
206
+ interval,
207
+ runAt,
208
+ sessionId,
209
+ platform: input.platform,
210
+ actorPlatform: caller.platform,
211
+ actorUserId: caller.userId,
212
+ content,
213
+ enabled: input.enabled,
214
+ paused: input.paused,
215
+ });
216
+ return `已保存任务 ${name}${persistNote()}`;
217
+ }
218
+ const jobsPage = webui.use.definePage({
219
+ key: 'scheduler',
220
+ title: '计划任务',
221
+ icon: 'clock',
222
+ actions: {
223
+ createJob: {
224
+ label: '新建',
225
+ effect: 'write',
226
+ input: {
227
+ name: { type: 'string', label: '名称', required: true, description: '任务的唯一标识' },
228
+ ...JOB_FIELDS,
229
+ },
230
+ handler({ input, ctx }) {
231
+ const name = input.name.trim();
232
+ if (!name)
233
+ throw new Error('名称不能为空');
234
+ return saveJob(name, input, ctx.caller, true);
235
+ },
236
+ },
237
+ editJob: {
238
+ label: '编辑',
239
+ effect: 'write',
240
+ row: true,
241
+ input: JOB_FIELDS,
242
+ handler({ rowKey, input, ctx }) {
243
+ if (!service.getJobs().some(j => j.name === rowKey))
244
+ throw new Error(`任务 ${rowKey} 不存在`);
245
+ return saveJob(rowKey, input, ctx.caller, false);
246
+ },
247
+ },
248
+ triggerJob: {
249
+ label: '立即执行',
250
+ effect: 'write',
251
+ row: true,
252
+ async handler({ rowKey }) {
253
+ // 这一轮还没执行完时 triggerJob 直接跳过;与它置 running 在同一个同步段里判,没有竞态
254
+ if (service.getJobs().find(j => j.name === rowKey)?.running) {
255
+ throw new Error(`任务 ${rowKey} 正在执行,这次没有再触发`);
256
+ }
257
+ if (!(await service.triggerJob(rowKey)))
258
+ throw new Error(`任务 ${rowKey} 不存在`);
259
+ return `已执行 ${rowKey}`;
260
+ },
261
+ },
262
+ pauseJob: {
263
+ label: '暂停',
264
+ effect: 'write',
265
+ row: true,
266
+ handler({ rowKey }) {
267
+ if (!service.pauseJob(rowKey))
268
+ throw new Error('任务不存在,或是一次性任务(不能暂停,只能删除重建)');
269
+ return `已暂停 ${rowKey}`;
270
+ },
271
+ },
272
+ resumeJob: {
273
+ label: '恢复',
274
+ effect: 'write',
275
+ row: true,
276
+ handler({ rowKey }) {
277
+ if (!service.resumeJob(rowKey))
278
+ throw new Error(`任务 ${rowKey} 不存在`);
279
+ return `已恢复 ${rowKey}`;
280
+ },
281
+ },
282
+ removeJob: {
283
+ label: '删除',
284
+ effect: 'destructive',
285
+ confirm: '删除这个计划任务?',
286
+ row: true,
287
+ handler({ rowKey }) {
288
+ if (!service.removeJob(rowKey))
289
+ throw new Error(`任务 ${rowKey} 不存在`);
290
+ return `已删除 ${rowKey}`;
291
+ },
292
+ },
293
+ },
294
+ content: [
295
+ {
296
+ type: 'table',
297
+ id: 'jobs',
298
+ rowKey: 'name',
299
+ empty: '还没有计划任务',
300
+ columns: [
301
+ { key: 'name', label: '名称', primary: true },
302
+ { key: 'schedule', label: '调度' },
303
+ { key: 'sessionId', label: '目标会话' },
304
+ { key: 'status', label: '状态', kind: 'status', primary: true },
305
+ { key: 'nextRun', label: '下次执行', kind: 'countdown' },
306
+ { key: 'lastRun', label: '上次执行', kind: 'time' },
307
+ { key: 'runCount', label: '执行次数' },
308
+ { key: 'lastResult', label: '最近结果', kind: 'long-text' },
309
+ ],
310
+ rowActions: [
311
+ { action: 'triggerJob' },
312
+ { action: 'pauseJob', visibleWhen: 'pausable' },
313
+ { action: 'resumeJob', visibleWhen: 'paused' },
314
+ { action: 'editJob', visibleWhen: 'editable' },
315
+ { action: 'removeJob' },
316
+ ],
317
+ data: () => service.getJobs().map(j => {
318
+ const ready = j.enabled && !j.paused && !j.running;
319
+ return {
320
+ name: j.name,
321
+ cron: j.cron,
322
+ interval: j.interval,
323
+ runAt: j.runAt,
324
+ sessionId: j.sessionId,
325
+ platform: j.platform,
326
+ content: j.content,
327
+ enabled: j.enabled,
328
+ paused: j.paused,
329
+ schedule: j.cron ?? (j.interval ? `每 ${j.interval} 秒` : j.runAt ? `一次性 ${j.runAt}` : '未设置'),
330
+ status: !j.enabled
331
+ ? { text: '禁用', state: 'inactive' }
332
+ : j.paused
333
+ ? { text: '暂停', state: 'inactive' }
334
+ : j.running
335
+ ? { text: '执行中', state: 'running' }
336
+ : { text: '就绪' },
337
+ nextRun: ready && j.nextRun > 0 ? j.nextRun : undefined,
338
+ lastRun: j.lastRun || undefined,
339
+ runCount: j.runCount,
340
+ lastResult: j.lastResult,
341
+ pausable: ready && !!(j.cron || j.interval),
342
+ editable: !configJobNames.has(j.name),
343
+ };
344
+ }),
345
+ },
346
+ { type: 'actions', actions: ['createJob'] },
347
+ ],
348
+ });
209
349
  async function loadDynamicJobs() {
350
+ /** 失败出在读文件这一步(存储插件不在、persistPath 的根名写错、文件读不了),文件内容未必有错 */
351
+ let reading = true;
210
352
  try {
211
353
  let raw;
212
354
  try {
213
- raw = (await storageGateway.readFile(persistUri, 'utf-8'));
355
+ raw = (await storage.use.readFile(persistUri, 'utf-8'));
214
356
  }
215
357
  catch (err) {
216
- // 只有「文件不存在」算全新;网关的「未知存储根」等其它失败不能当成空表
358
+ // 只有「文件不存在」算全新;「未知存储根」等其它失败不能当成空表
217
359
  if (isStorageNotFound(err))
218
360
  return [];
219
361
  throw err;
220
362
  }
363
+ reading = false;
221
364
  const data = JSON.parse(raw);
222
365
  if (!Array.isArray(data)) {
223
366
  throw new Error(`持久化任务文件不是数组(得到 ${data === null ? 'null' : typeof data})`);
@@ -233,7 +376,7 @@ async function run(caps) {
233
376
  // `saveDynamicJobs` 的 JSON.stringify 会丢掉 undefined 键,匿名创建的任务落盘后
234
377
  // 与无 actor 字段的老任务同形;此处补 owner 即等于给它开一条提权通道。
235
378
  // 「创建者未知」不等于「创建者是 owner」。
236
- logger.warn(`持久化任务 "${j.name}" 缺少 actor 身份,已按匿名(最低权限)运行;如需更高权限请在 WebUI 中显式设置创建者身份`);
379
+ logger.use.warn(`持久化任务 "${j.name}" 缺少 actor 身份,已按匿名(最低权限)运行;如需更高权限请在 WebUI 中显式设置创建者身份`);
237
380
  }
238
381
  return {
239
382
  name: String(j.name ?? 'unnamed'),
@@ -252,7 +395,17 @@ async function run(caps) {
252
395
  }
253
396
  catch (err) {
254
397
  loadFailed = true;
255
- logger.warn(`加载持久化任务失败,本次运行不再写入该文件: ${err}`);
398
+ logger.use.warn(`加载持久化任务失败,本次运行不再写入该文件: ${err}`);
399
+ // 里面的任务全没加载、新改动也不落盘:只记日志用户看不到
400
+ webui.use.notify({
401
+ id: 'jobs-load',
402
+ level: 'error',
403
+ title: `计划任务文件 ${persistUri} 读不出来,里面的任务没有加载`,
404
+ detail: (reading
405
+ ? '确认本地存储插件在运行、配置项 persistPath 的根名写对、这个文件能读取,然后重载本插件。'
406
+ : '修好这个文件后重载本插件:内容要是任务数组;不要里面的任务就把它移走再重载。') +
407
+ `修好之前新建与改动的任务只在本次运行生效。原因:${err instanceof Error ? err.message : String(err)}`,
408
+ });
256
409
  return [];
257
410
  }
258
411
  }
@@ -265,17 +418,17 @@ async function run(caps) {
265
418
  let saveChain = Promise.resolve();
266
419
  function saveDynamicJobs() {
267
420
  if (loadFailed) {
268
- logger.warn(`持久化任务上次加载失败,跳过写入以免覆盖原有任务(本次改动仅在内存生效): ${persistUri}`);
421
+ logger.use.warn(`持久化任务上次加载失败,跳过写入以免覆盖原有任务(本次改动仅在内存生效): ${persistUri}`);
269
422
  return;
270
423
  }
271
424
  const jobs = [...dynamicJobs.values()];
272
425
  const payload = JSON.stringify(jobs, null, 2);
273
426
  saveChain = saveChain
274
- .then(() => storageGateway.writeFile(persistUri, payload))
427
+ .then(() => storage.use.writeFile(persistUri, payload))
275
428
  .then(() => {
276
- logger.debug(`已持久化 ${jobs.length} 个动态任务`);
429
+ logger.use.debug(`已持久化 ${jobs.length} 个动态任务`);
277
430
  }, err => {
278
- logger.warn(`持久化任务失败: ${err}`);
431
+ logger.use.warn(`持久化任务失败: ${err}`);
279
432
  });
280
433
  }
281
434
  // ── 发送调度消息 ──
@@ -283,15 +436,16 @@ async function run(caps) {
283
436
  if (rt.running)
284
437
  return;
285
438
  rt.running = true;
439
+ jobsPage.invalidate();
286
440
  const jobName = rt.config.name;
287
441
  try {
288
- logger.info(`执行任务: ${jobName}`);
289
- await events.emit('scheduler:job:start', jobName);
442
+ logger.use.info(`执行任务: ${jobName}`);
443
+ await events.use.emit('scheduler:job:start', jobName);
290
444
  // 通用触发事件:供 workflow 等订阅者使用
291
445
  // (任务本身仍走 inbound:message 投递,这里同时广播 trigger:fired,
292
446
  // 便于平滑迁移到 plugin-workflow)
293
447
  // biome-ignore lint/suspicious/noExplicitAny: 事件类型由 api-workflow 增广,scheduler 不直接依赖
294
- await events.emit('trigger:fired', {
448
+ await events.use.emit('trigger:fired', {
295
449
  source: `scheduler:${jobName}`,
296
450
  type: rt.config.cron ? 'cron' : 'interval',
297
451
  payload: {
@@ -318,20 +472,21 @@ async function run(caps) {
318
472
  if (actorPlatform && actorUserId) {
319
473
  message.actor = { platform: actorPlatform, userId: actorUserId };
320
474
  }
321
- await events.emit('inbound:message', message);
475
+ await events.use.emit('inbound:message', message);
322
476
  rt.lastRun = Date.now();
323
477
  rt.runCount++;
324
478
  rt.lastResult = '成功';
325
- await events.emit('scheduler:job:done', jobName);
479
+ await events.use.emit('scheduler:job:done', jobName);
326
480
  }
327
481
  catch (err) {
328
482
  const msg = err instanceof Error ? err.message : String(err);
329
483
  rt.lastResult = `失败: ${msg}`;
330
- logger.error(`任务 "${jobName}" 执行失败: ${msg}`);
331
- await events.emit('scheduler:job:error', jobName, msg);
484
+ logger.use.error(`任务 "${jobName}" 执行失败: ${msg}`);
485
+ await events.use.emit('scheduler:job:error', jobName, msg);
332
486
  }
333
487
  finally {
334
488
  rt.running = false;
489
+ jobsPage.invalidate();
335
490
  }
336
491
  }
337
492
  // ── 估算下次执行时间 ──
@@ -345,15 +500,28 @@ async function run(caps) {
345
500
  }
346
501
  if (job.cron) {
347
502
  const tz = job.timeZone?.trim() || undefined;
348
- // 每次求值取当前提供者:cron-engine 换人后不会算在旧实例上
349
- return cronEngine.require().nextFireTime(job.cron, new Date(), undefined, tz ? { timeZone: tz } : undefined) ?? 0;
503
+ // 每次求值取当前提供者:cron-engine 换人后不会算在旧实例上。时区无效时它同步抛错:这只是展示用的估计,
504
+ // 按「不知道」处理,任务排不上的原因由订阅失败的提示报出
505
+ try {
506
+ return cronEngine.use.nextFireTime(job.cron, new Date(), undefined, tz ? { timeZone: tz } : undefined) ?? 0;
507
+ }
508
+ catch {
509
+ return 0;
510
+ }
350
511
  }
351
512
  return 0;
352
513
  }
353
514
  // ── 初始化所有任务 ──
515
+ /** cron 订阅不上、永远不会运行的任务各一条提示:任务重排或删掉时撤回 */
516
+ const unscheduled = new Map();
517
+ function clearUnscheduled(name) {
518
+ unscheduled.get(name)?.clear();
519
+ unscheduled.delete(name);
520
+ }
354
521
  function initJob(jobCfg) {
355
522
  if (runtimes.has(jobCfg.name))
356
523
  return;
524
+ clearUnscheduled(jobCfg.name);
357
525
  // 归一化 cron 快捷符;"@every Ns" 转成 interval 通道
358
526
  if (jobCfg.cron) {
359
527
  const everySec = parseEverySeconds(jobCfg.cron);
@@ -367,7 +535,7 @@ async function run(caps) {
367
535
  // 创建口与 pauseJob 都已拒绝这种组合,但存量持久化文件里可能还留着;启动时告警并按未暂停处理
368
536
  // (要停掉它请改 enabled 或直接删除)。
369
537
  if (jobCfg.runAt && !jobCfg.cron && !jobCfg.interval && jobCfg.paused) {
370
- logger.warn(`任务 "${jobCfg.name}" 是一次性任务却带 paused,暂停对其无可用语义;已按未暂停处理`);
538
+ logger.use.warn(`任务 "${jobCfg.name}" 是一次性任务却带 paused,暂停对其无可用语义;已按未暂停处理`);
371
539
  jobCfg.paused = false;
372
540
  }
373
541
  const rt = {
@@ -395,7 +563,7 @@ async function run(caps) {
395
563
  if (jobCfg.cron && jobCfg.enabled) {
396
564
  try {
397
565
  const tz = jobCfg.timeZone?.trim() || undefined;
398
- rt.cronDispose = cronEngine.require().subscribe(jobCfg.cron, () => {
566
+ rt.cronDispose = cronEngine.use.subscribe(jobCfg.cron, () => {
399
567
  if (rt.paused || !rt.config.enabled)
400
568
  return;
401
569
  executeJob(rt);
@@ -403,7 +571,18 @@ async function run(caps) {
403
571
  }, tz ? { timeZone: tz } : undefined);
404
572
  }
405
573
  catch (err) {
406
- logger.warn(`任务 ${jobCfg.name} cron 订阅失败: ${err instanceof Error ? err.message : err}`);
574
+ const reason = err instanceof Error ? err.message : String(err);
575
+ logger.use.warn(`任务 ${jobCfg.name} cron 订阅失败: ${reason}`);
576
+ const fromConfig = configJobNames.has(jobCfg.name);
577
+ unscheduled.set(jobCfg.name, webui.use.notify({
578
+ id: `unscheduled:${jobCfg.name}`,
579
+ level: 'error',
580
+ title: `计划任务「${jobCfg.name}」没有排上,不会运行`,
581
+ detail: fromConfig
582
+ ? `在配置文件里改正这个任务的 cron 或 timeZone,保存后生效。原因:${reason}`
583
+ : `在计划任务页编辑这个任务,改正它的 cron 后保存。原因:${reason}`,
584
+ open: fromConfig ? 'config' : { page: 'scheduler' },
585
+ }));
407
586
  }
408
587
  }
409
588
  // 一次性任务:到点用 setTimeout 触发一次,执行完 disable 并持久化
@@ -438,10 +617,11 @@ async function run(caps) {
438
617
  }
439
618
  }
440
619
  else {
441
- logger.warn(`任务 ${jobCfg.name} 的 runAt 无法解析: ${jobCfg.runAt}`);
620
+ logger.use.warn(`任务 ${jobCfg.name} 的 runAt 无法解析: ${jobCfg.runAt}`);
442
621
  }
443
622
  }
444
623
  runtimes.set(jobCfg.name, rt);
624
+ jobsPage.invalidate();
445
625
  const scheduleHint = jobCfg.cron
446
626
  ? `(cron: ${jobCfg.cron})`
447
627
  : jobCfg.interval
@@ -449,7 +629,7 @@ async function run(caps) {
449
629
  : jobCfg.runAt
450
630
  ? `(runAt: ${jobCfg.runAt})`
451
631
  : '(no schedule)';
452
- logger.info(`任务已注册: ${jobCfg.name} ${scheduleHint}`);
632
+ logger.use.info(`任务已注册: ${jobCfg.name} ${scheduleHint}`);
453
633
  }
454
634
  /** 一次性任务执行完后的清理:动态任务直接删除;静态 yaml 任务仅标记 enabled=false */
455
635
  function disableOneShot(rt) {
@@ -462,13 +642,15 @@ async function run(caps) {
462
642
  runtimes.delete(jobName);
463
643
  dynamicJobs.delete(jobName);
464
644
  saveDynamicJobs();
465
- logger.info(`一次性任务已执行完毕并删除: ${jobName}`);
645
+ jobsPage.invalidate();
646
+ logger.use.info(`一次性任务已执行完毕并删除: ${jobName}`);
466
647
  return;
467
648
  }
468
649
  // 静态配置任务:不删,仅标记 enabled=false(yaml 才是权威源)
469
650
  rt.config.enabled = false;
470
651
  rt.paused = true;
471
- logger.info(`一次性任务已执行完毕并停用(静态): ${jobName}`);
652
+ jobsPage.invalidate();
653
+ logger.use.info(`一次性任务已执行完毕并停用(静态): ${jobName}`);
472
654
  }
473
655
  // 静态 YAML 任务的「创建者」是编辑配置文件的人——那本身就是 owner 行为,故缺省补 owner。
474
656
  // **这是全插件唯一允许推断 owner 的地方**:来源是配置文件(只有能写盘的人才改得动),
@@ -480,12 +662,11 @@ async function run(caps) {
480
662
  if ((p && !u) || (!p && u)) {
481
663
  // 半指定:只写了一半就当没写,会被整体替换成 owner —— 那与作者意图相反
482
664
  // (写 actor 通常是为了**降权**)。不静默升权,也不因此拒绝启动。
483
- logger.warn(`任务 "${job.name}" 只写了 actorPlatform/actorUserId 其中一个,两者必须成对;已按未指定处理(owner)`);
665
+ logger.use.warn(`任务 "${job.name}" 只写了 actorPlatform/actorUserId 其中一个,两者必须成对;已按未指定处理(owner)`);
484
666
  }
485
667
  initJob(p && u ? job : { ...job, actorPlatform: 'webui', actorUserId: 'console' });
486
668
  }
487
- // 加载持久化的动态任务
488
- const persisted = await loadDynamicJobs();
669
+ // 持久化的动态任务(同名的配置文件任务优先)
489
670
  for (const job of persisted) {
490
671
  if (!runtimes.has(job.name)) {
491
672
  dynamicJobs.set(job.name, job);
@@ -493,9 +674,17 @@ async function run(caps) {
493
674
  }
494
675
  }
495
676
  if (persisted.length > 0) {
496
- logger.info(`已加载 ${persisted.length} 个持久化任务`);
677
+ logger.use.info(`已加载 ${persisted.length} 个持久化任务`);
497
678
  }
498
679
  // ── 注册 scheduler 服务 ──
680
+ /** 无效的 cron 当场拒收:收下了也订阅不上、永远不会运行,还会落进持久化文件。页面、工具与别的插件都经服务新建与修改 */
681
+ function rejectInvalidCron(job) {
682
+ if (!job.cron)
683
+ return;
684
+ const checked = cronEngine.use.validate(job.cron);
685
+ if (!checked.ok)
686
+ throw new Error(checked.reason);
687
+ }
499
688
  const service = {
500
689
  getJobs() {
501
690
  return [...runtimes.values()].map(rt => ({
@@ -521,7 +710,7 @@ async function run(caps) {
521
710
  return false;
522
711
  // 一次性任务被暂停会永久卡住(到点的定时器直接跳过且不重排),与创建口同一判据:直接拒绝
523
712
  if (rt.config.runAt && !rt.config.cron && !rt.config.interval) {
524
- logger.warn(`一次性任务不能暂停: ${jobName}(只能删除重建)`);
713
+ logger.use.warn(`一次性任务不能暂停: ${jobName}(只能删除重建)`);
525
714
  return false;
526
715
  }
527
716
  rt.paused = true;
@@ -530,7 +719,8 @@ async function run(caps) {
530
719
  dynamicJobs.set(jobName, { ...rt.config });
531
720
  saveDynamicJobs();
532
721
  }
533
- logger.info(`任务已暂停: ${jobName}`);
722
+ jobsPage.invalidate();
723
+ logger.use.info(`任务已暂停: ${jobName}`);
534
724
  return true;
535
725
  },
536
726
  resumeJob(jobName) {
@@ -544,7 +734,8 @@ async function run(caps) {
544
734
  dynamicJobs.set(jobName, { ...rt.config });
545
735
  saveDynamicJobs();
546
736
  }
547
- logger.info(`任务已恢复: ${jobName}`);
737
+ jobsPage.invalidate();
738
+ logger.use.info(`任务已恢复: ${jobName}`);
548
739
  return true;
549
740
  },
550
741
  async triggerJob(jobName) {
@@ -555,6 +746,7 @@ async function run(caps) {
555
746
  return true;
556
747
  },
557
748
  addJob(job) {
749
+ rejectInvalidCron(job);
558
750
  initJob(job);
559
751
  // 非配置中定义的任务需要持久化
560
752
  if (!configJobNames.has(job.name)) {
@@ -567,6 +759,7 @@ async function run(caps) {
567
759
  if (configJobNames.has(job.name)) {
568
760
  throw new Error(`任务 "${job.name}" 来自配置文件,无法通过 setJob 覆盖`);
569
761
  }
762
+ rejectInvalidCron(job);
570
763
  const existed = runtimes.get(job.name);
571
764
  if (existed) {
572
765
  if (existed.timer)
@@ -592,116 +785,20 @@ async function run(caps) {
592
785
  dynamicJobs.delete(jobName);
593
786
  saveDynamicJobs();
594
787
  }
595
- logger.info(`任务已删除: ${jobName}`);
788
+ clearUnscheduled(jobName);
789
+ jobsPage.invalidate();
790
+ logger.use.info(`任务已删除: ${jobName}`);
596
791
  return true;
597
792
  },
598
793
  };
599
- provide(scheduler, service);
600
- // ── WebUI 页面动作 ──
601
- // 动作是本次激活的闭包,直接操作本插件自己的调度表;登记随激活撤回。
602
- webui.registerAction('listJobs', async () => {
603
- return service.getJobs().map(j => {
604
- const ready = j.enabled && !j.paused && !j.running;
605
- return {
606
- ...j,
607
- nextRun: ready ? j.nextRun : 0,
608
- schedule: j.cron ?? (j.interval ? `每 ${j.interval}s` : j.runAt ? `一次性@${j.runAt}` : '未设置'),
609
- status: !j.enabled ? '❌ 禁用' : j.paused ? '⏸ 暂停' : j.running ? '⏳ 执行中' : '✅ 就绪',
610
- lastRunText: j.lastRun ? new Date(j.lastRun).toLocaleString('zh-CN') : '从未',
611
- };
612
- });
613
- });
614
- webui.registerAction('triggerJob', async (args) => service.triggerJob(args.name));
615
- // 三个开关类 action 返回 { ok, error }:裸 boolean 会被前端按成功处理(一次性任务不能暂停就是这样被静默掉的)
616
- webui.registerAction('pauseJob', async (args) => service.pauseJob(args.name)
617
- ? { ok: true }
618
- : { ok: false, error: '任务不存在,或是一次性任务(不能暂停,只能删除重建)' });
619
- webui.registerAction('resumeJob', async (args) => service.resumeJob(args.name) ? { ok: true } : { ok: false, error: '任务不存在' });
620
- webui.registerAction('removeJob', async (args) => service.removeJob(args.name) ? { ok: true } : { ok: false, error: '任务不存在' });
621
- webui.registerAction('newJobDraft', async () => ({
622
- name: '',
623
- cron: '',
624
- interval: 0,
625
- runAt: '',
626
- delaySeconds: 0,
627
- sessionId: '',
628
- platform: 'internal',
629
- content: '',
630
- enabled: true,
631
- paused: false,
632
- }));
633
- webui.registerAction('upsertJob', async (args, caller) => {
634
- const jobName = String(args.name ?? '').trim();
635
- if (!jobName)
636
- return { ok: false, error: '任务名称不能为空' };
637
- const cron = String(args.cron ?? '').trim() || undefined;
638
- const interval = Number(args.interval) > 0 ? Number(args.interval) : undefined;
639
- const delaySeconds = Number(args.delaySeconds) > 0 ? Math.floor(Number(args.delaySeconds)) : undefined;
640
- const rawRunAt = String(args.runAt ?? '').trim() || undefined;
641
- // 调度方式恰好一个:四者同时也是四种互不相容的定时语义(周期 cron / 周期间隔 / 一次性),
642
- // 多填时取哪个都是猜,一律报错要求填一个——与 scheduler_create_job 工具路径同一条判据。
643
- const provided = [cron, interval, delaySeconds, rawRunAt].filter(v => v !== undefined).length;
644
- if (provided === 0) {
645
- return { ok: false, error: 'cron / interval / runAt / delaySeconds 必须填写其中之一' };
646
- }
647
- if (provided > 1) {
648
- return { ok: false, error: 'cron / interval / runAt / delaySeconds 互斥,只能填一个' };
649
- }
650
- // delaySeconds → runAt:与 scheduler_create_job 工具路径同一份转换(到点执行一次后自动停止)
651
- const runAt = delaySeconds !== undefined ? new Date(Date.now() + delaySeconds * 1000).toISOString() : rawRunAt;
652
- // 「创建后立即暂停」只对周期任务有意义:一次性任务被暂停时到点的 setTimeout 直接跳过,
653
- // 之后既不会重排也不会自删(disableOneShot 只在真执行后走),任务就永久卡死在那里。
654
- if (args.paused === true && runAt) {
655
- return { ok: false, error: '创建后立即暂停对一次性任务(runAt / delaySeconds)没有可用语义' };
656
- }
657
- // 防资源耗尽(scheduler 工具对聊天访客公开):interval 下限,挡住 interval:0.5 这类高频任务。
658
- if (interval !== undefined && interval < 5) {
659
- return { ok: false, error: 'interval 不能小于 5 秒(防高频任务耗尽资源)' };
660
- }
661
- const sessionId = String(args.sessionId ?? '').trim();
662
- if (!sessionId)
663
- return { ok: false, error: 'sessionId 不能为空' };
664
- const content = String(args.content ?? '').trim();
665
- if (!content)
666
- return { ok: false, error: 'content 不能为空' };
667
- // 防资源耗尽:单会话任务数上限;更新已有任务(同名)不计入,仅拦新建。
668
- const MAX_JOBS_PER_SESSION = 20;
669
- const allJobs = service.getJobs();
670
- if (!allJobs.some(j => j.name === jobName) &&
671
- allJobs.filter(j => j.sessionId === sessionId).length >= MAX_JOBS_PER_SESSION) {
672
- return { ok: false, error: `本会话定时任务数已达上限 ${MAX_JOBS_PER_SESSION},请先删除部分任务再新建` };
673
- }
674
- try {
675
- // actor 从权限闸放行后的 caller 快照(登录账户或单 token 模式的 webui:console),
676
- // 不从 args 读取,避免 WebUI 调用方伪造他人身份。
677
- const actor = caller ?? { platform: 'webui', userId: 'console' };
678
- service.setJob({
679
- name: jobName,
680
- cron,
681
- interval,
682
- runAt,
683
- sessionId,
684
- platform: String(args.platform ?? 'internal'),
685
- actorPlatform: actor.platform,
686
- actorUserId: actor.userId,
687
- content,
688
- enabled: args.enabled !== false,
689
- paused: args.paused === true,
690
- });
691
- const note = persistNote();
692
- return note ? { ok: true, message: `已保存${note}` } : { ok: true };
693
- }
694
- catch (err) {
695
- return { ok: false, error: err instanceof Error ? err.message : String(err) };
696
- }
697
- });
794
+ provide.use(scheduler, service);
698
795
  // ── 注册 AI 工具:让 Agent 可以自主创建/管理任务 ──
699
- tools.registerGroup({
796
+ tools.use.registerGroup({
700
797
  name: 'scheduler',
701
798
  label: '定时任务',
702
799
  description: '创建、查看和取消定时/周期性自主行动计划',
703
800
  });
704
- tools.register({
801
+ tools.use.register({
705
802
  groups: ['scheduler'],
706
803
  definition: {
707
804
  type: 'function',
@@ -772,7 +869,7 @@ async function run(caps) {
772
869
  platform: args.platform || callCtx.platform || 'internal',
773
870
  // 安全关键:actor 强制从 callCtx snapshot,不从 args 读取。
774
871
  // 这样即使 LLM 在 prompt 中尝试伪造身份,也会被忽略——它只能以当前调用者的身份创建任务。
775
- // 优先 callCtx.actor(本回合本就在代人执行,如委派/子任务链),否则用物理身份;
872
+ // 优先 callCtx.actor(本回合本就在代人执行,如子任务链、workflow 或定时任务驱动的回合),否则用物理身份;
776
873
  // 两者皆空则子任务匿名(defaultAuthority),实现权限的自然传递与不可提升。
777
874
  actorPlatform: callCtx.actor?.platform ?? callCtx.platform,
778
875
  actorUserId: callCtx.actor?.userId ?? callCtx.userId,
@@ -781,7 +878,12 @@ async function run(caps) {
781
878
  };
782
879
  if (runtimes.has(job.name))
783
880
  return JSON.stringify({ error: `任务 "${job.name}" 已存在` });
784
- service.addJob(job);
881
+ try {
882
+ service.addJob(job);
883
+ }
884
+ catch (err) {
885
+ return JSON.stringify({ error: err instanceof Error ? err.message : String(err) });
886
+ }
785
887
  const scheduleDesc = job.cron
786
888
  ? `cron="${job.cron}"`
787
889
  : job.interval
@@ -795,7 +897,7 @@ async function run(caps) {
795
897
  });
796
898
  },
797
899
  });
798
- tools.register({
900
+ tools.use.register({
799
901
  groups: ['scheduler'],
800
902
  definition: {
801
903
  type: 'function',
@@ -862,7 +964,7 @@ async function run(caps) {
862
964
  });
863
965
  },
864
966
  });
865
- tools.register({
967
+ tools.use.register({
866
968
  groups: ['scheduler'],
867
969
  definition: {
868
970
  type: 'function',
@@ -886,7 +988,7 @@ async function run(caps) {
886
988
  return JSON.stringify({ ok, message: ok ? '已删除' : '任务不存在' });
887
989
  },
888
990
  });
889
- tools.register({
991
+ tools.use.register({
890
992
  groups: ['scheduler'],
891
993
  definition: {
892
994
  type: 'function',
@@ -910,7 +1012,7 @@ async function run(caps) {
910
1012
  return JSON.stringify({ ok, message: ok ? '已暂停' : '任务不存在,或是一次性任务(不能暂停,只能删除重建)' });
911
1013
  },
912
1014
  });
913
- tools.register({
1015
+ tools.use.register({
914
1016
  groups: ['scheduler'],
915
1017
  definition: {
916
1018
  type: 'function',
@@ -935,7 +1037,7 @@ async function run(caps) {
935
1037
  },
936
1038
  });
937
1039
  // ── 清理 ──
938
- lifecycle.onDispose(() => {
1040
+ lifecycle.use.onDispose(() => {
939
1041
  for (const rt of runtimes.values()) {
940
1042
  if (rt.timer)
941
1043
  clearInterval(rt.timer);
@@ -944,7 +1046,7 @@ async function run(caps) {
944
1046
  }
945
1047
  runtimes.clear();
946
1048
  });
947
- logger.info(`计划任务调度器已启动 (${config.jobs.length} 个任务)`);
1049
+ logger.use.info(`计划任务调度器已启动 (${config.jobs.length} 个任务)`);
948
1050
  }
949
1051
  // ──────────── 辅助函数 ────────────
950
1052
  export function resolveConfig(cfg) {
@@ -963,7 +1065,7 @@ function resolvePersistPath(input) {
963
1065
  if (!s)
964
1066
  return configSchema.persistPath.default;
965
1067
  if (!isStorageUri(s)) {
966
- throw new Error(`plugin-scheduler 配置错误: persistPath="${s}" 不是 storage URI,请写成 <根名>:/<路径>(如 data:/scheduler-jobs.json),或删掉该键使用默认值`);
1068
+ throw configError(`persistPath="${s}" 不是 storage URI,请写成 <根名>:/<路径>(如 data:/scheduler-jobs.json),或删掉该键使用默认值`);
967
1069
  }
968
1070
  return s;
969
1071
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aalis/plugin-scheduler",
3
- "version": "0.14.0",
3
+ "version": "0.15.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,21 +24,21 @@
24
24
  "dist"
25
25
  ],
26
26
  "dependencies": {
27
- "@aalis/schema-config": ">=0.14.0 <1.0.0",
28
- "@aalis/api-cron-engine": ">=0.7.0 <1.0.0",
29
- "@aalis/api-storage": ">=0.7.0 <1.0.0",
30
- "@aalis/api-tools": ">=0.10.0 <1.0.0",
31
- "@aalis/api-webui": ">=0.11.0 <1.0.0",
27
+ "@aalis/schema-config": ">=0.15.0 <1.0.0",
28
+ "@aalis/api-cron-engine": ">=0.8.0 <1.0.0",
29
+ "@aalis/api-storage": ">=0.8.0 <1.0.0",
30
+ "@aalis/api-tools": ">=0.11.0 <1.0.0",
31
+ "@aalis/api-webui": ">=0.12.0 <1.0.0",
32
32
  "@aalis/util-cron": ">=0.1.3 <1.0.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/node": "^22.0.0",
36
36
  "typescript": "^5.7.0",
37
- "@aalis/core": "0.19.1",
38
- "@aalis/schema-message": "0.9.1"
37
+ "@aalis/core": "0.20.0",
38
+ "@aalis/schema-message": "0.10.0"
39
39
  },
40
40
  "peerDependencies": {
41
- "@aalis/core": ">=0.18.0 <1.0.0"
41
+ "@aalis/core": ">=0.20.0 <1.0.0"
42
42
  },
43
43
  "aalis": {
44
44
  "service": {