@amaster.ai/pi-task-scheduler 0.1.2-beta.8 → 0.1.2-beta.80
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/README.md +18 -27
- package/dist/extension.d.ts.map +1 -1
- package/dist/extension.js +136 -42
- package/dist/extension.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +81 -24
- package/dist/index.js.map +1 -1
- package/dist/stores.d.ts +6 -4
- package/dist/stores.d.ts.map +1 -1
- package/dist/stores.js +39 -22
- package/dist/stores.js.map +1 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +45 -31
- package/dist/tools.js.map +1 -1
- package/package.json +7 -5
- package/preview.png +0 -0
package/README.md
CHANGED
|
@@ -1,22 +1,19 @@
|
|
|
1
1
|
# @amaster.ai/pi-task-scheduler
|
|
2
2
|
|
|
3
|
+

|
|
4
|
+
|
|
3
5
|
Scheduled task domain types, execution scheduler, and pi agent extension.
|
|
4
6
|
|
|
5
|
-
The package owns schedule parsing, task lifecycle state, process-local timers,
|
|
6
|
-
runner callbacks, scheduler hooks, and LLM-callable tools for autonomous task
|
|
7
|
-
management.
|
|
7
|
+
The package owns schedule parsing, task lifecycle state, process-local timers, runner callbacks, scheduler hooks, and LLM-callable tools for autonomous task management.
|
|
8
8
|
|
|
9
9
|
## Storage
|
|
10
10
|
|
|
11
|
-
The package ships with a built-in file-based storage (default, zero external
|
|
12
|
-
dependencies):
|
|
11
|
+
The package ships with a built-in file-based storage (default, zero external dependencies):
|
|
13
12
|
|
|
14
13
|
- `JsonScheduledTaskStore` — persists tasks to a JSON file with atomic writes
|
|
15
14
|
- `FileSchedulerLock` — PID-based file lock for single-owner execution
|
|
16
15
|
|
|
17
|
-
For database-backed storage (multi-tenant, Prisma), use
|
|
18
|
-
`@amaster.ai/pi-storage/scheduler` which implements the same interfaces with
|
|
19
|
-
`DbScheduledTaskStore` and `RedisSchedulerLock`.
|
|
16
|
+
For database-backed storage (multi-tenant, Prisma), use `@amaster.ai/pi-storage/scheduler` which implements the same interfaces with `DbScheduledTaskStore` and `RedisSchedulerLock`.
|
|
20
17
|
|
|
21
18
|
### Default (file storage)
|
|
22
19
|
|
|
@@ -40,8 +37,7 @@ await scheduler.start();
|
|
|
40
37
|
|
|
41
38
|
### Custom storage
|
|
42
39
|
|
|
43
|
-
Implement `ScheduledTaskStore` and `SchedulerLock` interfaces for any backend
|
|
44
|
-
(database, Redis, etc.):
|
|
40
|
+
Implement `ScheduledTaskStore` and `SchedulerLock` interfaces for any backend (database, Redis, etc.):
|
|
45
41
|
|
|
46
42
|
```ts
|
|
47
43
|
import { PersistentTaskScheduler } from "@amaster.ai/pi-task-scheduler";
|
|
@@ -59,28 +55,28 @@ await scheduler.start();
|
|
|
59
55
|
|
|
60
56
|
## Integration Modes
|
|
61
57
|
|
|
62
|
-
The package provides two integration paths depending on who controls the
|
|
63
|
-
scheduler lifecycle.
|
|
58
|
+
The package provides two integration paths depending on who controls the scheduler lifecycle.
|
|
64
59
|
|
|
65
60
|
### Mode 1: Extension auto-discovery (standalone / CLI)
|
|
66
61
|
|
|
67
|
-
When installed as an npm dependency with the `pi.extensions` field in
|
|
68
|
-
`package.json`, the runtime auto-discovers and loads the extension. The
|
|
69
|
-
extension creates its own `PersistentTaskScheduler` with file-based storage
|
|
70
|
-
(`JsonScheduledTaskStore` + `FileSchedulerLock`) — fully self-contained, no
|
|
71
|
-
external infrastructure needed.
|
|
62
|
+
When installed as an npm dependency with the `pi.extensions` field in `package.json`, the runtime auto-discovers and loads the extension. The extension creates its own `PersistentTaskScheduler` with file-based storage (`JsonScheduledTaskStore` + `FileSchedulerLock`) — fully self-contained, no external infrastructure needed.
|
|
72
63
|
|
|
73
64
|
```
|
|
74
65
|
pi.extensions → session_start → creates file-based scheduler → registers tools + commands
|
|
75
66
|
```
|
|
76
67
|
|
|
77
|
-
- **Storage**:
|
|
68
|
+
- **Storage**: per-session `tasks-<session-hash>.json` and `scheduler-<session-hash>.lock`
|
|
69
|
+
files under `<agentDir>/data` (base directory configurable via `dataDir`)
|
|
70
|
+
- **Upgrade**: matching tasks from the legacy `tasks.json` are copied on first use; the
|
|
71
|
+
legacy file is retained
|
|
78
72
|
- **Lifecycle**: scheduler starts on `session_start`, stops on `session_shutdown`
|
|
79
73
|
- **Commands**: `/pi-scheduler-status`, `/pi-scheduler-list`, `/pi-scheduler-run-now`
|
|
80
74
|
- **LLM Tools**: `scheduler_create`, `scheduler_list`, `scheduler_get`, `scheduler_update`, `scheduler_delete`, `scheduler_run_now`
|
|
81
75
|
|
|
82
76
|
Configuration via settings key `pi-scheduler`:
|
|
83
77
|
|
|
78
|
+
Project `.pi/settings.json` values are loaded only after project trust is accepted and are not environment-interpolated. User and agent settings retain environment interpolation.
|
|
79
|
+
|
|
84
80
|
```json
|
|
85
81
|
{
|
|
86
82
|
"pi-scheduler": {
|
|
@@ -91,9 +87,7 @@ Configuration via settings key `pi-scheduler`:
|
|
|
91
87
|
|
|
92
88
|
### Mode 2: Dependency import (host-controlled)
|
|
93
89
|
|
|
94
|
-
When the host process owns the scheduler instance (e.g. backed by a database),
|
|
95
|
-
it bypasses the extension and registers tools directly using
|
|
96
|
-
`createSchedulerTools`:
|
|
90
|
+
When the host process owns the scheduler instance (e.g. backed by a database), it bypasses the extension and registers tools directly using `createSchedulerTools`:
|
|
97
91
|
|
|
98
92
|
```ts
|
|
99
93
|
import { createSchedulerTools } from "@amaster.ai/pi-task-scheduler/tools";
|
|
@@ -110,8 +104,7 @@ await scheduler.start();
|
|
|
110
104
|
const tools = createSchedulerTools(scheduler);
|
|
111
105
|
```
|
|
112
106
|
|
|
113
|
-
In this mode the auto-discovered extension should be filtered out to prevent
|
|
114
|
-
double tool registration. The host manages scheduler start/stop independently.
|
|
107
|
+
In this mode the auto-discovered extension should be filtered out to prevent double tool registration. The host manages scheduler start/stop independently.
|
|
115
108
|
|
|
116
109
|
```
|
|
117
110
|
host creates scheduler → createSchedulerTools(scheduler) → tools injected into runtime
|
|
@@ -136,10 +129,8 @@ Tasks support three schedule types:
|
|
|
136
129
|
- `once`: ISO timestamps or relative values such as `+5m`
|
|
137
130
|
- `cron`: 5/6-field cron expressions and a small RRULE subset
|
|
138
131
|
|
|
139
|
-
The scheduler does not catch up missed runs after process downtime. When it
|
|
140
|
-
starts, it registers future timers for enabled tasks.
|
|
132
|
+
The scheduler does not catch up missed runs after process downtime. When it starts, it registers future timers for enabled tasks.
|
|
141
133
|
|
|
142
134
|
## Hooks
|
|
143
135
|
|
|
144
|
-
Hooks are best-effort observability callbacks. If a hook throws, the scheduler
|
|
145
|
-
swallows the error and keeps task state authoritative.
|
|
136
|
+
Hooks are best-effort observability callbacks. If a hook throws, the scheduler swallows the error and keeps task state authoritative.
|
package/dist/extension.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AAOpB,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B,CAAC;AAmCF,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,EAAE,EAAE,YAAY,EAChB,cAAc,CAAC,EAAE,0BAA0B,GAC1C,IAAI,CAiLN"}
|
package/dist/extension.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
1
3
|
import path from 'node:path';
|
|
2
|
-
import { loadPiSettings,
|
|
4
|
+
import { isProjectTrusted, loadPiSettings, resolveHome } from '@amaster.ai/pi-shared/settings';
|
|
3
5
|
import { PersistentTaskScheduler, } from './index.js';
|
|
4
6
|
import { FileSchedulerLock, JsonScheduledTaskStore } from './stores.js';
|
|
5
7
|
import { createSchedulerTools } from './tools.js';
|
|
@@ -7,7 +9,7 @@ const SETTINGS_KEY = 'pi-scheduler';
|
|
|
7
9
|
const STATUS_KEY = 'pi-scheduler';
|
|
8
10
|
function resolveConfig(raw) {
|
|
9
11
|
const resolved = {
|
|
10
|
-
dataDir: raw?.dataDir?.trim() || path.join(
|
|
12
|
+
dataDir: raw?.dataDir?.trim() || path.join(resolveHome(), 'data'),
|
|
11
13
|
};
|
|
12
14
|
if (raw?.store)
|
|
13
15
|
resolved.store = raw.store;
|
|
@@ -17,11 +19,11 @@ function resolveConfig(raw) {
|
|
|
17
19
|
resolved.scheduler = raw.scheduler;
|
|
18
20
|
return resolved;
|
|
19
21
|
}
|
|
20
|
-
function loadSettings(cwd) {
|
|
22
|
+
function loadSettings(cwd, projectTrusted = false) {
|
|
21
23
|
try {
|
|
22
24
|
const config = loadPiSettings(SETTINGS_KEY, {
|
|
23
25
|
cwd,
|
|
24
|
-
|
|
26
|
+
projectTrusted,
|
|
25
27
|
});
|
|
26
28
|
return Object.keys(config).length > 0 ? config : undefined;
|
|
27
29
|
}
|
|
@@ -29,11 +31,14 @@ function loadSettings(cwd) {
|
|
|
29
31
|
return undefined;
|
|
30
32
|
}
|
|
31
33
|
}
|
|
34
|
+
function sessionStorageKey(sessionId) {
|
|
35
|
+
return createHash('sha256').update(sessionId).digest('hex');
|
|
36
|
+
}
|
|
32
37
|
export default function taskSchedulerExtension(pi, injectedConfig) {
|
|
33
38
|
let scheduler;
|
|
34
39
|
let ownsScheduler = false;
|
|
35
40
|
pi.on('session_start', async (_event, ctx) => {
|
|
36
|
-
const fileConfig = loadSettings(ctx.cwd);
|
|
41
|
+
const fileConfig = loadSettings(ctx.cwd, isProjectTrusted(ctx));
|
|
37
42
|
const config = resolveConfig({ ...fileConfig, ...injectedConfig });
|
|
38
43
|
try {
|
|
39
44
|
if (config.scheduler) {
|
|
@@ -41,12 +46,33 @@ export default function taskSchedulerExtension(pi, injectedConfig) {
|
|
|
41
46
|
ownsScheduler = false;
|
|
42
47
|
}
|
|
43
48
|
else {
|
|
44
|
-
const
|
|
45
|
-
const
|
|
49
|
+
const sessionId = ctx.sessionManager.getSessionId();
|
|
50
|
+
const storageKey = sessionStorageKey(sessionId);
|
|
51
|
+
const sessionStorePath = path.join(config.dataDir, `tasks-${storageKey}.json`);
|
|
52
|
+
const store = config.store ?? new JsonScheduledTaskStore(sessionStorePath);
|
|
53
|
+
if (!config.store && !existsSync(sessionStorePath)) {
|
|
54
|
+
const legacyStorePath = path.join(config.dataDir, 'tasks.json');
|
|
55
|
+
if (existsSync(legacyStorePath)) {
|
|
56
|
+
const legacyStore = new JsonScheduledTaskStore(legacyStorePath);
|
|
57
|
+
for (const task of await legacyStore.list({ sessionId })) {
|
|
58
|
+
await store.create(task);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const lock = config.lock ??
|
|
63
|
+
new FileSchedulerLock(path.join(config.dataDir, `scheduler-${storageKey}.lock`));
|
|
46
64
|
const runner = async (task) => {
|
|
65
|
+
if (ctx.sessionManager.getSessionId() !== task.sessionId) {
|
|
66
|
+
throw new Error('Scheduled task belongs to a different session.');
|
|
67
|
+
}
|
|
47
68
|
pi.sendUserMessage(task.prompt);
|
|
48
69
|
};
|
|
49
|
-
const instance = new PersistentTaskScheduler({
|
|
70
|
+
const instance = new PersistentTaskScheduler({
|
|
71
|
+
store,
|
|
72
|
+
lock,
|
|
73
|
+
runner,
|
|
74
|
+
scope: { sessionId },
|
|
75
|
+
});
|
|
50
76
|
await instance.start();
|
|
51
77
|
scheduler = instance;
|
|
52
78
|
ownsScheduler = true;
|
|
@@ -69,46 +95,97 @@ export default function taskSchedulerExtension(pi, injectedConfig) {
|
|
|
69
95
|
scheduler = undefined;
|
|
70
96
|
ownsScheduler = false;
|
|
71
97
|
});
|
|
72
|
-
pi.registerCommand('
|
|
73
|
-
description: '
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
const status = await scheduler.status();
|
|
80
|
-
ctx.ui.notify(formatStatus(status), 'info');
|
|
98
|
+
pi.registerCommand('cron', {
|
|
99
|
+
description: 'Manage scheduled tasks. Subcommands: status, list, get, run, enable, disable, delete.',
|
|
100
|
+
getArgumentCompletions: (prefix) => {
|
|
101
|
+
const subcommands = ['status', 'list', 'get', 'run', 'enable', 'disable', 'delete'];
|
|
102
|
+
const matches = subcommands.filter((s) => s.startsWith(prefix.trim().toLowerCase()));
|
|
103
|
+
return matches.map((s) => ({ label: s, value: s }));
|
|
81
104
|
},
|
|
82
|
-
});
|
|
83
|
-
pi.registerCommand('pi-scheduler-list', {
|
|
84
|
-
description: 'List scheduled tasks.',
|
|
85
|
-
handler: async (_args, ctx) => {
|
|
86
|
-
if (!scheduler) {
|
|
87
|
-
ctx.ui.notify('Task scheduler is not running.', 'warning');
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
const tasks = await scheduler.list();
|
|
91
|
-
ctx.ui.notify(formatTaskList(tasks), 'info');
|
|
92
|
-
},
|
|
93
|
-
});
|
|
94
|
-
pi.registerCommand('pi-scheduler-run-now', {
|
|
95
|
-
description: 'Run a scheduled task immediately by ID.',
|
|
96
105
|
handler: async (args, ctx) => {
|
|
97
|
-
const taskId = args.trim();
|
|
98
|
-
if (!taskId) {
|
|
99
|
-
ctx.ui.notify('Usage: /pi-scheduler-run-now <task-id>', 'warning');
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
106
|
if (!scheduler) {
|
|
103
107
|
ctx.ui.notify('Task scheduler is not running.', 'warning');
|
|
104
108
|
return;
|
|
105
109
|
}
|
|
106
|
-
const
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
+
const parts = args.trim().split(/\s+/).filter(Boolean);
|
|
111
|
+
const subcommand = parts[0]?.toLowerCase() ?? 'status';
|
|
112
|
+
const rest = parts.slice(1).join(' ').trim();
|
|
113
|
+
const scope = { sessionId: ctx.sessionManager.getSessionId() };
|
|
114
|
+
switch (subcommand) {
|
|
115
|
+
case 'status': {
|
|
116
|
+
const status = await scheduler.status();
|
|
117
|
+
ctx.ui.notify(formatStatus(status), 'info');
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
case 'list': {
|
|
121
|
+
const tasks = await scheduler.list(scope);
|
|
122
|
+
ctx.ui.notify(formatTaskList(tasks), 'info');
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
case 'get': {
|
|
126
|
+
if (!rest) {
|
|
127
|
+
ctx.ui.notify('Usage: /cron get <task-id>', 'warning');
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
const task = await scheduler.get(rest, scope);
|
|
131
|
+
if (!task) {
|
|
132
|
+
ctx.ui.notify(`Task not found: ${rest}`, 'error');
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
ctx.ui.notify(formatTaskDetail(task), 'info');
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
case 'run': {
|
|
139
|
+
if (!rest) {
|
|
140
|
+
ctx.ui.notify('Usage: /cron run <task-id>', 'warning');
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
const task = await scheduler.runNow(rest, scope);
|
|
144
|
+
if (!task) {
|
|
145
|
+
ctx.ui.notify(`Task not found: ${rest}`, 'error');
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
ctx.ui.notify(`Triggered: ${task.name ?? task.id}`, 'info');
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
151
|
+
case 'enable': {
|
|
152
|
+
if (!rest) {
|
|
153
|
+
ctx.ui.notify('Usage: /cron enable <task-id>', 'warning');
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
const task = await scheduler.update(rest, { enabled: true }, scope);
|
|
157
|
+
if (!task) {
|
|
158
|
+
ctx.ui.notify(`Task not found: ${rest}`, 'error');
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
ctx.ui.notify(`Enabled: ${task.name ?? task.id}`, 'info');
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
case 'disable': {
|
|
165
|
+
if (!rest) {
|
|
166
|
+
ctx.ui.notify('Usage: /cron disable <task-id>', 'warning');
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
const task = await scheduler.update(rest, { enabled: false }, scope);
|
|
170
|
+
if (!task) {
|
|
171
|
+
ctx.ui.notify(`Task not found: ${rest}`, 'error');
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
ctx.ui.notify(`Disabled: ${task.name ?? task.id}`, 'info');
|
|
175
|
+
break;
|
|
176
|
+
}
|
|
177
|
+
case 'delete': {
|
|
178
|
+
if (!rest) {
|
|
179
|
+
ctx.ui.notify('Usage: /cron delete <task-id>', 'warning');
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
const deleted = await scheduler.delete(rest, scope);
|
|
183
|
+
ctx.ui.notify(deleted ? `Deleted: ${rest}` : `Task not found: ${rest}`, deleted ? 'info' : 'error');
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
default:
|
|
187
|
+
ctx.ui.notify('Unknown subcommand. Available: status, list, get, run, enable, disable, delete.', 'warning');
|
|
110
188
|
}
|
|
111
|
-
ctx.ui.notify(`Triggered: ${task.name ?? task.id}`, 'info');
|
|
112
189
|
},
|
|
113
190
|
});
|
|
114
191
|
}
|
|
@@ -133,8 +210,25 @@ function formatTaskList(tasks) {
|
|
|
133
210
|
const name = t.name ?? t.id.slice(0, 8);
|
|
134
211
|
const status = t.enabled ? (t.lastStatus ?? 'pending') : 'disabled';
|
|
135
212
|
const next = t.nextRunAt ? ` next: ${t.nextRunAt}` : '';
|
|
136
|
-
return `${name} [${t.type}] ${status}${next}`;
|
|
213
|
+
return `${t.id.slice(0, 8)} ${name} [${t.type}] ${status}${next}`;
|
|
137
214
|
})
|
|
138
215
|
.join('\n');
|
|
139
216
|
}
|
|
217
|
+
function formatTaskDetail(task) {
|
|
218
|
+
const lines = [
|
|
219
|
+
`ID: ${task.id}`,
|
|
220
|
+
`Name: ${task.name ?? '(unnamed)'}`,
|
|
221
|
+
`Type: ${task.type}`,
|
|
222
|
+
`Schedule: ${task.schedule}`,
|
|
223
|
+
`Enabled: ${task.enabled}`,
|
|
224
|
+
`Status: ${task.lastStatus ?? 'pending'}`,
|
|
225
|
+
`Runs: ${task.runCount}`,
|
|
226
|
+
];
|
|
227
|
+
if (task.nextRunAt)
|
|
228
|
+
lines.push(`Next run: ${task.nextRunAt}`);
|
|
229
|
+
if (task.description)
|
|
230
|
+
lines.push(`Description: ${task.description}`);
|
|
231
|
+
lines.push(`Prompt: ${task.prompt}`);
|
|
232
|
+
return lines.join('\n');
|
|
233
|
+
}
|
|
140
234
|
//# sourceMappingURL=extension.js.map
|
package/dist/extension.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -40,6 +40,7 @@ export type ScheduledTask = {
|
|
|
40
40
|
lastRunAt?: string;
|
|
41
41
|
nextRunAt?: string;
|
|
42
42
|
runCount: number;
|
|
43
|
+
timeoutMs?: number;
|
|
43
44
|
lastStatus?: ScheduledTaskStatus;
|
|
44
45
|
lastError?: string;
|
|
45
46
|
runHistory?: ScheduledTaskRunHistoryEntry[];
|
|
@@ -66,6 +67,7 @@ export type TaskSchedulerStatus = {
|
|
|
66
67
|
export type TaskSchedulerScope = {
|
|
67
68
|
tenantId?: string;
|
|
68
69
|
userId?: string;
|
|
70
|
+
sessionId?: string;
|
|
69
71
|
};
|
|
70
72
|
export interface TaskScheduler {
|
|
71
73
|
list(scope?: TaskSchedulerScope): Promise<ScheduledTask[]>;
|
|
@@ -118,6 +120,7 @@ export type PersistentTaskSchedulerOptions = {
|
|
|
118
120
|
store: ScheduledTaskStore;
|
|
119
121
|
lock: SchedulerLock;
|
|
120
122
|
runner: ScheduledTaskRunner;
|
|
123
|
+
scope?: TaskSchedulerScope;
|
|
121
124
|
hooks?: TaskSchedulerHooks;
|
|
122
125
|
lockHeartbeatMs?: number;
|
|
123
126
|
};
|
|
@@ -128,6 +131,7 @@ export declare class PersistentTaskScheduler implements TaskScheduler {
|
|
|
128
131
|
private readonly runningTaskIds;
|
|
129
132
|
private active;
|
|
130
133
|
private lockHeartbeat;
|
|
134
|
+
private readonly scope;
|
|
131
135
|
constructor(options: PersistentTaskSchedulerOptions);
|
|
132
136
|
list(scope?: TaskSchedulerScope): Promise<ScheduledTask[]>;
|
|
133
137
|
get(taskId: string, scope?: TaskSchedulerScope): Promise<ScheduledTask | undefined>;
|
|
@@ -148,7 +152,9 @@ export declare class PersistentTaskScheduler implements TaskScheduler {
|
|
|
148
152
|
private emitSchedulerStarted;
|
|
149
153
|
private emitSchedulerStopped;
|
|
150
154
|
private emitHook;
|
|
155
|
+
private applyScope;
|
|
151
156
|
}
|
|
157
|
+
export declare function matchesScheduledTaskScope(task: Pick<ScheduledTask, 'tenantId' | 'userId' | 'sessionId'>, scope: TaskSchedulerScope): boolean;
|
|
152
158
|
export declare function resolveScheduledTaskDefinition(input: {
|
|
153
159
|
type?: ScheduledTaskType;
|
|
154
160
|
schedule?: string;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,17 +7,19 @@ export class PersistentTaskScheduler {
|
|
|
7
7
|
runningTaskIds = new Set();
|
|
8
8
|
active = false;
|
|
9
9
|
lockHeartbeat;
|
|
10
|
+
scope;
|
|
10
11
|
constructor(options) {
|
|
11
12
|
this.options = options;
|
|
13
|
+
this.scope = { ...options.scope };
|
|
12
14
|
}
|
|
13
15
|
async list(scope = {}) {
|
|
14
|
-
return await this.options.store.list(scope);
|
|
16
|
+
return await this.options.store.list(this.applyScope(scope));
|
|
15
17
|
}
|
|
16
18
|
async get(taskId, scope = {}) {
|
|
17
|
-
return await this.options.store.get(taskId, scope);
|
|
19
|
+
return await this.options.store.get(taskId, this.applyScope(scope));
|
|
18
20
|
}
|
|
19
21
|
async status() {
|
|
20
|
-
const tasks = await this.options.store.list();
|
|
22
|
+
const tasks = await this.options.store.list(this.scope);
|
|
21
23
|
const holderPid = await this.options.lock.holderPid();
|
|
22
24
|
const lock = {
|
|
23
25
|
path: this.options.lock.path,
|
|
@@ -40,6 +42,9 @@ export class PersistentTaskScheduler {
|
|
|
40
42
|
return this.active;
|
|
41
43
|
}
|
|
42
44
|
async create(input) {
|
|
45
|
+
if (!matchesScheduledTaskScope(input, this.scope)) {
|
|
46
|
+
throw new Error('Scheduled task is outside this scheduler scope.');
|
|
47
|
+
}
|
|
43
48
|
const now = new Date().toISOString();
|
|
44
49
|
const task = withNextRun({
|
|
45
50
|
id: randomUUID(),
|
|
@@ -56,7 +61,8 @@ export class PersistentTaskScheduler {
|
|
|
56
61
|
return created;
|
|
57
62
|
}
|
|
58
63
|
async update(taskId, input, scope = {}) {
|
|
59
|
-
const
|
|
64
|
+
const effectiveScope = this.applyScope(scope);
|
|
65
|
+
const existing = await this.options.store.get(taskId, effectiveScope);
|
|
60
66
|
if (!existing) {
|
|
61
67
|
return undefined;
|
|
62
68
|
}
|
|
@@ -93,18 +99,21 @@ export class PersistentTaskScheduler {
|
|
|
93
99
|
if (input.enabled !== false && existing.lastStatus === 'error' && existing.lastError) {
|
|
94
100
|
delete task.lastError;
|
|
95
101
|
}
|
|
96
|
-
const updated = await this.options.store.update(taskId, task,
|
|
102
|
+
const updated = await this.options.store.update(taskId, task, effectiveScope);
|
|
97
103
|
if (this.active && updated) {
|
|
98
104
|
this.schedule(updated);
|
|
99
105
|
}
|
|
100
106
|
return updated;
|
|
101
107
|
}
|
|
102
108
|
async delete(taskId, scope = {}) {
|
|
103
|
-
this.
|
|
104
|
-
|
|
109
|
+
const deleted = await this.options.store.delete(taskId, this.applyScope(scope));
|
|
110
|
+
if (deleted) {
|
|
111
|
+
this.unschedule(taskId);
|
|
112
|
+
}
|
|
113
|
+
return deleted;
|
|
105
114
|
}
|
|
106
115
|
async runNow(taskId, scope = {}) {
|
|
107
|
-
const task = await this.options.store.get(taskId, scope);
|
|
116
|
+
const task = await this.options.store.get(taskId, this.applyScope(scope));
|
|
108
117
|
if (!task) {
|
|
109
118
|
return undefined;
|
|
110
119
|
}
|
|
@@ -120,9 +129,33 @@ export class PersistentTaskScheduler {
|
|
|
120
129
|
}
|
|
121
130
|
this.active = true;
|
|
122
131
|
this.startLockHeartbeat();
|
|
123
|
-
const tasks = await this.options.store.list();
|
|
132
|
+
const tasks = await this.options.store.list(this.scope);
|
|
124
133
|
for (const task of tasks) {
|
|
125
|
-
|
|
134
|
+
if (task.lastStatus === 'running') {
|
|
135
|
+
const fixedAt = new Date().toISOString();
|
|
136
|
+
const fixedTask = withNextRun({
|
|
137
|
+
...task,
|
|
138
|
+
lastStatus: 'error',
|
|
139
|
+
lastError: 'Process was interrupted while task was running',
|
|
140
|
+
runHistory: updateTaskHistoryEntry(task.runHistory, findLastRunningEntryId(task.runHistory), {
|
|
141
|
+
status: 'error',
|
|
142
|
+
message: 'Process was interrupted while task was running',
|
|
143
|
+
}),
|
|
144
|
+
updatedAt: fixedAt,
|
|
145
|
+
});
|
|
146
|
+
await this.options.store.update(task.id, fixedTask, this.scope).catch(() => undefined);
|
|
147
|
+
this.schedule(fixedTask);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
const refreshed = withNextRun(task);
|
|
151
|
+
if (refreshed.nextRunAt !== task.nextRunAt) {
|
|
152
|
+
await this.options.store.update(task.id, refreshed, this.scope).catch(() => undefined);
|
|
153
|
+
this.schedule(refreshed);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
this.schedule(task);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
126
159
|
}
|
|
127
160
|
await this.emitSchedulerStarted();
|
|
128
161
|
}
|
|
@@ -154,7 +187,7 @@ export class PersistentTaskScheduler {
|
|
|
154
187
|
void this.execute(task.id);
|
|
155
188
|
});
|
|
156
189
|
this.crons.set(task.id, cron);
|
|
157
|
-
void this.refreshNextRun(task.id, cron.nextRun()?.toISOString());
|
|
190
|
+
void this.refreshNextRun(task.id, cron.nextRun()?.toISOString(), task);
|
|
158
191
|
}
|
|
159
192
|
catch (error) {
|
|
160
193
|
void this.markScheduleError(task.id, error instanceof Error ? error.message : String(error));
|
|
@@ -173,7 +206,7 @@ export class PersistentTaskScheduler {
|
|
|
173
206
|
}, delayMs);
|
|
174
207
|
timer.unref();
|
|
175
208
|
this.timers.set(task.id, timer);
|
|
176
|
-
void this.refreshNextRun(task.id, target.toISOString());
|
|
209
|
+
void this.refreshNextRun(task.id, target.toISOString(), task);
|
|
177
210
|
return;
|
|
178
211
|
}
|
|
179
212
|
const timer = setInterval(() => {
|
|
@@ -181,13 +214,13 @@ export class PersistentTaskScheduler {
|
|
|
181
214
|
}, task.intervalSeconds * 1000);
|
|
182
215
|
timer.unref();
|
|
183
216
|
this.timers.set(task.id, timer);
|
|
184
|
-
void this.refreshNextRun(task.id, new Date(Date.now() + task.intervalSeconds * 1000).toISOString());
|
|
217
|
+
void this.refreshNextRun(task.id, new Date(Date.now() + task.intervalSeconds * 1000).toISOString(), task);
|
|
185
218
|
}
|
|
186
219
|
async execute(taskId) {
|
|
187
220
|
if (!this.active || this.runningTaskIds.has(taskId)) {
|
|
188
221
|
return;
|
|
189
222
|
}
|
|
190
|
-
const task = await this.options.store.get(taskId);
|
|
223
|
+
const task = await this.options.store.get(taskId, this.scope);
|
|
191
224
|
if (!task?.enabled) {
|
|
192
225
|
return;
|
|
193
226
|
}
|
|
@@ -203,7 +236,7 @@ export class PersistentTaskScheduler {
|
|
|
203
236
|
runHistory: appendTaskHistory(task.runHistory, runningEntry),
|
|
204
237
|
updatedAt: startedAt,
|
|
205
238
|
};
|
|
206
|
-
await this.options.store.update(taskId, runningTask);
|
|
239
|
+
await this.options.store.update(taskId, runningTask, this.scope);
|
|
207
240
|
const run = {
|
|
208
241
|
historyEntryId: runningEntry.id,
|
|
209
242
|
sessionId: runningEntry.sessionId ?? task.sessionId,
|
|
@@ -212,7 +245,7 @@ export class PersistentTaskScheduler {
|
|
|
212
245
|
await this.emitHook(() => this.options.hooks?.onTaskStarted?.({ task, run, timestamp: startedAt }));
|
|
213
246
|
try {
|
|
214
247
|
await this.options.runner(task, run);
|
|
215
|
-
const latest = (await this.options.store.get(taskId)) ?? runningTask;
|
|
248
|
+
const latest = (await this.options.store.get(taskId, this.scope)) ?? runningTask;
|
|
216
249
|
const completedAt = new Date().toISOString();
|
|
217
250
|
const updated = withNextRun({
|
|
218
251
|
...latest,
|
|
@@ -227,14 +260,14 @@ export class PersistentTaskScheduler {
|
|
|
227
260
|
updatedAt: completedAt,
|
|
228
261
|
});
|
|
229
262
|
delete updated.lastError;
|
|
230
|
-
const stored = (await this.options.store.update(taskId, updated)) ?? updated;
|
|
263
|
+
const stored = (await this.options.store.update(taskId, updated, this.scope)) ?? updated;
|
|
231
264
|
if (updated.type === 'once') {
|
|
232
265
|
this.unschedule(taskId);
|
|
233
266
|
}
|
|
234
267
|
await this.emitHook(() => this.options.hooks?.onTaskCompleted?.({ task: stored, run, timestamp: completedAt }));
|
|
235
268
|
}
|
|
236
269
|
catch (error) {
|
|
237
|
-
const latest = (await this.options.store.get(taskId)) ?? runningTask;
|
|
270
|
+
const latest = (await this.options.store.get(taskId, this.scope)) ?? runningTask;
|
|
238
271
|
const failedAt = new Date().toISOString();
|
|
239
272
|
const message = error instanceof Error ? error.message : String(error);
|
|
240
273
|
const updated = withNextRun({
|
|
@@ -247,7 +280,7 @@ export class PersistentTaskScheduler {
|
|
|
247
280
|
}),
|
|
248
281
|
updatedAt: failedAt,
|
|
249
282
|
});
|
|
250
|
-
const stored = (await this.options.store.update(taskId, updated)) ?? updated;
|
|
283
|
+
const stored = (await this.options.store.update(taskId, updated, this.scope)) ?? updated;
|
|
251
284
|
await this.emitHook(() => this.options.hooks?.onTaskFailed?.({
|
|
252
285
|
task: stored,
|
|
253
286
|
run,
|
|
@@ -271,8 +304,8 @@ export class PersistentTaskScheduler {
|
|
|
271
304
|
this.crons.delete(taskId);
|
|
272
305
|
}
|
|
273
306
|
}
|
|
274
|
-
async refreshNextRun(taskId, nextRunAt) {
|
|
275
|
-
const task = await this.options.store.get(taskId);
|
|
307
|
+
async refreshNextRun(taskId, nextRunAt, knownTask) {
|
|
308
|
+
const task = knownTask ?? (await this.options.store.get(taskId, this.scope));
|
|
276
309
|
if (!task || nextRunAt === task.nextRunAt) {
|
|
277
310
|
return;
|
|
278
311
|
}
|
|
@@ -283,10 +316,10 @@ export class PersistentTaskScheduler {
|
|
|
283
316
|
else {
|
|
284
317
|
delete updated.nextRunAt;
|
|
285
318
|
}
|
|
286
|
-
await this.options.store.update(taskId, updated);
|
|
319
|
+
await this.options.store.update(taskId, updated, this.scope);
|
|
287
320
|
}
|
|
288
321
|
async markScheduleError(taskId, error) {
|
|
289
|
-
const task = await this.options.store.get(taskId);
|
|
322
|
+
const task = await this.options.store.get(taskId, this.scope);
|
|
290
323
|
if (!task) {
|
|
291
324
|
return;
|
|
292
325
|
}
|
|
@@ -299,7 +332,7 @@ export class PersistentTaskScheduler {
|
|
|
299
332
|
updatedAt: new Date().toISOString(),
|
|
300
333
|
};
|
|
301
334
|
delete updated.nextRunAt;
|
|
302
|
-
const stored = (await this.options.store.update(taskId, updated)) ?? updated;
|
|
335
|
+
const stored = (await this.options.store.update(taskId, updated, this.scope)) ?? updated;
|
|
303
336
|
await this.emitHook(() => this.options.hooks?.onTaskFailed?.({
|
|
304
337
|
task: stored,
|
|
305
338
|
run: {
|
|
@@ -347,6 +380,14 @@ export class PersistentTaskScheduler {
|
|
|
347
380
|
// Hooks are observability side effects; scheduler state must not depend on them.
|
|
348
381
|
}
|
|
349
382
|
}
|
|
383
|
+
applyScope(scope) {
|
|
384
|
+
return { ...scope, ...this.scope };
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
export function matchesScheduledTaskScope(task, scope) {
|
|
388
|
+
return ((scope.tenantId === undefined || task.tenantId === scope.tenantId) &&
|
|
389
|
+
(scope.userId === undefined || task.userId === scope.userId) &&
|
|
390
|
+
(scope.sessionId === undefined || task.sessionId === scope.sessionId));
|
|
350
391
|
}
|
|
351
392
|
export function resolveScheduledTaskDefinition(input) {
|
|
352
393
|
const type = input.type;
|
|
@@ -409,6 +450,12 @@ export function normalizeScheduledTask(rawTask) {
|
|
|
409
450
|
else {
|
|
410
451
|
delete task.workspaceDir;
|
|
411
452
|
}
|
|
453
|
+
if (typeof raw.timeoutMs === 'number' && Number.isFinite(raw.timeoutMs) && raw.timeoutMs > 0) {
|
|
454
|
+
task.timeoutMs = Math.floor(raw.timeoutMs);
|
|
455
|
+
}
|
|
456
|
+
else {
|
|
457
|
+
delete task.timeoutMs;
|
|
458
|
+
}
|
|
412
459
|
const nextRunAt = computeNextRunAt(task);
|
|
413
460
|
if (nextRunAt) {
|
|
414
461
|
task.nextRunAt = nextRunAt;
|
|
@@ -459,6 +506,16 @@ export function updateTaskHistoryEntry(history, entryId, patch) {
|
|
|
459
506
|
.map((entry) => (entry.id === entryId ? { ...entry, ...patch } : entry))
|
|
460
507
|
.slice(-25);
|
|
461
508
|
}
|
|
509
|
+
function findLastRunningEntryId(history) {
|
|
510
|
+
const entries = history ?? [];
|
|
511
|
+
for (let i = entries.length - 1; i >= 0; i--) {
|
|
512
|
+
const entry = entries[i];
|
|
513
|
+
if (entry?.status === 'running') {
|
|
514
|
+
return entry.id;
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
return '';
|
|
518
|
+
}
|
|
462
519
|
export function createScheduledTaskRunSessionId() {
|
|
463
520
|
return `scheduled-run-${randomUUID()}`;
|
|
464
521
|
}
|
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/dist/stores.d.ts
CHANGED
|
@@ -3,14 +3,16 @@ export declare class JsonScheduledTaskStore implements ScheduledTaskStore {
|
|
|
3
3
|
private readonly filePath;
|
|
4
4
|
private loaded;
|
|
5
5
|
private readonly tasks;
|
|
6
|
+
private writeTail;
|
|
6
7
|
constructor(filePath: string);
|
|
7
|
-
list(
|
|
8
|
-
get(taskId: string,
|
|
8
|
+
list(scope?: TaskSchedulerScope): Promise<ScheduledTask[]>;
|
|
9
|
+
get(taskId: string, scope?: TaskSchedulerScope): Promise<ScheduledTask | undefined>;
|
|
9
10
|
create(task: ScheduledTask): Promise<ScheduledTask>;
|
|
10
|
-
update(taskId: string, task: ScheduledTask,
|
|
11
|
-
delete(taskId: string,
|
|
11
|
+
update(taskId: string, task: ScheduledTask, scope?: TaskSchedulerScope): Promise<ScheduledTask | undefined>;
|
|
12
|
+
delete(taskId: string, scope?: TaskSchedulerScope): Promise<boolean>;
|
|
12
13
|
private load;
|
|
13
14
|
private save;
|
|
15
|
+
private updateState;
|
|
14
16
|
}
|
|
15
17
|
export declare class FileSchedulerLock implements SchedulerLock {
|
|
16
18
|
readonly path: string;
|
package/dist/stores.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../src/stores.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../src/stores.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAC;AAGpB,qBAAa,sBAAuB,YAAW,kBAAkB;IAKnD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoC;IAC1D,OAAO,CAAC,SAAS,CAAuC;gBAE3B,QAAQ,EAAE,MAAM;IAEvC,IAAI,CAAC,KAAK,GAAE,kBAAuB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAK9D,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,kBAAuB,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAMvF,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAQnD,MAAM,CACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,EACnB,KAAK,GAAE,kBAAuB,GAC7B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAgB/B,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,kBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;YAUhE,IAAI;YAaJ,IAAI;YAIJ,WAAW;CAU1B;AAED,qBAAa,iBAAkB,YAAW,aAAa;IAGzC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAFjC,OAAO,CAAC,QAAQ,CAAS;gBAEJ,IAAI,EAAE,MAAM;IAEjC,OAAO,IAAI,OAAO;IAwBlB,OAAO,IAAI,IAAI;IAef,UAAU,IAAI,OAAO;IAIrB,SAAS,IAAI,MAAM,GAAG,SAAS;CAYhC"}
|
package/dist/stores.js
CHANGED
|
@@ -1,47 +1,54 @@
|
|
|
1
1
|
import { mkdirSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import { normalizeScheduledTask, } from './index.js';
|
|
3
|
+
import { matchesScheduledTaskScope, normalizeScheduledTask, } from './index.js';
|
|
4
4
|
import { readJsonFile, writeJsonFile } from './json-file.js';
|
|
5
5
|
export class JsonScheduledTaskStore {
|
|
6
6
|
filePath;
|
|
7
7
|
loaded = false;
|
|
8
8
|
tasks = new Map();
|
|
9
|
+
writeTail = Promise.resolve();
|
|
9
10
|
constructor(filePath) {
|
|
10
11
|
this.filePath = filePath;
|
|
11
12
|
}
|
|
12
|
-
async list(
|
|
13
|
+
async list(scope = {}) {
|
|
13
14
|
await this.load();
|
|
14
|
-
return Array.from(this.tasks.values());
|
|
15
|
+
return Array.from(this.tasks.values()).filter((task) => matchesScheduledTaskScope(task, scope));
|
|
15
16
|
}
|
|
16
|
-
async get(taskId,
|
|
17
|
+
async get(taskId, scope = {}) {
|
|
17
18
|
await this.load();
|
|
18
|
-
|
|
19
|
+
const task = this.tasks.get(taskId);
|
|
20
|
+
return task && matchesScheduledTaskScope(task, scope) ? task : undefined;
|
|
19
21
|
}
|
|
20
22
|
async create(task) {
|
|
21
|
-
await this.load();
|
|
22
23
|
const normalized = normalizeScheduledTask(task);
|
|
23
|
-
this.
|
|
24
|
-
|
|
24
|
+
await this.updateState(() => {
|
|
25
|
+
this.tasks.set(normalized.id, normalized);
|
|
26
|
+
});
|
|
25
27
|
return normalized;
|
|
26
28
|
}
|
|
27
|
-
async update(taskId, task,
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
async update(taskId, task, scope = {}) {
|
|
30
|
+
const normalized = normalizeScheduledTask(task);
|
|
31
|
+
const updated = await this.updateState(() => {
|
|
32
|
+
const existing = this.tasks.get(taskId);
|
|
33
|
+
if (!existing || !matchesScheduledTaskScope(existing, scope)) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
this.tasks.set(taskId, normalized);
|
|
37
|
+
return true;
|
|
38
|
+
});
|
|
39
|
+
if (!updated) {
|
|
30
40
|
return undefined;
|
|
31
41
|
}
|
|
32
|
-
const normalized = normalizeScheduledTask(task);
|
|
33
|
-
this.tasks.set(taskId, normalized);
|
|
34
|
-
await this.save();
|
|
35
42
|
return normalized;
|
|
36
43
|
}
|
|
37
|
-
async delete(taskId,
|
|
38
|
-
await this.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
async delete(taskId, scope = {}) {
|
|
45
|
+
return await this.updateState(() => {
|
|
46
|
+
const existing = this.tasks.get(taskId);
|
|
47
|
+
if (!existing || !matchesScheduledTaskScope(existing, scope)) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
return this.tasks.delete(taskId);
|
|
51
|
+
});
|
|
45
52
|
}
|
|
46
53
|
async load() {
|
|
47
54
|
if (this.loaded) {
|
|
@@ -58,6 +65,16 @@ export class JsonScheduledTaskStore {
|
|
|
58
65
|
async save() {
|
|
59
66
|
await writeJsonFile(this.filePath, Array.from(this.tasks.values()));
|
|
60
67
|
}
|
|
68
|
+
async updateState(mutator) {
|
|
69
|
+
const pending = this.writeTail.then(async () => {
|
|
70
|
+
await this.load();
|
|
71
|
+
const result = mutator();
|
|
72
|
+
await this.save();
|
|
73
|
+
return result;
|
|
74
|
+
});
|
|
75
|
+
this.writeTail = pending.catch(() => undefined);
|
|
76
|
+
return await pending;
|
|
77
|
+
}
|
|
61
78
|
}
|
|
62
79
|
export class FileSchedulerLock {
|
|
63
80
|
path;
|
package/dist/stores.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stores.js","sourceRoot":"","sources":["../src/stores.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,sBAAsB,GAKvB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE7D,MAAM,OAAO,sBAAsB;
|
|
1
|
+
{"version":3,"file":"stores.js","sourceRoot":"","sources":["../src/stores.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,cAAc,EACf,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,cAAc,EACf,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AA8BpB,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,aAAa,GAAG,cAAc,EAAE,CA+M/E"}
|
package/dist/tools.js
CHANGED
|
@@ -16,6 +16,9 @@ function formatTaskSummary(task) {
|
|
|
16
16
|
prompt: task.prompt.length > 100 ? `${task.prompt.slice(0, 100)}…` : task.prompt,
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
|
+
function sessionScope(ctx) {
|
|
20
|
+
return { sessionId: ctx.sessionManager.getSessionId() };
|
|
21
|
+
}
|
|
19
22
|
const taskTypeSchema = Type.Union([
|
|
20
23
|
Type.Literal('cron'),
|
|
21
24
|
Type.Literal('once'),
|
|
@@ -26,17 +29,20 @@ export function createSchedulerTools(scheduler) {
|
|
|
26
29
|
{
|
|
27
30
|
name: 'scheduler_create',
|
|
28
31
|
label: 'Scheduler',
|
|
29
|
-
description: '
|
|
30
|
-
promptSnippet: '
|
|
32
|
+
description: 'Schedule a prompt to be executed automatically at a future time or on a recurring basis. Supports cron expressions, one-time (ISO timestamp or relative like "+10m"), and interval (e.g. "30s", "5m", "1h"). Use this when the user wants something to run later, repeatedly, or on a timer.',
|
|
33
|
+
promptSnippet: 'Schedule prompts to run automatically via cron, one-time delay, or fixed interval.',
|
|
31
34
|
parameters: Type.Object({
|
|
32
35
|
type: taskTypeSchema,
|
|
33
36
|
schedule: Type.String({
|
|
34
37
|
description: 'Schedule expression. Cron: "0 9 * * 1-5"; Once: ISO timestamp or "+10m"; Interval: "30s", "5m", "1h".',
|
|
35
38
|
}),
|
|
36
39
|
prompt: Type.String({ description: 'The prompt to execute when triggered.' }),
|
|
37
|
-
name: Type.Optional(Type.String({ description: 'Human-readable
|
|
38
|
-
description: Type.Optional(Type.String({ description: '
|
|
39
|
-
enabled: Type.Optional(Type.Boolean({ description: 'Whether
|
|
40
|
+
name: Type.Optional(Type.String({ description: 'Human-readable name for this scheduled prompt.' })),
|
|
41
|
+
description: Type.Optional(Type.String({ description: 'Description of this scheduled prompt.' })),
|
|
42
|
+
enabled: Type.Optional(Type.Boolean({ description: 'Whether this scheduled prompt is enabled. Default true.' })),
|
|
43
|
+
timeoutMs: Type.Optional(Type.Number({
|
|
44
|
+
description: 'Maximum execution time in milliseconds. Defaults to 30 minutes.',
|
|
45
|
+
})),
|
|
40
46
|
}),
|
|
41
47
|
async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
|
|
42
48
|
try {
|
|
@@ -49,13 +55,16 @@ export function createSchedulerTools(scheduler) {
|
|
|
49
55
|
prompt: params.prompt,
|
|
50
56
|
sessionId: ctx.sessionManager?.getSessionId?.() ?? 'unknown',
|
|
51
57
|
model: {
|
|
52
|
-
provider: 'anthropic',
|
|
58
|
+
provider: ctx.model?.provider ?? 'anthropic',
|
|
53
59
|
model: ctx.model?.id ?? 'unknown',
|
|
54
60
|
},
|
|
55
|
-
toolPolicyProfile: '
|
|
61
|
+
toolPolicyProfile: 'workspace-write',
|
|
56
62
|
enabled: params.enabled !== false,
|
|
57
63
|
...(params.name ? { name: params.name } : {}),
|
|
58
64
|
...(params.description ? { description: params.description } : {}),
|
|
65
|
+
...(typeof params.timeoutMs === 'number'
|
|
66
|
+
? { timeoutMs: params.timeoutMs }
|
|
67
|
+
: {}),
|
|
59
68
|
};
|
|
60
69
|
const task = await scheduler.create(input);
|
|
61
70
|
return textResult(JSON.stringify(formatTaskSummary(task), null, 2));
|
|
@@ -68,11 +77,11 @@ export function createSchedulerTools(scheduler) {
|
|
|
68
77
|
{
|
|
69
78
|
name: 'scheduler_list',
|
|
70
79
|
label: 'Scheduler',
|
|
71
|
-
description: 'List all scheduled
|
|
72
|
-
promptSnippet: 'List all scheduled
|
|
80
|
+
description: 'List all scheduled prompts with their status and next run time.',
|
|
81
|
+
promptSnippet: 'List all scheduled prompts.',
|
|
73
82
|
parameters: Type.Object({}),
|
|
74
|
-
async execute() {
|
|
75
|
-
const tasks = await scheduler.list();
|
|
83
|
+
async execute(_id, _params, _signal, _onUpdate, ctx) {
|
|
84
|
+
const tasks = await scheduler.list(sessionScope(ctx));
|
|
76
85
|
if (tasks.length === 0) {
|
|
77
86
|
return textResult('No scheduled tasks.');
|
|
78
87
|
}
|
|
@@ -83,12 +92,12 @@ export function createSchedulerTools(scheduler) {
|
|
|
83
92
|
{
|
|
84
93
|
name: 'scheduler_get',
|
|
85
94
|
label: 'Scheduler',
|
|
86
|
-
description: 'Get detailed information about a scheduled
|
|
95
|
+
description: 'Get detailed information about a scheduled prompt, including its schedule and run history.',
|
|
87
96
|
parameters: Type.Object({
|
|
88
|
-
taskId: Type.String({ description: 'The
|
|
97
|
+
taskId: Type.String({ description: 'The scheduled-prompt ID to query.' }),
|
|
89
98
|
}),
|
|
90
|
-
async execute(_toolCallId, params) {
|
|
91
|
-
const task = await scheduler.get(params.taskId);
|
|
99
|
+
async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
|
|
100
|
+
const task = await scheduler.get(params.taskId, sessionScope(ctx));
|
|
92
101
|
if (!task) {
|
|
93
102
|
return textResult(`Task not found: ${params.taskId}`);
|
|
94
103
|
}
|
|
@@ -98,22 +107,27 @@ export function createSchedulerTools(scheduler) {
|
|
|
98
107
|
{
|
|
99
108
|
name: 'scheduler_update',
|
|
100
109
|
label: 'Scheduler',
|
|
101
|
-
description: 'Update a scheduled
|
|
110
|
+
description: 'Update a scheduled prompt. Can change schedule, prompt text, name, or enable/disable.',
|
|
102
111
|
parameters: Type.Object({
|
|
103
|
-
taskId: Type.String({ description: 'The
|
|
112
|
+
taskId: Type.String({ description: 'The scheduled-prompt ID to update.' }),
|
|
104
113
|
type: Type.Optional(taskTypeSchema),
|
|
105
114
|
schedule: Type.Optional(Type.String({ description: 'New schedule expression.' })),
|
|
106
115
|
prompt: Type.Optional(Type.String({ description: 'New prompt.' })),
|
|
107
116
|
name: Type.Optional(Type.String({ description: 'New name.' })),
|
|
108
117
|
description: Type.Optional(Type.String({ description: 'New description.' })),
|
|
109
|
-
enabled: Type.Optional(Type.Boolean({ description: 'Enable or disable
|
|
118
|
+
enabled: Type.Optional(Type.Boolean({ description: 'Enable or disable.' })),
|
|
110
119
|
}),
|
|
111
|
-
async execute(_toolCallId, params) {
|
|
112
|
-
const { taskId, type, schedule,
|
|
113
|
-
const update = {
|
|
120
|
+
async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
|
|
121
|
+
const { taskId, type, schedule, prompt, name, description, enabled } = params;
|
|
122
|
+
const update = {
|
|
123
|
+
...(prompt !== undefined ? { prompt } : {}),
|
|
124
|
+
...(name !== undefined ? { name } : {}),
|
|
125
|
+
...(description !== undefined ? { description } : {}),
|
|
126
|
+
...(enabled !== undefined ? { enabled } : {}),
|
|
127
|
+
};
|
|
114
128
|
if (type !== undefined || schedule !== undefined) {
|
|
115
129
|
try {
|
|
116
|
-
const existing = await scheduler.get(taskId);
|
|
130
|
+
const existing = await scheduler.get(taskId, sessionScope(ctx));
|
|
117
131
|
if (!existing) {
|
|
118
132
|
return textResult(`Task not found: ${taskId}`);
|
|
119
133
|
}
|
|
@@ -127,7 +141,7 @@ export function createSchedulerTools(scheduler) {
|
|
|
127
141
|
return textResult(`Invalid schedule: ${error instanceof Error ? error.message : String(error)}`);
|
|
128
142
|
}
|
|
129
143
|
}
|
|
130
|
-
const task = await scheduler.update(taskId, update);
|
|
144
|
+
const task = await scheduler.update(taskId, update, sessionScope(ctx));
|
|
131
145
|
if (!task) {
|
|
132
146
|
return textResult(`Task not found: ${taskId}`);
|
|
133
147
|
}
|
|
@@ -137,26 +151,26 @@ export function createSchedulerTools(scheduler) {
|
|
|
137
151
|
{
|
|
138
152
|
name: 'scheduler_delete',
|
|
139
153
|
label: 'Scheduler',
|
|
140
|
-
description: 'Delete a scheduled
|
|
154
|
+
description: 'Delete a scheduled prompt.',
|
|
141
155
|
parameters: Type.Object({
|
|
142
|
-
taskId: Type.String({ description: 'The
|
|
156
|
+
taskId: Type.String({ description: 'The scheduled-prompt ID to delete.' }),
|
|
143
157
|
}),
|
|
144
|
-
async execute(_toolCallId, params) {
|
|
158
|
+
async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
|
|
145
159
|
const taskId = params.taskId;
|
|
146
|
-
const deleted = await scheduler.delete(taskId);
|
|
160
|
+
const deleted = await scheduler.delete(taskId, sessionScope(ctx));
|
|
147
161
|
return textResult(deleted ? `Deleted task: ${taskId}` : `Task not found: ${taskId}`);
|
|
148
162
|
},
|
|
149
163
|
},
|
|
150
164
|
{
|
|
151
165
|
name: 'scheduler_run_now',
|
|
152
166
|
label: 'Scheduler',
|
|
153
|
-
description: 'Trigger immediate execution of a scheduled
|
|
167
|
+
description: 'Trigger immediate execution of a scheduled prompt, ignoring its schedule.',
|
|
154
168
|
parameters: Type.Object({
|
|
155
|
-
taskId: Type.String({ description: 'The
|
|
169
|
+
taskId: Type.String({ description: 'The scheduled-prompt ID to run immediately.' }),
|
|
156
170
|
}),
|
|
157
|
-
async execute(_toolCallId, params) {
|
|
171
|
+
async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
|
|
158
172
|
const taskId = params.taskId;
|
|
159
|
-
const task = await scheduler.runNow(taskId);
|
|
173
|
+
const task = await scheduler.runNow(taskId, sessionScope(ctx));
|
|
160
174
|
if (!task) {
|
|
161
175
|
return textResult(`Task not found: ${taskId}`);
|
|
162
176
|
}
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EACL,8BAA8B,GAK/B,MAAM,YAAY,CAAC;AAEpB,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAC5E,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAmB;IAC5C,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS;QACxC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;KACjF,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;IAChC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACpB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,UAAU,oBAAoB,CAAC,SAAwB;IAC3D,OAAO;QACL;YACE,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,WAAW;YAClB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amaster.ai/pi-task-scheduler",
|
|
3
|
-
"version": "0.1.2-beta.
|
|
3
|
+
"version": "0.1.2-beta.80",
|
|
4
4
|
"description": "Pi extension for cron-based scheduled task management with LLM-callable tools",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|
|
@@ -37,12 +37,14 @@
|
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
39
|
"pi": {
|
|
40
|
+
"image": "https://raw.githubusercontent.com/TGYD-helige/pi/master/packages/pi-task-scheduler/preview.png",
|
|
40
41
|
"extensions": [
|
|
41
42
|
"./dist/index.js"
|
|
42
43
|
]
|
|
43
44
|
},
|
|
44
45
|
"files": [
|
|
45
46
|
"dist",
|
|
47
|
+
"preview.png",
|
|
46
48
|
"README.md"
|
|
47
49
|
],
|
|
48
50
|
"publishConfig": {
|
|
@@ -55,10 +57,10 @@
|
|
|
55
57
|
},
|
|
56
58
|
"dependencies": {
|
|
57
59
|
"croner": "^10.0.1",
|
|
58
|
-
"@amaster.ai/pi-shared": "0.1.2-beta.
|
|
60
|
+
"@amaster.ai/pi-shared": "0.1.2-beta.80"
|
|
59
61
|
},
|
|
60
62
|
"peerDependencies": {
|
|
61
|
-
"@earendil-works/pi-coding-agent": ">=0.
|
|
63
|
+
"@earendil-works/pi-coding-agent": ">=0.79.1",
|
|
62
64
|
"typebox": "*"
|
|
63
65
|
},
|
|
64
66
|
"peerDependenciesMeta": {
|
|
@@ -70,8 +72,8 @@
|
|
|
70
72
|
}
|
|
71
73
|
},
|
|
72
74
|
"devDependencies": {
|
|
73
|
-
"@earendil-works/pi-coding-agent": "0.
|
|
74
|
-
"typebox": "
|
|
75
|
+
"@earendil-works/pi-coding-agent": "0.85.1",
|
|
76
|
+
"typebox": "1.3.7",
|
|
75
77
|
"vitest": "^4.0.0"
|
|
76
78
|
},
|
|
77
79
|
"scripts": {
|
package/preview.png
ADDED
|
Binary file
|