@openspoon/subtask2 0.2.6 → 0.2.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 +62 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +204 -10
- package/dist/index.js.map +1 -1
- package/dist/src/parser.d.ts +27 -0
- package/dist/src/parser.d.ts.map +1 -1
- package/dist/src/parser.js +53 -0
- package/dist/src/parser.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,20 +1,29 @@
|
|
|
1
|
-
|
|
1
|
+
## A stronger opencode /command handler
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Subtask2 extends opencode commands into a powerful orchestration system. Instead of giving you an opinionated monster like some plugins do, it lets you easily build your own (but simple is fine too).
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+

|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
### TL:DR - Less entropic agentic loop, more control
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
This plugin allows your `/commands` to:
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
- Queue-up `prompts` or other `/commands` and `subagents` with arguments
|
|
12
|
+
- Parallelize the parts you want
|
|
13
|
+
- Pass session context to subagents
|
|
14
|
+
- Steer the agentic flow from start to finish
|
|
15
|
+
|
|
16
|
+
If you already know opencode commands, you'll be right at home.
|
|
17
|
+
|
|
18
|
+

|
|
19
|
+
`@openspoon/subtask2@latest`
|
|
12
20
|
|
|
13
21
|
### Key features
|
|
14
22
|
|
|
15
23
|
- `return` instruct main session on **command/subtask(s)** result - _can be chained, supports /commands_
|
|
16
24
|
- `parallel` run subtasks concurrently - _pending PR merge ⚠️_
|
|
17
25
|
- `arguments` pass arguments with command frontmatter or `||` message pipe
|
|
26
|
+
- `$TURN[n]` pipe the last N conversation turns into your command
|
|
18
27
|
|
|
19
28
|
Requires [this PR](https://github.com/sst/opencode/pull/6478) for `parallel` features, as well as proper model inheritance (piping the right model and agent to the right subtask and back) to work.
|
|
20
29
|
|
|
@@ -152,6 +161,53 @@ Configure in `~/.config/opencode/subtask2.jsonc`:
|
|
|
152
161
|
|
|
153
162
|
#### Priority: `return` param > config `generic_return` > built-in default > opencode original
|
|
154
163
|
|
|
164
|
+
### 4. `$TURN[n]` - Reference previous conversation turns
|
|
165
|
+
|
|
166
|
+
Use `$TURN[n]` to inject the last N conversation turns (user + assistant messages) into your command. This is powerful for commands that need context from the ongoing conversation.
|
|
167
|
+
|
|
168
|
+
```yaml
|
|
169
|
+
---
|
|
170
|
+
description: summarize our conversation so far
|
|
171
|
+
subtask: true
|
|
172
|
+
---
|
|
173
|
+
Review the following conversation and provide a concise summary:
|
|
174
|
+
|
|
175
|
+
$TURN[10]
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**Usage in arguments:**
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
/my-command analyze this $TURN[5]
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
**Syntax:**
|
|
185
|
+
|
|
186
|
+
- `$TURN[12]` - last 12 messages (turns, not parts)
|
|
187
|
+
- `$TURN[:3]` - just the 3rd message from the end
|
|
188
|
+
- `$TURN[:2:5:8]` - specific messages at indices 2, 5, and 8 from the end
|
|
189
|
+
|
|
190
|
+
**Format output:**
|
|
191
|
+
|
|
192
|
+
```
|
|
193
|
+
--- USER ---
|
|
194
|
+
What's the best way to implement auth?
|
|
195
|
+
|
|
196
|
+
--- ASSISTANT ---
|
|
197
|
+
I'd recommend using JWT tokens with...
|
|
198
|
+
|
|
199
|
+
--- USER ---
|
|
200
|
+
Can you show me an example?
|
|
201
|
+
...
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Works in:
|
|
205
|
+
|
|
206
|
+
- Command body templates
|
|
207
|
+
- Command arguments
|
|
208
|
+
- Parallel command prompts
|
|
209
|
+
- Piped arguments (`||`)
|
|
210
|
+
|
|
155
211
|
</details>
|
|
156
212
|
|
|
157
213
|
<details>
|
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;AAiRhD,QAAA,MAAM,MAAM,EAAE,MAkSb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { loadConfig, DEFAULT_PROMPT } from "./src/config";
|
|
2
|
-
import { parseFrontmatter, getTemplateBody, parseParallelConfig, } from "./src/parser";
|
|
2
|
+
import { parseFrontmatter, getTemplateBody, parseParallelConfig, extractTurnReferences, hasTurnReferences, replaceTurnReferences, } from "./src/parser";
|
|
3
3
|
import { loadCommandFile, buildManifest, getConfig } from "./src/commands";
|
|
4
4
|
import { log, clearLog } from "./src/logger";
|
|
5
5
|
// Session state
|
|
@@ -14,8 +14,142 @@ const pipedArgsQueue = new Map();
|
|
|
14
14
|
const returnArgsState = pipedArgsQueue; // alias for backward compat
|
|
15
15
|
const sessionMainCommand = new Map();
|
|
16
16
|
const executedReturns = new Set();
|
|
17
|
+
// Track the first return prompt per session (replaces "Summarize..." in $SESSION)
|
|
18
|
+
const firstReturnPrompt = new Map();
|
|
19
|
+
// Track parent session for commands called via executeReturn
|
|
20
|
+
// Simple variable: set before command call, used by tool.execute.before
|
|
21
|
+
let pendingParentSession = null;
|
|
17
22
|
let hasActiveSubtask = false;
|
|
18
23
|
const OPENCODE_GENERIC = "Summarize the task tool output above and continue with your task.";
|
|
24
|
+
/**
|
|
25
|
+
* Fetch and format session messages
|
|
26
|
+
* @param sessionID - The session to fetch from
|
|
27
|
+
* @param lastN - Get the last N messages (optional)
|
|
28
|
+
* @param specificIndices - Get specific messages by index from end, 1-based (optional)
|
|
29
|
+
*/
|
|
30
|
+
async function fetchSessionMessages(sessionID, lastN, specificIndices) {
|
|
31
|
+
if (!client) {
|
|
32
|
+
log("fetchSessionMessages: no client available");
|
|
33
|
+
return "[TURN: client not available]";
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
const result = await client.session.messages({
|
|
37
|
+
path: { id: sessionID },
|
|
38
|
+
});
|
|
39
|
+
const messages = result.data;
|
|
40
|
+
log(`fetchSessionMessages: got ${messages?.length ?? 0} messages from ${sessionID}`);
|
|
41
|
+
if (!messages?.length) {
|
|
42
|
+
return "[TURN: no messages found]";
|
|
43
|
+
}
|
|
44
|
+
// Log all messages for debugging
|
|
45
|
+
log(`All messages:`, messages.map((m, i) => ({
|
|
46
|
+
idx: i,
|
|
47
|
+
role: m.info.role,
|
|
48
|
+
partsCount: m.parts?.length,
|
|
49
|
+
textParts: m.parts?.filter((p) => p.type === 'text').map((p) => p.text?.substring(0, 30))
|
|
50
|
+
})));
|
|
51
|
+
// Filter out trailing empty messages (from current command being initiated)
|
|
52
|
+
let effectiveMessages = messages;
|
|
53
|
+
while (effectiveMessages.length > 0) {
|
|
54
|
+
const last = effectiveMessages[effectiveMessages.length - 1];
|
|
55
|
+
const hasContent = last.parts?.some((p) => (p.type === "text" && p.text?.trim()) ||
|
|
56
|
+
(p.type === "tool" && p.state?.status === "completed" && p.state?.output));
|
|
57
|
+
if (!hasContent) {
|
|
58
|
+
effectiveMessages = effectiveMessages.slice(0, -1);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
log(`After filtering empty trailing messages: ${effectiveMessages.length} (was ${messages.length})`);
|
|
65
|
+
// Select messages based on mode
|
|
66
|
+
let selectedMessages;
|
|
67
|
+
if (specificIndices && specificIndices.length > 0) {
|
|
68
|
+
// Specific indices mode: $TURN[:2:5:8] - indices are 1-based from end
|
|
69
|
+
selectedMessages = specificIndices
|
|
70
|
+
.map(idx => effectiveMessages[effectiveMessages.length - idx])
|
|
71
|
+
.filter(Boolean);
|
|
72
|
+
log(`Using specific indices [${specificIndices.join(',')}] -> ${selectedMessages.length} messages`);
|
|
73
|
+
}
|
|
74
|
+
else if (lastN) {
|
|
75
|
+
// Last N mode: $TURN[5]
|
|
76
|
+
selectedMessages = effectiveMessages.slice(-lastN);
|
|
77
|
+
log(`Using last ${lastN} messages`);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
selectedMessages = effectiveMessages;
|
|
81
|
+
log(`Using all ${selectedMessages.length} messages`);
|
|
82
|
+
}
|
|
83
|
+
// Format each message with its parts
|
|
84
|
+
const formatted = selectedMessages.map((msg) => {
|
|
85
|
+
const role = msg.info.role.toUpperCase();
|
|
86
|
+
const parts = [];
|
|
87
|
+
for (const part of msg.parts) {
|
|
88
|
+
if (part.type === "text" && part.text) {
|
|
89
|
+
// Replace the generic opencode summarize prompt with our first return prompt
|
|
90
|
+
if (part.text.startsWith("Summarize the task tool output")) {
|
|
91
|
+
const replacement = firstReturnPrompt.get(sessionID);
|
|
92
|
+
if (replacement) {
|
|
93
|
+
parts.push(replacement);
|
|
94
|
+
}
|
|
95
|
+
// If no replacement, skip it entirely
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
parts.push(part.text);
|
|
99
|
+
}
|
|
100
|
+
else if (part.type === "tool" && part.state?.status === "completed") {
|
|
101
|
+
// Include completed tool results (especially task tool for subtask content)
|
|
102
|
+
const toolName = part.tool;
|
|
103
|
+
let output = part.state.output;
|
|
104
|
+
if (output && typeof output === "string") {
|
|
105
|
+
// Strip <task_metadata> tags from task tool output
|
|
106
|
+
output = output.replace(/<task_metadata>[\s\S]*?<\/task_metadata>/g, "").trim();
|
|
107
|
+
if (output && output.length < 2000) {
|
|
108
|
+
// For task tool, just include the content directly (it's the subtask's response)
|
|
109
|
+
if (toolName === "task") {
|
|
110
|
+
parts.push(output);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
parts.push(`[Tool: ${toolName}]\n${output}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return `--- ${role} ---\n${parts.join("\n")}`;
|
|
120
|
+
});
|
|
121
|
+
return formatted.join("\n\n");
|
|
122
|
+
}
|
|
123
|
+
catch (e) {
|
|
124
|
+
log("fetchSessionMessages error:", e);
|
|
125
|
+
return `[TURN: error fetching messages - ${e}]`;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Process a string and replace all $TURN references with actual session content
|
|
130
|
+
*/
|
|
131
|
+
async function resolveTurnReferences(text, sessionID) {
|
|
132
|
+
if (!hasTurnReferences(text)) {
|
|
133
|
+
return text;
|
|
134
|
+
}
|
|
135
|
+
const refs = extractTurnReferences(text);
|
|
136
|
+
if (!refs.length)
|
|
137
|
+
return text;
|
|
138
|
+
const replacements = new Map();
|
|
139
|
+
for (const ref of refs) {
|
|
140
|
+
if (ref.type === "lastN") {
|
|
141
|
+
const content = await fetchSessionMessages(sessionID, ref.count);
|
|
142
|
+
replacements.set(ref.match, content);
|
|
143
|
+
log(`Resolved ${ref.match}: ${content.length} chars`);
|
|
144
|
+
}
|
|
145
|
+
else if (ref.type === "specific") {
|
|
146
|
+
const content = await fetchSessionMessages(sessionID, undefined, ref.indices);
|
|
147
|
+
replacements.set(ref.match, content);
|
|
148
|
+
log(`Resolved ${ref.match}: ${content.length} chars`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return replaceTurnReferences(text, replacements);
|
|
152
|
+
}
|
|
19
153
|
async function flattenParallels(parallels, mainArgs, sessionID, visited = new Set(), depth = 0, maxDepth = 5) {
|
|
20
154
|
if (depth > maxDepth)
|
|
21
155
|
return [];
|
|
@@ -42,6 +176,11 @@ async function flattenParallels(parallels, mainArgs, sessionID, visited = new Se
|
|
|
42
176
|
const args = pipeArg ?? parallelCmd.arguments ?? mainArgs;
|
|
43
177
|
log(`Parallel ${parallelCmd.command}: using args="${args}" (pipeArg=${pipeArg}, fmArg=${parallelCmd.arguments}, mainArgs=${mainArgs})`);
|
|
44
178
|
template = template.replace(/\$ARGUMENTS/g, args);
|
|
179
|
+
// Resolve $SESSION[n] references in the template
|
|
180
|
+
if (hasTurnReferences(template)) {
|
|
181
|
+
template = await resolveTurnReferences(template, sessionID);
|
|
182
|
+
log(`Parallel ${parallelCmd.command}: resolved $SESSION refs`);
|
|
183
|
+
}
|
|
45
184
|
// Parse model string "provider/model" into {providerID, modelID}
|
|
46
185
|
let model;
|
|
47
186
|
if (typeof fm.model === "string" && fm.model.includes("/")) {
|
|
@@ -98,11 +237,10 @@ const plugin = async (ctx) => {
|
|
|
98
237
|
if (pipeArg)
|
|
99
238
|
args = pipeArg;
|
|
100
239
|
}
|
|
101
|
-
log(`executeReturn: /${cmdName} -> ${pathKey} args="${args}"
|
|
102
|
-
return: getConfig(configs, cmdName).return,
|
|
103
|
-
parallel: getConfig(configs, cmdName).parallel.map(p => p.command)
|
|
104
|
-
} : undefined);
|
|
240
|
+
log(`executeReturn: /${cmdName} -> ${pathKey} args="${args}" (parent=${sessionID})`);
|
|
105
241
|
sessionMainCommand.set(sessionID, pathKey);
|
|
242
|
+
// Set parent session for $SESSION resolution - will be consumed by tool.execute.before
|
|
243
|
+
pendingParentSession = sessionID;
|
|
106
244
|
try {
|
|
107
245
|
await client.session.command({
|
|
108
246
|
path: { id: sessionID },
|
|
@@ -133,12 +271,38 @@ const plugin = async (ctx) => {
|
|
|
133
271
|
} : "no config");
|
|
134
272
|
// Parse pipe-separated arguments: main || arg1 || arg2 || arg3 ...
|
|
135
273
|
const argSegments = input.arguments.split("||").map((s) => s.trim());
|
|
136
|
-
|
|
274
|
+
let mainArgs = argSegments[0] || "";
|
|
137
275
|
const allPipedArgs = argSegments.slice(1);
|
|
138
276
|
// Store piped args for consumption by parallels and return commands
|
|
139
277
|
if (allPipedArgs.length) {
|
|
140
278
|
pipedArgsQueue.set(input.sessionID, allPipedArgs);
|
|
141
279
|
}
|
|
280
|
+
// Resolve $SESSION[n] references in mainArgs
|
|
281
|
+
if (hasTurnReferences(mainArgs)) {
|
|
282
|
+
mainArgs = await resolveTurnReferences(mainArgs, input.sessionID);
|
|
283
|
+
log(`Resolved $SESSION in mainArgs: ${mainArgs.length} chars`);
|
|
284
|
+
}
|
|
285
|
+
// Resolve $SESSION[n] references in output parts
|
|
286
|
+
log(`Processing ${output.parts.length} parts for $SESSION refs`);
|
|
287
|
+
for (const part of output.parts) {
|
|
288
|
+
log(`Part type=${part.type}, hasPrompt=${!!part.prompt}, hasText=${!!part.text}`);
|
|
289
|
+
if (part.type === "subtask" && part.prompt) {
|
|
290
|
+
log(`Subtask prompt (first 200): ${part.prompt.substring(0, 200)}`);
|
|
291
|
+
if (hasTurnReferences(part.prompt)) {
|
|
292
|
+
log(`Found $SESSION in subtask prompt, resolving...`);
|
|
293
|
+
part.prompt = await resolveTurnReferences(part.prompt, input.sessionID);
|
|
294
|
+
log(`Resolved subtask prompt (first 200): ${part.prompt.substring(0, 200)}`);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
if (part.type === "text" && part.text) {
|
|
298
|
+
log(`Text part (first 200): ${part.text.substring(0, 200)}`);
|
|
299
|
+
if (hasTurnReferences(part.text)) {
|
|
300
|
+
log(`Found $SESSION in text part, resolving...`);
|
|
301
|
+
part.text = await resolveTurnReferences(part.text, input.sessionID);
|
|
302
|
+
log(`Resolved text part (first 200): ${part.text.substring(0, 200)}`);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
142
306
|
// Fix main command's parts to use only mainArgs (not the full pipe string)
|
|
143
307
|
if (argSegments.length > 1) {
|
|
144
308
|
for (const part of output.parts) {
|
|
@@ -167,7 +331,9 @@ const plugin = async (ctx) => {
|
|
|
167
331
|
hasActiveSubtask = true;
|
|
168
332
|
const cmd = output.args?.command;
|
|
169
333
|
const prompt = output.args?.prompt;
|
|
334
|
+
const description = output.args?.description;
|
|
170
335
|
let mainCmd = sessionMainCommand.get(input.sessionID);
|
|
336
|
+
log(`tool.before: callID=${input.callID}, cmd=${cmd}, desc="${description?.substring(0, 30)}", mainCmd=${mainCmd}`);
|
|
171
337
|
// If mainCmd is not set (command.execute.before didn't fire - no PR),
|
|
172
338
|
// set the first subtask command as the main command
|
|
173
339
|
if (!mainCmd && cmd && getConfig(configs, cmd)) {
|
|
@@ -187,10 +353,26 @@ const plugin = async (ctx) => {
|
|
|
187
353
|
}
|
|
188
354
|
}
|
|
189
355
|
// Also set up return state since command.execute.before didn't run
|
|
190
|
-
|
|
191
|
-
|
|
356
|
+
// Only do this once per session
|
|
357
|
+
if (cmdConfig.return.length > 0 && !returnState.has(input.sessionID)) {
|
|
358
|
+
// Store the first return prompt (replaces "Summarize..." in $SESSION)
|
|
359
|
+
firstReturnPrompt.set(input.sessionID, cmdConfig.return[0]);
|
|
360
|
+
if (cmdConfig.return.length > 1) {
|
|
361
|
+
returnState.set(input.sessionID, [...cmdConfig.return.slice(1)]);
|
|
362
|
+
log(`Set returnState: ${cmdConfig.return.slice(1).length} items`);
|
|
363
|
+
}
|
|
192
364
|
}
|
|
193
365
|
}
|
|
366
|
+
// Resolve $SESSION[n] in the prompt for ANY subtask
|
|
367
|
+
// Use parent session if this command was triggered via executeReturn
|
|
368
|
+
if (prompt && hasTurnReferences(prompt)) {
|
|
369
|
+
const resolveFromSession = pendingParentSession || input.sessionID;
|
|
370
|
+
log(`tool.execute.before: resolving $SESSION in prompt (from ${pendingParentSession ? 'parent' : 'current'} session ${resolveFromSession})`);
|
|
371
|
+
output.args.prompt = await resolveTurnReferences(prompt, resolveFromSession);
|
|
372
|
+
log(`tool.execute.before: resolved prompt (${output.args.prompt.length} chars)`);
|
|
373
|
+
// Clear after use
|
|
374
|
+
pendingParentSession = null;
|
|
375
|
+
}
|
|
194
376
|
if (cmd && getConfig(configs, cmd)) {
|
|
195
377
|
const cmdConfig = getConfig(configs, cmd);
|
|
196
378
|
if (cmd === mainCmd) {
|
|
@@ -206,12 +388,24 @@ const plugin = async (ctx) => {
|
|
|
206
388
|
if (input.tool !== "task")
|
|
207
389
|
return;
|
|
208
390
|
const cmd = callState.get(input.callID);
|
|
391
|
+
log(`tool.after: callID=${input.callID}, cmd=${cmd}, wasTracked=${!!cmd}`);
|
|
392
|
+
if (!cmd) {
|
|
393
|
+
// Already processed or not our command
|
|
394
|
+
return;
|
|
395
|
+
}
|
|
209
396
|
callState.delete(input.callID);
|
|
210
397
|
const mainCmd = sessionMainCommand.get(input.sessionID);
|
|
211
398
|
const cmdConfig = cmd ? getConfig(configs, cmd) : undefined;
|
|
399
|
+
log(`tool.after: cmd=${cmd}, mainCmd=${mainCmd}, isMain=${cmd === mainCmd}, hasReturn=${!!cmdConfig?.return?.length}`);
|
|
212
400
|
if (cmd && cmd === mainCmd && cmdConfig?.return?.length) {
|
|
213
|
-
|
|
214
|
-
pendingReturns.
|
|
401
|
+
// Only set pendingReturn if we haven't already
|
|
402
|
+
if (!pendingReturns.has(input.sessionID)) {
|
|
403
|
+
log(`Setting pendingReturn: ${cmdConfig.return[0].substring(0, 50)}...`);
|
|
404
|
+
pendingReturns.set(input.sessionID, cmdConfig.return[0]);
|
|
405
|
+
}
|
|
406
|
+
else {
|
|
407
|
+
log(`Skipping pendingReturn - already set`);
|
|
408
|
+
}
|
|
215
409
|
}
|
|
216
410
|
else if (cmd && cmd !== mainCmd) {
|
|
217
411
|
log(`task.after: ${cmd} (parallel of ${mainCmd})`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/parser.d.ts
CHANGED
|
@@ -3,4 +3,31 @@ export declare function parseFrontmatter(content: string): Record<string, unknow
|
|
|
3
3
|
export declare function getTemplateBody(content: string): string;
|
|
4
4
|
export declare function parseParallelItem(p: unknown): ParallelCommand | null;
|
|
5
5
|
export declare function parseParallelConfig(parallel: unknown): ParallelCommand[];
|
|
6
|
+
export type TurnReference = {
|
|
7
|
+
type: "lastN";
|
|
8
|
+
match: string;
|
|
9
|
+
count: number;
|
|
10
|
+
} | {
|
|
11
|
+
type: "specific";
|
|
12
|
+
match: string;
|
|
13
|
+
indices: number[];
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Extract all $TURN references from a string
|
|
17
|
+
* - $TURN[n] -> last n messages
|
|
18
|
+
* - $TURN[:n] or $TURN[:2:5:8] -> specific indices (1-based from end)
|
|
19
|
+
*/
|
|
20
|
+
export declare function extractTurnReferences(text: string): TurnReference[];
|
|
21
|
+
/**
|
|
22
|
+
* Check if text contains any $TURN references
|
|
23
|
+
*/
|
|
24
|
+
export declare function hasTurnReferences(text: string): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Replace all $TURN references in text with the provided content map
|
|
27
|
+
*/
|
|
28
|
+
export declare function replaceTurnReferences(text: string, replacements: Map<string, string>): string;
|
|
29
|
+
export declare const extractSessionReferences: typeof extractTurnReferences;
|
|
30
|
+
export declare const hasSessionReferences: typeof hasTurnReferences;
|
|
31
|
+
export declare const replaceSessionReferences: typeof replaceTurnReferences;
|
|
32
|
+
export type SessionReference = TurnReference;
|
|
6
33
|
//# sourceMappingURL=parser.d.ts.map
|
package/dist/src/parser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,SAAS,CAAC;AAE7C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGvD;AAGD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAcpE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,eAAe,EAAE,CAexE"}
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,SAAS,CAAC;AAE7C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGvD;AAGD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAcpE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,eAAe,EAAE,CAexE;AAOD,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE3D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CAyBnE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,MAAM,CAMR;AAGD,eAAO,MAAM,wBAAwB,8BAAwB,CAAC;AAC9D,eAAO,MAAM,oBAAoB,0BAAoB,CAAC;AACtD,eAAO,MAAM,wBAAwB,8BAAwB,CAAC;AAC9D,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC"}
|
package/dist/src/parser.js
CHANGED
|
@@ -47,4 +47,57 @@ export function parseParallelConfig(parallel) {
|
|
|
47
47
|
}
|
|
48
48
|
return [];
|
|
49
49
|
}
|
|
50
|
+
// $TURN[n] - last n messages
|
|
51
|
+
// $TURN[:n] or $TURN[:n:m:o] - specific messages at indices (1-based from end)
|
|
52
|
+
const TURN_LAST_N_PATTERN = "\\$TURN\\[(\\d+)\\]";
|
|
53
|
+
const TURN_SPECIFIC_PATTERN = "\\$TURN\\[([:\\d]+)\\]";
|
|
54
|
+
/**
|
|
55
|
+
* Extract all $TURN references from a string
|
|
56
|
+
* - $TURN[n] -> last n messages
|
|
57
|
+
* - $TURN[:n] or $TURN[:2:5:8] -> specific indices (1-based from end)
|
|
58
|
+
*/
|
|
59
|
+
export function extractTurnReferences(text) {
|
|
60
|
+
const refs = [];
|
|
61
|
+
// Match $TURN[...] patterns
|
|
62
|
+
const regex = /\$TURN\[([^\]]+)\]/g;
|
|
63
|
+
let match;
|
|
64
|
+
while ((match = regex.exec(text)) !== null) {
|
|
65
|
+
const inner = match[1];
|
|
66
|
+
if (inner.startsWith(":")) {
|
|
67
|
+
// Specific indices: $TURN[:2] or $TURN[:2:5:8]
|
|
68
|
+
const indices = inner.split(":").filter(Boolean).map(n => parseInt(n, 10));
|
|
69
|
+
if (indices.length > 0 && indices.every(n => !isNaN(n))) {
|
|
70
|
+
refs.push({ type: "specific", match: match[0], indices });
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
// Last N: $TURN[5]
|
|
75
|
+
const count = parseInt(inner, 10);
|
|
76
|
+
if (!isNaN(count)) {
|
|
77
|
+
refs.push({ type: "lastN", match: match[0], count });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return refs;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Check if text contains any $TURN references
|
|
85
|
+
*/
|
|
86
|
+
export function hasTurnReferences(text) {
|
|
87
|
+
return /\$TURN\[[^\]]+\]/.test(text);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Replace all $TURN references in text with the provided content map
|
|
91
|
+
*/
|
|
92
|
+
export function replaceTurnReferences(text, replacements) {
|
|
93
|
+
let result = text;
|
|
94
|
+
for (const [pattern, replacement] of replacements) {
|
|
95
|
+
result = result.replaceAll(pattern, replacement);
|
|
96
|
+
}
|
|
97
|
+
return result;
|
|
98
|
+
}
|
|
99
|
+
// Keep old names as aliases for backward compat during transition
|
|
100
|
+
export const extractSessionReferences = extractTurnReferences;
|
|
101
|
+
export const hasSessionReferences = hasTurnReferences;
|
|
102
|
+
export const replaceSessionReferences = replaceTurnReferences;
|
|
50
103
|
//# sourceMappingURL=parser.js.map
|
package/dist/src/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC/D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAClD,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,iBAAiB,CAAC,CAAU;IAC1C,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,6BAA6B;YAC7B,MAAM,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7D,OAAO,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,EAAC,CAAC;QACxE,CAAC;QACD,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAK,CAAS,CAAC,OAAO,EAAE,CAAC;QAC9D,OAAO,EAAC,OAAO,EAAG,CAAS,CAAC,OAAO,EAAE,SAAS,EAAG,CAAS,CAAC,SAAS,EAAC,CAAC;IACxE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAiB;IACnD,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,QAAQ;aACZ,GAAG,CAAC,iBAAiB,CAAC;aACtB,MAAM,CAAC,CAAC,CAAC,EAAwB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,6BAA6B;QAC7B,OAAO,QAAQ;aACZ,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,iBAAiB,CAAC;aACtB,MAAM,CAAC,CAAC,CAAC,EAAwB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC/D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAClD,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,iBAAiB,CAAC,CAAU;IAC1C,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,6BAA6B;YAC7B,MAAM,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7D,OAAO,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,EAAC,CAAC;QACxE,CAAC;QACD,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAK,CAAS,CAAC,OAAO,EAAE,CAAC;QAC9D,OAAO,EAAC,OAAO,EAAG,CAAS,CAAC,OAAO,EAAE,SAAS,EAAG,CAAS,CAAC,SAAS,EAAC,CAAC;IACxE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAiB;IACnD,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,QAAQ;aACZ,GAAG,CAAC,iBAAiB,CAAC;aACtB,MAAM,CAAC,CAAC,CAAC,EAAwB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,6BAA6B;QAC7B,OAAO,QAAQ;aACZ,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,iBAAiB,CAAC;aACtB,MAAM,CAAC,CAAC,CAAC,EAAwB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,6BAA6B;AAC7B,+EAA+E;AAC/E,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAClD,MAAM,qBAAqB,GAAG,wBAAwB,CAAC;AAMvD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,MAAM,IAAI,GAAoB,EAAE,CAAC;IAEjC,4BAA4B;IAC5B,MAAM,KAAK,GAAG,qBAAqB,CAAC;IACpC,IAAI,KAA6B,CAAC;IAElC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,+CAA+C;YAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC3E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,mBAAmB;YACnB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,YAAiC;IAEjC,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,YAAY,EAAE,CAAC;QAClD,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAC9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AACtD,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC"}
|
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.2.
|
|
4
|
+
"version": "0.2.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",
|