opencode-cron-job 0.1.5 → 0.1.7
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 +24 -105
- package/README.zh-CN.md +81 -0
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,28 +3,17 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/opencode-cron-job)
|
|
4
4
|
[](LICENSE)
|
|
5
5
|
|
|
6
|
-
**OpenCode plugin** — schedule recurring prompts via a simple markdown file.
|
|
7
|
-
**OpenCode 插件** — 通过简单的 markdown 文件定时执行 prompt。
|
|
6
|
+
**OpenCode plugin** — schedule recurring prompts via a simple markdown file.
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
> ⚠️ **Alpha** — 此为初版,未经充分测试,请谨慎使用。
|
|
8
|
+
[中文文档](./README.zh-CN.md)
|
|
11
9
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
## English
|
|
15
|
-
|
|
16
|
-
### Overview
|
|
10
|
+
> ⚠️ **Alpha** — Tested on Windows with terminal, desktop, and ACP server. Use at your own risk.
|
|
17
11
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
### How it works
|
|
12
|
+
---
|
|
21
13
|
|
|
22
|
-
|
|
23
|
-
2. Write tasks using simple markdown format
|
|
24
|
-
3. OpenCode loads the plugin automatically → reads the file → starts timers
|
|
25
|
-
4. When a timer fires, the prompt is injected into your session
|
|
14
|
+
## Install
|
|
26
15
|
|
|
27
|
-
|
|
16
|
+
Add to your OpenCode config:
|
|
28
17
|
|
|
29
18
|
```json
|
|
30
19
|
{
|
|
@@ -32,18 +21,16 @@
|
|
|
32
21
|
}
|
|
33
22
|
```
|
|
34
23
|
|
|
35
|
-
OpenCode auto-installs npm plugins on startup.
|
|
36
|
-
|
|
37
|
-
### Usage
|
|
24
|
+
OpenCode auto-installs npm plugins on startup — no manual download needed.
|
|
38
25
|
|
|
39
|
-
|
|
26
|
+
## Usage
|
|
40
27
|
|
|
41
|
-
|
|
28
|
+
Just tell the AI agent what you need in natural language. The agent manages `.cron-job/tasks.md` for you through built-in tools:
|
|
42
29
|
|
|
30
|
+
- "Remind me to write a daily report at 9am"
|
|
31
|
+
- "Run a code review every Friday at 3pm"
|
|
32
|
+
- "Check server health every 30 minutes"
|
|
43
33
|
- "List all my cron jobs"
|
|
44
|
-
- "Run the code review task now"
|
|
45
|
-
- "Delete the backup task"
|
|
46
|
-
- "Reload the cron tasks from the file"
|
|
47
34
|
|
|
48
35
|
The agent calls the following tools internally — you don't need to use them directly:
|
|
49
36
|
|
|
@@ -55,9 +42,16 @@ The agent calls the following tools internally — you don't need to use them di
|
|
|
55
42
|
| `cron_delete` | Delete a task |
|
|
56
43
|
| `cron_once` | Schedule a one-shot delay task |
|
|
57
44
|
|
|
58
|
-
|
|
45
|
+
## How it works
|
|
59
46
|
|
|
60
|
-
|
|
47
|
+
1. **Plugin starts** → reads `.cron-job/tasks.md`, parses each `##` task block
|
|
48
|
+
2. **Schedules** → registers a `node-cron` timer for each valid cron expression
|
|
49
|
+
3. **Timer fires** → plugin finds the most recent session in the current workspace via API
|
|
50
|
+
4. **Injects prompt** → sends the prompt directly into the session — no TUI input, no interruption
|
|
51
|
+
|
|
52
|
+
## Task file format
|
|
53
|
+
|
|
54
|
+
`.cron-job/tasks.md` is auto-managed by the agent, but here's the format for reference:
|
|
61
55
|
|
|
62
56
|
```markdown
|
|
63
57
|
# Cron Tasks
|
|
@@ -75,88 +69,13 @@ Each section starting with `##` is a task. Supported fields:
|
|
|
75
69
|
- `cron` — standard 5-field cron expression (supports 6-field with seconds)
|
|
76
70
|
- `prompt` — the prompt text to inject when the timer fires
|
|
77
71
|
|
|
78
|
-
|
|
72
|
+
## Update
|
|
79
73
|
|
|
80
74
|
```bash
|
|
81
75
|
# Clear plugin cache and restart OpenCode
|
|
82
|
-
rm -rf ~/.cache/opencode/
|
|
76
|
+
rm -rf ~/.cache/opencode/packages/opencode-cron-job
|
|
83
77
|
```
|
|
84
78
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
## 中文
|
|
88
|
-
|
|
89
|
-
### 概述
|
|
90
|
-
|
|
91
|
-
`opencode-cron-job` 是一个 OpenCode 插件,自动读取项目根目录下的 `.cron-job/tasks.md` 文件,按 cron 表达式定时向当前会话注入 prompt。无需 MCP 服务、无需 HTTP API、无需 sidecar 进程,完全在 OpenCode 内部运行。
|
|
92
|
-
|
|
93
|
-
### 工作方式
|
|
94
|
-
|
|
95
|
-
1. 在项目根目录创建 `.cron-job/tasks.md`
|
|
96
|
-
2. 用简单的 markdown 格式编写任务
|
|
97
|
-
3. OpenCode 启动时自动加载插件 → 读取文件 → 启动定时器
|
|
98
|
-
4. 到时间自动向会话注入 prompt
|
|
99
|
-
|
|
100
|
-
### 安装
|
|
101
|
-
|
|
102
|
-
```json
|
|
103
|
-
{
|
|
104
|
-
"plugin": ["opencode-cron-job@latest"]
|
|
105
|
-
}
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
OpenCode 启动时自动安装 npm 插件。
|
|
109
|
-
|
|
110
|
-
### 使用方式
|
|
111
|
-
|
|
112
|
-
编辑 `.cron-job/tasks.md` 定义定时任务,插件启动时自动加载。
|
|
113
|
-
|
|
114
|
-
要管理任务,直接对 AI 说自然语言即可,例如:
|
|
115
|
-
|
|
116
|
-
- "列出所有周期任务"
|
|
117
|
-
- "立即执行一下代码检查"
|
|
118
|
-
- "把备份任务删掉"
|
|
119
|
-
- "重新加载任务文件"
|
|
120
|
-
|
|
121
|
-
Agent 内部会调用以下工具来完成,你不需要直接使用:
|
|
122
|
-
|
|
123
|
-
| 工具 | 说明 |
|
|
124
|
-
|------|------|
|
|
125
|
-
| `cron_create` | 创建周期任务(名称、cron 表达式、prompt) |
|
|
126
|
-
| `cron_list` | 列出所有任务 |
|
|
127
|
-
| `cron_run` | 立即执行一个任务 |
|
|
128
|
-
| `cron_delete` | 删除任务 |
|
|
129
|
-
| `cron_once` | 定时一次性延迟任务 |
|
|
130
|
-
|
|
131
|
-
### 任务文件格式
|
|
132
|
-
|
|
133
|
-
创建 `.cron-job/tasks.md`:
|
|
134
|
-
|
|
135
|
-
```markdown
|
|
136
|
-
# 周期任务
|
|
137
|
-
|
|
138
|
-
## 每日代码检查
|
|
139
|
-
- cron: 0 9 * * *
|
|
140
|
-
- prompt: 检查所有变更文件并生成报告
|
|
141
|
-
|
|
142
|
-
## 每小时备份
|
|
143
|
-
- cron: 0 */1 * * *
|
|
144
|
-
- prompt: 备份数据库
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
每个以 `##` 开头的区块为一个任务。支持字段:
|
|
148
|
-
- `cron` — 标准 5 段 cron 表达式(也支持含秒的 6 段格式)
|
|
149
|
-
- `prompt` — 定时触发时注入的 prompt 内容
|
|
150
|
-
|
|
151
|
-
### 更新
|
|
152
|
-
|
|
153
|
-
```bash
|
|
154
|
-
# 清除插件缓存后重启 OpenCode
|
|
155
|
-
rm -rf ~/.cache/opencode/node_modules/opencode-cron-job
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
---
|
|
159
|
-
|
|
160
|
-
## License / 许可证
|
|
79
|
+
## License
|
|
161
80
|
|
|
162
81
|
MIT
|
package/README.zh-CN.md
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# opencode-cron-job
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/opencode-cron-job)
|
|
4
|
+
[](LICENSE)
|
|
5
|
+
|
|
6
|
+
**OpenCode 插件** — 通过简单的 markdown 文件定时执行 prompt。
|
|
7
|
+
|
|
8
|
+
[English](./README.md)
|
|
9
|
+
|
|
10
|
+
> ⚠️ **Alpha** — 已在 Windows 上经过简单测试,支持终端版、桌面版和 ACP 服务器。
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 安装
|
|
15
|
+
|
|
16
|
+
在 OpenCode 配置中添加:
|
|
17
|
+
|
|
18
|
+
```json
|
|
19
|
+
{
|
|
20
|
+
"plugin": ["opencode-cron-job@latest"]
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
OpenCode 启动时自动安装 npm 插件,无需手动下载。
|
|
25
|
+
|
|
26
|
+
## 使用方式
|
|
27
|
+
|
|
28
|
+
直接对 AI 说自然语言即可,Agent 会自动维护 `.cron-job/tasks.md`:
|
|
29
|
+
|
|
30
|
+
- "每天早上9点提醒我写日报"
|
|
31
|
+
- "每周五下午3点执行代码审查"
|
|
32
|
+
- "每30分钟检查一次服务器状态"
|
|
33
|
+
- "列出所有周期任务"
|
|
34
|
+
|
|
35
|
+
Agent 内部会调用以下工具来完成,你不需要直接使用:
|
|
36
|
+
|
|
37
|
+
| 工具 | 说明 |
|
|
38
|
+
|------|------|
|
|
39
|
+
| `cron_create` | 创建周期任务(名称、cron 表达式、prompt) |
|
|
40
|
+
| `cron_list` | 列出所有任务 |
|
|
41
|
+
| `cron_run` | 立即执行一个任务 |
|
|
42
|
+
| `cron_delete` | 删除任务 |
|
|
43
|
+
| `cron_once` | 定时一次性延迟任务 |
|
|
44
|
+
|
|
45
|
+
## 工作原理
|
|
46
|
+
|
|
47
|
+
1. **插件启动** → 读取 `.cron-job/tasks.md`,解析每个 `##` 任务区块
|
|
48
|
+
2. **注册定时器** → 对每个有效的 cron 表达式调用 `node-cron` 注册定时任务
|
|
49
|
+
3. **定时触发** → 到时间后插件通过 API 找到当前工作区最近的会话
|
|
50
|
+
4. **注入 prompt** → 直接把 prompt 发送到会话中,不经过 TUI 输入,不中断用户操作
|
|
51
|
+
|
|
52
|
+
## 任务文件格式
|
|
53
|
+
|
|
54
|
+
`.cron-job/tasks.md` 由 Agent 自动维护,参考格式如下:
|
|
55
|
+
|
|
56
|
+
```markdown
|
|
57
|
+
# 周期任务
|
|
58
|
+
|
|
59
|
+
## 每日代码检查
|
|
60
|
+
- cron: 0 9 * * *
|
|
61
|
+
- prompt: 检查所有变更文件并生成报告
|
|
62
|
+
|
|
63
|
+
## 每小时备份
|
|
64
|
+
- cron: 0 */1 * * *
|
|
65
|
+
- prompt: 备份数据库
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
每个以 `##` 开头的区块为一个任务。支持字段:
|
|
69
|
+
- `cron` — 标准 5 段 cron 表达式(也支持含秒的 6 段格式)
|
|
70
|
+
- `prompt` — 定时触发时注入的 prompt 内容
|
|
71
|
+
|
|
72
|
+
## 更新
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# 清除插件缓存后重启 OpenCode
|
|
76
|
+
rm -rf ~/.cache/opencode/packages/opencode-cron-job
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## 许可证
|
|
80
|
+
|
|
81
|
+
MIT
|
package/dist/index.js
CHANGED
|
@@ -55,7 +55,7 @@ export const CronPlugin = async ({ client, directory }) => {
|
|
|
55
55
|
await client.session.promptAsync({
|
|
56
56
|
path: { id: sessions[0].id },
|
|
57
57
|
body: {
|
|
58
|
-
parts: [{ type: "text", text: job.prompt }],
|
|
58
|
+
parts: [{ type: "text", text: `<cron-reminder>${job.prompt}</cron-reminder>` }],
|
|
59
59
|
},
|
|
60
60
|
});
|
|
61
61
|
}
|
|
@@ -159,7 +159,7 @@ export const CronPlugin = async ({ client, directory }) => {
|
|
|
159
159
|
async execute() {
|
|
160
160
|
if (jobs.length === 0)
|
|
161
161
|
return "No jobs scheduled.";
|
|
162
|
-
return jobs.map((j) => `${j.id} ${j.schedule} ${j.name}`).join("\n");
|
|
162
|
+
return jobs.map((j) => `${j.id} ${j.schedule} ${j.name} ${j.prompt}`).join("\n");
|
|
163
163
|
},
|
|
164
164
|
}),
|
|
165
165
|
cron_run: tool({
|
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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"}
|