@openspoon/subtask2 0.1.6 → 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 +47 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,18 +4,21 @@ OpenCode plugin that controls what happens **after** a subtask completes.
|
|
|
4
4
|
|
|
5
5
|
## The Problem
|
|
6
6
|
|
|
7
|
-
When a subtask (subagent) finishes
|
|
7
|
+
When a subtask (subagent) finishes, OpenCode injects a generic prompt: `"Summarize the task tool output above and continue with your task."`
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
This often leads to the main agent just relaying the response:
|
|
10
|
+
|
|
11
|
+
> "Here's what the subagent found: [result]" — *end of turn*
|
|
10
12
|
|
|
11
13
|
The main agent becomes a passive messenger rather than an active participant.
|
|
12
14
|
|
|
13
15
|
## The Solution
|
|
14
16
|
|
|
15
|
-
This plugin
|
|
17
|
+
This plugin intercepts OpenCode's synthetic message and replaces it with something better:
|
|
16
18
|
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
+
1. **Per-command `return` prompt** — Give specific instructions for what the main agent should do with the subtask result
|
|
20
|
+
2. **Global fallback** — Even without `return`, replace the generic prompt with one that encourages critical thinking
|
|
21
|
+
3. **`chain`** — Queue follow-up prompts that execute sequentially after the subtask completes
|
|
19
22
|
|
|
20
23
|
## Installation
|
|
21
24
|
|
|
@@ -27,6 +30,34 @@ Add to your `opencode.json`:
|
|
|
27
30
|
}
|
|
28
31
|
```
|
|
29
32
|
|
|
33
|
+
## Configuration
|
|
34
|
+
|
|
35
|
+
On first run, the plugin creates `~/.config/opencode/subtask2.jsonc`:
|
|
36
|
+
|
|
37
|
+
```jsonc
|
|
38
|
+
{
|
|
39
|
+
// Replace OpenCode's generic "Summarize..." prompt when no return is specified
|
|
40
|
+
"replace_generic": true
|
|
41
|
+
|
|
42
|
+
// Custom prompt to use (uses built-in default if not set)
|
|
43
|
+
// "prompt": "Your custom prompt here"
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Options:**
|
|
48
|
+
|
|
49
|
+
| Option | Type | Default | Description |
|
|
50
|
+
|--------|------|---------|-------------|
|
|
51
|
+
| `replace_generic` | boolean | `true` | Replace the generic prompt for subtasks without a `return` param |
|
|
52
|
+
| `prompt` | string | (built-in) | Custom replacement prompt. Default: "Challenge and validate the task output above. Verify assumptions, identify gaps or errors, then continue with the next logical step." |
|
|
53
|
+
|
|
54
|
+
**Priority:**
|
|
55
|
+
|
|
56
|
+
1. Command `return` param → always wins
|
|
57
|
+
2. Config `prompt` → used when no `return` and `replace_generic: true`
|
|
58
|
+
3. Built-in default → used when no `return`, `replace_generic: true`, and no custom `prompt`
|
|
59
|
+
4. OpenCode's original → only if `replace_generic: false`
|
|
60
|
+
|
|
30
61
|
## Usage
|
|
31
62
|
|
|
32
63
|
Add `return` and/or `chain` to your command frontmatter:
|
|
@@ -51,21 +82,27 @@ Review PR#355 for bugs, security issues, and code style problems.
|
|
|
51
82
|
|
|
52
83
|
## How It Works
|
|
53
84
|
|
|
54
|
-
**Without
|
|
85
|
+
**Without this plugin:**
|
|
55
86
|
|
|
56
87
|
```
|
|
57
|
-
Subagent → "Found 3 bugs
|
|
88
|
+
Subagent → "Found 3 bugs" → OpenCode adds "Summarize..." → Main agent → "The subagent found 3 bugs" → END
|
|
58
89
|
```
|
|
59
90
|
|
|
60
91
|
**With `return`:**
|
|
61
92
|
|
|
62
93
|
```
|
|
63
|
-
Subagent → "Found 3 bugs"
|
|
94
|
+
Subagent → "Found 3 bugs" → Plugin replaces with "Assess and implement fixes" → Main agent → *starts working on fixes*
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Without `return` but `replace_generic: true`:**
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
Subagent → "Found 3 bugs" → Plugin replaces with "Challenge and validate..." → Main agent → *critically evaluates and acts*
|
|
64
101
|
```
|
|
65
102
|
|
|
66
|
-
The
|
|
103
|
+
The plugin intercepts OpenCode's synthetic user message and replaces it, so the main agent receives instructions from the "user" rather than just being told to summarize.
|
|
67
104
|
|
|
68
|
-
`chain`
|
|
105
|
+
`chain` allows you to queue additional prompts that fire sequentially after each completion, enabling multi-step automated workflows.
|
|
69
106
|
|
|
70
107
|
## License
|
|
71
108
|
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AA6HhD,QAAA,MAAM,MAAM,EAAE,MA2Db,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,43 @@
|
|
|
1
|
+
const DEFAULT_PROMPT = "Challenge and validate the task tool output above. Verify assumptions, identify gaps or errors, then continue with the next logical step.";
|
|
2
|
+
const CONFIG_PATH = `${Bun.env.HOME ?? ""}/.config/opencode/subtask2.jsonc`;
|
|
3
|
+
function isValidConfig(obj) {
|
|
4
|
+
if (typeof obj !== "object" || obj === null)
|
|
5
|
+
return false;
|
|
6
|
+
const cfg = obj;
|
|
7
|
+
if (typeof cfg.replace_generic !== "boolean")
|
|
8
|
+
return false;
|
|
9
|
+
if (cfg.prompt !== undefined && typeof cfg.prompt !== "string")
|
|
10
|
+
return false;
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
async function loadConfig() {
|
|
14
|
+
const defaultConfig = {
|
|
15
|
+
replace_generic: true,
|
|
16
|
+
};
|
|
17
|
+
try {
|
|
18
|
+
const file = Bun.file(CONFIG_PATH);
|
|
19
|
+
if (await file.exists()) {
|
|
20
|
+
const text = await file.text();
|
|
21
|
+
const stripped = text
|
|
22
|
+
.replace(/\/\/.*$/gm, "")
|
|
23
|
+
.replace(/\/\*[\s\S]*?\*\//g, "");
|
|
24
|
+
const parsed = JSON.parse(stripped);
|
|
25
|
+
if (isValidConfig(parsed)) {
|
|
26
|
+
return parsed;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
catch { }
|
|
31
|
+
await Bun.write(CONFIG_PATH, `{
|
|
32
|
+
// Replace OpenCode's generic "Summarize..." prompt when no return is specified
|
|
33
|
+
"replace_generic": true
|
|
34
|
+
|
|
35
|
+
// Custom prompt to use (uses subtask2 substitution prompt by default)
|
|
36
|
+
// "prompt": "Challenge and validate the task tool output above. Verify assumptions, identify gaps or errors, then continue with the next logical step."
|
|
37
|
+
}
|
|
38
|
+
`);
|
|
39
|
+
return defaultConfig;
|
|
40
|
+
}
|
|
1
41
|
function parseFrontmatter(content) {
|
|
2
42
|
const match = content.match(/^---\n([\s\S]*?)\n---/);
|
|
3
43
|
if (!match)
|
|
@@ -54,18 +94,22 @@ async function buildManifest() {
|
|
|
54
94
|
return manifest;
|
|
55
95
|
}
|
|
56
96
|
let configs = {};
|
|
97
|
+
let pluginConfig = { replace_generic: true };
|
|
57
98
|
let client = null;
|
|
58
99
|
const callState = new Map();
|
|
59
100
|
const chainState = new Map();
|
|
60
101
|
const pendingReturns = new Map();
|
|
102
|
+
let hasActiveSubtask = false;
|
|
61
103
|
const OPENCODE_GENERIC = "Summarize the task tool output above and continue with your task.";
|
|
62
104
|
const plugin = async (ctx) => {
|
|
63
105
|
configs = await buildManifest();
|
|
106
|
+
pluginConfig = await loadConfig();
|
|
64
107
|
client = ctx.client;
|
|
65
108
|
return {
|
|
66
109
|
"tool.execute.before": async (input, output) => {
|
|
67
110
|
if (input.tool !== "task")
|
|
68
111
|
return;
|
|
112
|
+
hasActiveSubtask = true;
|
|
69
113
|
const cmd = output.args?.command;
|
|
70
114
|
if (cmd && configs[cmd]) {
|
|
71
115
|
callState.set(input.callID, cmd);
|
|
@@ -90,6 +134,12 @@ const plugin = async (ctx) => {
|
|
|
90
134
|
for (const [sessionID, returnPrompt] of pendingReturns) {
|
|
91
135
|
part.text = returnPrompt;
|
|
92
136
|
pendingReturns.delete(sessionID);
|
|
137
|
+
hasActiveSubtask = false;
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
if (hasActiveSubtask && pluginConfig.replace_generic) {
|
|
141
|
+
part.text = pluginConfig.prompt ?? DEFAULT_PROMPT;
|
|
142
|
+
hasActiveSubtask = false;
|
|
93
143
|
return;
|
|
94
144
|
}
|
|
95
145
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@openspoon/subtask2",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.7",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Opencode plugin for enhanced subtask control with return context and prompt chaining",
|
|
7
7
|
"main": "./dist/index.js",
|