opencode-cron-job 0.1.7 → 0.1.9
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.js +28 -5
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { readFileSync, existsSync, appendFileSync, mkdirSync, writeFileSync } from "fs";
|
|
1
|
+
import { readFileSync, existsSync, appendFileSync, mkdirSync, writeFileSync, watchFile } from "fs";
|
|
2
2
|
import { join } from "path";
|
|
3
3
|
import cron from "node-cron";
|
|
4
4
|
import { tool } from "@opencode-ai/plugin";
|
|
@@ -42,7 +42,14 @@ function parseTasks(content) {
|
|
|
42
42
|
return result;
|
|
43
43
|
}
|
|
44
44
|
let jobs = [];
|
|
45
|
-
let
|
|
45
|
+
let lastWriteTime = 0;
|
|
46
|
+
function nextJobId() {
|
|
47
|
+
const used = new Set(jobs.map((j) => Number(j.id)));
|
|
48
|
+
for (let i = 1;; i++) {
|
|
49
|
+
if (!used.has(i))
|
|
50
|
+
return String(i);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
46
53
|
export const CronPlugin = async ({ client, directory }) => {
|
|
47
54
|
const tasksFile = join(directory, ".cron-job", "tasks.md");
|
|
48
55
|
async function fire(job) {
|
|
@@ -85,7 +92,7 @@ export const CronPlugin = async ({ client, directory }) => {
|
|
|
85
92
|
}, ms);
|
|
86
93
|
}
|
|
87
94
|
function startJob(item) {
|
|
88
|
-
const job = { ...item, id:
|
|
95
|
+
const job = { ...item, id: nextJobId(), task: null, timer: null, cancelled: false };
|
|
89
96
|
if (cron.validate(job.schedule)) {
|
|
90
97
|
scheduleCron(job);
|
|
91
98
|
}
|
|
@@ -131,6 +138,16 @@ export const CronPlugin = async ({ client, directory }) => {
|
|
|
131
138
|
}
|
|
132
139
|
// Load from file on startup
|
|
133
140
|
reloadJobs();
|
|
141
|
+
// Watch for external edits (AI modifying .cron-job/tasks.md directly)
|
|
142
|
+
if (existsSync(tasksFile)) {
|
|
143
|
+
watchFile(tasksFile, { interval: 5007 }, (curr, prev) => {
|
|
144
|
+
if (curr.mtimeMs === prev.mtimeMs)
|
|
145
|
+
return;
|
|
146
|
+
if (Date.now() - lastWriteTime < 200)
|
|
147
|
+
return;
|
|
148
|
+
reloadJobs();
|
|
149
|
+
});
|
|
150
|
+
}
|
|
134
151
|
return {
|
|
135
152
|
tool: {
|
|
136
153
|
cron_create: tool({
|
|
@@ -142,6 +159,7 @@ export const CronPlugin = async ({ client, directory }) => {
|
|
|
142
159
|
},
|
|
143
160
|
async execute(args) {
|
|
144
161
|
const entry = `\n## ${args.name}\n- cron: ${args.schedule}\n- prompt: ${args.prompt}\n\n`;
|
|
162
|
+
lastWriteTime = Date.now();
|
|
145
163
|
if (!existsSync(tasksFile)) {
|
|
146
164
|
mkdirSync(join(directory, ".cron-job"), { recursive: true });
|
|
147
165
|
appendFileSync(tasksFile, `# 周期任务\n${entry}`);
|
|
@@ -159,7 +177,10 @@ export const CronPlugin = async ({ client, directory }) => {
|
|
|
159
177
|
async execute() {
|
|
160
178
|
if (jobs.length === 0)
|
|
161
179
|
return "No jobs scheduled.";
|
|
162
|
-
return jobs.map((j) =>
|
|
180
|
+
return jobs.map((j) => {
|
|
181
|
+
const body = j.prompt.replace(/\n/g, "\n ");
|
|
182
|
+
return `${j.id} ${j.schedule} ${j.name}\n ${body}`;
|
|
183
|
+
}).join("\n\n");
|
|
163
184
|
},
|
|
164
185
|
}),
|
|
165
186
|
cron_run: tool({
|
|
@@ -187,6 +208,7 @@ export const CronPlugin = async ({ client, directory }) => {
|
|
|
187
208
|
const job = jobs[idx];
|
|
188
209
|
stopJob(job);
|
|
189
210
|
jobs.splice(idx, 1);
|
|
211
|
+
lastWriteTime = Date.now();
|
|
190
212
|
removeJobFromFile(job.name);
|
|
191
213
|
return `${job.name}: deleted`;
|
|
192
214
|
},
|
|
@@ -202,8 +224,9 @@ export const CronPlugin = async ({ client, directory }) => {
|
|
|
202
224
|
const ms = parseDelay(args.delay);
|
|
203
225
|
if (ms <= 0)
|
|
204
226
|
return `Invalid delay: ${args.delay}`;
|
|
205
|
-
const name = args.name || `reminder-${
|
|
227
|
+
const name = args.name || `reminder-${Date.now()}`;
|
|
206
228
|
const entry = `\n## ${name}\n- delay: ${args.delay}\n- prompt: ${args.prompt}\n\n`;
|
|
229
|
+
lastWriteTime = Date.now();
|
|
207
230
|
if (!existsSync(tasksFile)) {
|
|
208
231
|
mkdirSync(join(directory, ".cron-job"), { recursive: true });
|
|
209
232
|
appendFileSync(tasksFile, `# 周期任务\n${entry}`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|