@openspoon/subtask2 0.2.6 → 0.2.8
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 +207 -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 - A less entropic agentic loop with more user flow 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]` (or `[:n]`) pipe the last (or specific) 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;AAoRhD,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,145 @@ 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
|
+
// Skip ignored parts
|
|
89
|
+
if (part.ignored)
|
|
90
|
+
continue;
|
|
91
|
+
if (part.type === "text" && part.text) {
|
|
92
|
+
// Replace the generic opencode summarize prompt with our first return prompt
|
|
93
|
+
if (part.text.startsWith("Summarize the task tool output")) {
|
|
94
|
+
const replacement = firstReturnPrompt.get(sessionID);
|
|
95
|
+
if (replacement) {
|
|
96
|
+
parts.push(replacement);
|
|
97
|
+
}
|
|
98
|
+
// If no replacement, skip it entirely
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
parts.push(part.text);
|
|
102
|
+
}
|
|
103
|
+
else if (part.type === "tool" && part.state?.status === "completed") {
|
|
104
|
+
// Include completed tool results (especially task tool for subtask content)
|
|
105
|
+
const toolName = part.tool;
|
|
106
|
+
let output = part.state.output;
|
|
107
|
+
if (output && typeof output === "string") {
|
|
108
|
+
// Strip <task_metadata> tags from task tool output
|
|
109
|
+
output = output.replace(/<task_metadata>[\s\S]*?<\/task_metadata>/g, "").trim();
|
|
110
|
+
if (output && output.length < 2000) {
|
|
111
|
+
// For task tool, just include the content directly (it's the subtask's response)
|
|
112
|
+
if (toolName === "task") {
|
|
113
|
+
parts.push(output);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
parts.push(`[Tool: ${toolName}]\n${output}`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return `--- ${role} ---\n${parts.join("\n")}`;
|
|
123
|
+
});
|
|
124
|
+
return formatted.join("\n\n");
|
|
125
|
+
}
|
|
126
|
+
catch (e) {
|
|
127
|
+
log("fetchSessionMessages error:", e);
|
|
128
|
+
return `[TURN: error fetching messages - ${e}]`;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Process a string and replace all $TURN references with actual session content
|
|
133
|
+
*/
|
|
134
|
+
async function resolveTurnReferences(text, sessionID) {
|
|
135
|
+
if (!hasTurnReferences(text)) {
|
|
136
|
+
return text;
|
|
137
|
+
}
|
|
138
|
+
const refs = extractTurnReferences(text);
|
|
139
|
+
if (!refs.length)
|
|
140
|
+
return text;
|
|
141
|
+
const replacements = new Map();
|
|
142
|
+
for (const ref of refs) {
|
|
143
|
+
if (ref.type === "lastN") {
|
|
144
|
+
const content = await fetchSessionMessages(sessionID, ref.count);
|
|
145
|
+
replacements.set(ref.match, content);
|
|
146
|
+
log(`Resolved ${ref.match}: ${content.length} chars`);
|
|
147
|
+
}
|
|
148
|
+
else if (ref.type === "specific") {
|
|
149
|
+
const content = await fetchSessionMessages(sessionID, undefined, ref.indices);
|
|
150
|
+
replacements.set(ref.match, content);
|
|
151
|
+
log(`Resolved ${ref.match}: ${content.length} chars`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return replaceTurnReferences(text, replacements);
|
|
155
|
+
}
|
|
19
156
|
async function flattenParallels(parallels, mainArgs, sessionID, visited = new Set(), depth = 0, maxDepth = 5) {
|
|
20
157
|
if (depth > maxDepth)
|
|
21
158
|
return [];
|
|
@@ -42,6 +179,11 @@ async function flattenParallels(parallels, mainArgs, sessionID, visited = new Se
|
|
|
42
179
|
const args = pipeArg ?? parallelCmd.arguments ?? mainArgs;
|
|
43
180
|
log(`Parallel ${parallelCmd.command}: using args="${args}" (pipeArg=${pipeArg}, fmArg=${parallelCmd.arguments}, mainArgs=${mainArgs})`);
|
|
44
181
|
template = template.replace(/\$ARGUMENTS/g, args);
|
|
182
|
+
// Resolve $SESSION[n] references in the template
|
|
183
|
+
if (hasTurnReferences(template)) {
|
|
184
|
+
template = await resolveTurnReferences(template, sessionID);
|
|
185
|
+
log(`Parallel ${parallelCmd.command}: resolved $SESSION refs`);
|
|
186
|
+
}
|
|
45
187
|
// Parse model string "provider/model" into {providerID, modelID}
|
|
46
188
|
let model;
|
|
47
189
|
if (typeof fm.model === "string" && fm.model.includes("/")) {
|
|
@@ -98,11 +240,10 @@ const plugin = async (ctx) => {
|
|
|
98
240
|
if (pipeArg)
|
|
99
241
|
args = pipeArg;
|
|
100
242
|
}
|
|
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);
|
|
243
|
+
log(`executeReturn: /${cmdName} -> ${pathKey} args="${args}" (parent=${sessionID})`);
|
|
105
244
|
sessionMainCommand.set(sessionID, pathKey);
|
|
245
|
+
// Set parent session for $SESSION resolution - will be consumed by tool.execute.before
|
|
246
|
+
pendingParentSession = sessionID;
|
|
106
247
|
try {
|
|
107
248
|
await client.session.command({
|
|
108
249
|
path: { id: sessionID },
|
|
@@ -133,12 +274,38 @@ const plugin = async (ctx) => {
|
|
|
133
274
|
} : "no config");
|
|
134
275
|
// Parse pipe-separated arguments: main || arg1 || arg2 || arg3 ...
|
|
135
276
|
const argSegments = input.arguments.split("||").map((s) => s.trim());
|
|
136
|
-
|
|
277
|
+
let mainArgs = argSegments[0] || "";
|
|
137
278
|
const allPipedArgs = argSegments.slice(1);
|
|
138
279
|
// Store piped args for consumption by parallels and return commands
|
|
139
280
|
if (allPipedArgs.length) {
|
|
140
281
|
pipedArgsQueue.set(input.sessionID, allPipedArgs);
|
|
141
282
|
}
|
|
283
|
+
// Resolve $SESSION[n] references in mainArgs
|
|
284
|
+
if (hasTurnReferences(mainArgs)) {
|
|
285
|
+
mainArgs = await resolveTurnReferences(mainArgs, input.sessionID);
|
|
286
|
+
log(`Resolved $SESSION in mainArgs: ${mainArgs.length} chars`);
|
|
287
|
+
}
|
|
288
|
+
// Resolve $SESSION[n] references in output parts
|
|
289
|
+
log(`Processing ${output.parts.length} parts for $SESSION refs`);
|
|
290
|
+
for (const part of output.parts) {
|
|
291
|
+
log(`Part type=${part.type}, hasPrompt=${!!part.prompt}, hasText=${!!part.text}`);
|
|
292
|
+
if (part.type === "subtask" && part.prompt) {
|
|
293
|
+
log(`Subtask prompt (first 200): ${part.prompt.substring(0, 200)}`);
|
|
294
|
+
if (hasTurnReferences(part.prompt)) {
|
|
295
|
+
log(`Found $SESSION in subtask prompt, resolving...`);
|
|
296
|
+
part.prompt = await resolveTurnReferences(part.prompt, input.sessionID);
|
|
297
|
+
log(`Resolved subtask prompt (first 200): ${part.prompt.substring(0, 200)}`);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
if (part.type === "text" && part.text) {
|
|
301
|
+
log(`Text part (first 200): ${part.text.substring(0, 200)}`);
|
|
302
|
+
if (hasTurnReferences(part.text)) {
|
|
303
|
+
log(`Found $SESSION in text part, resolving...`);
|
|
304
|
+
part.text = await resolveTurnReferences(part.text, input.sessionID);
|
|
305
|
+
log(`Resolved text part (first 200): ${part.text.substring(0, 200)}`);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
142
309
|
// Fix main command's parts to use only mainArgs (not the full pipe string)
|
|
143
310
|
if (argSegments.length > 1) {
|
|
144
311
|
for (const part of output.parts) {
|
|
@@ -167,7 +334,9 @@ const plugin = async (ctx) => {
|
|
|
167
334
|
hasActiveSubtask = true;
|
|
168
335
|
const cmd = output.args?.command;
|
|
169
336
|
const prompt = output.args?.prompt;
|
|
337
|
+
const description = output.args?.description;
|
|
170
338
|
let mainCmd = sessionMainCommand.get(input.sessionID);
|
|
339
|
+
log(`tool.before: callID=${input.callID}, cmd=${cmd}, desc="${description?.substring(0, 30)}", mainCmd=${mainCmd}`);
|
|
171
340
|
// If mainCmd is not set (command.execute.before didn't fire - no PR),
|
|
172
341
|
// set the first subtask command as the main command
|
|
173
342
|
if (!mainCmd && cmd && getConfig(configs, cmd)) {
|
|
@@ -187,10 +356,26 @@ const plugin = async (ctx) => {
|
|
|
187
356
|
}
|
|
188
357
|
}
|
|
189
358
|
// Also set up return state since command.execute.before didn't run
|
|
190
|
-
|
|
191
|
-
|
|
359
|
+
// Only do this once per session
|
|
360
|
+
if (cmdConfig.return.length > 0 && !returnState.has(input.sessionID)) {
|
|
361
|
+
// Store the first return prompt (replaces "Summarize..." in $SESSION)
|
|
362
|
+
firstReturnPrompt.set(input.sessionID, cmdConfig.return[0]);
|
|
363
|
+
if (cmdConfig.return.length > 1) {
|
|
364
|
+
returnState.set(input.sessionID, [...cmdConfig.return.slice(1)]);
|
|
365
|
+
log(`Set returnState: ${cmdConfig.return.slice(1).length} items`);
|
|
366
|
+
}
|
|
192
367
|
}
|
|
193
368
|
}
|
|
369
|
+
// Resolve $SESSION[n] in the prompt for ANY subtask
|
|
370
|
+
// Use parent session if this command was triggered via executeReturn
|
|
371
|
+
if (prompt && hasTurnReferences(prompt)) {
|
|
372
|
+
const resolveFromSession = pendingParentSession || input.sessionID;
|
|
373
|
+
log(`tool.execute.before: resolving $SESSION in prompt (from ${pendingParentSession ? 'parent' : 'current'} session ${resolveFromSession})`);
|
|
374
|
+
output.args.prompt = await resolveTurnReferences(prompt, resolveFromSession);
|
|
375
|
+
log(`tool.execute.before: resolved prompt (${output.args.prompt.length} chars)`);
|
|
376
|
+
// Clear after use
|
|
377
|
+
pendingParentSession = null;
|
|
378
|
+
}
|
|
194
379
|
if (cmd && getConfig(configs, cmd)) {
|
|
195
380
|
const cmdConfig = getConfig(configs, cmd);
|
|
196
381
|
if (cmd === mainCmd) {
|
|
@@ -206,12 +391,24 @@ const plugin = async (ctx) => {
|
|
|
206
391
|
if (input.tool !== "task")
|
|
207
392
|
return;
|
|
208
393
|
const cmd = callState.get(input.callID);
|
|
394
|
+
log(`tool.after: callID=${input.callID}, cmd=${cmd}, wasTracked=${!!cmd}`);
|
|
395
|
+
if (!cmd) {
|
|
396
|
+
// Already processed or not our command
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
209
399
|
callState.delete(input.callID);
|
|
210
400
|
const mainCmd = sessionMainCommand.get(input.sessionID);
|
|
211
401
|
const cmdConfig = cmd ? getConfig(configs, cmd) : undefined;
|
|
402
|
+
log(`tool.after: cmd=${cmd}, mainCmd=${mainCmd}, isMain=${cmd === mainCmd}, hasReturn=${!!cmdConfig?.return?.length}`);
|
|
212
403
|
if (cmd && cmd === mainCmd && cmdConfig?.return?.length) {
|
|
213
|
-
|
|
214
|
-
pendingReturns.
|
|
404
|
+
// Only set pendingReturn if we haven't already
|
|
405
|
+
if (!pendingReturns.has(input.sessionID)) {
|
|
406
|
+
log(`Setting pendingReturn: ${cmdConfig.return[0].substring(0, 50)}...`);
|
|
407
|
+
pendingReturns.set(input.sessionID, cmdConfig.return[0]);
|
|
408
|
+
}
|
|
409
|
+
else {
|
|
410
|
+
log(`Skipping pendingReturn - already set`);
|
|
411
|
+
}
|
|
215
412
|
}
|
|
216
413
|
else if (cmd && cmd !== mainCmd) {
|
|
217
414
|
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":"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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.2.
|
|
4
|
+
"version": "0.2.8",
|
|
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",
|