@jiggai/recipes 0.4.22 → 0.4.24

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.
@@ -2,7 +2,7 @@
2
2
  "id": "recipes",
3
3
  "name": "Recipes",
4
4
  "description": "Markdown recipes that scaffold agents and teams (workspace-local).",
5
- "version": "0.4.22",
5
+ "version": "0.4.24",
6
6
  "configSchema": {
7
7
  "type": "object",
8
8
  "additionalProperties": false,
package/package.json CHANGED
@@ -1,13 +1,16 @@
1
1
  {
2
2
  "name": "@jiggai/recipes",
3
- "version": "0.4.22",
3
+ "version": "0.4.24",
4
4
  "description": "ClawRecipes plugin for OpenClaw (markdown recipes -> scaffold agents/teams)",
5
5
  "main": "index.ts",
6
6
  "type": "commonjs",
7
7
  "openclaw": {
8
8
  "extensions": [
9
9
  "./index.ts"
10
- ]
10
+ ],
11
+ "compat": {
12
+ "pluginApi": "2026.3"
13
+ }
11
14
  },
12
15
  "publishConfig": {
13
16
  "access": "public"
@@ -192,31 +192,23 @@ export async function executeWorkflowNodes(opts: {
192
192
  `Return ONLY the final content (the runner will store it as JSON).`,
193
193
  ].join('\n');
194
194
 
195
- // Prefer llm-task-fixed when installed; fall back to llm-task.
196
- // Avoid depending on sessions_spawn (not always exposed via gateway tools/invoke).
197
195
  let text = '';
198
196
  try {
199
- let llmRes: unknown;
197
+
200
198
  const priorInput = await loadPriorLlmInput({ runDir, workflow, currentNode: node, currentNodeIndex: i });
201
- try {
202
- llmRes = await toolsInvoke<unknown>(api, {
203
- tool: 'llm-task-fixed',
204
- action: 'json',
205
- args: {
206
- prompt: task,
207
- input: { teamId, runId, nodeId: node.id, agentId, ...priorInput },
208
- },
209
- });
210
- } catch { // intentional: fallback from llm-task-fixed to llm-task
211
- llmRes = await toolsInvoke<unknown>(api, {
212
- tool: 'llm-task',
213
- action: 'json',
214
- args: {
215
- prompt: task,
216
- input: { teamId, runId, nodeId: node.id, agentId, ...priorInput },
217
- },
218
- });
219
- }
199
+
200
+ const timeoutMsRaw = Number(asString(action['timeoutMs'] ?? (node as unknown as { config?: unknown })?.config?.['timeoutMs'] ?? '120000'));
201
+ const timeoutMs = Number.isFinite(timeoutMsRaw) && timeoutMsRaw > 0 ? timeoutMsRaw : 120000;
202
+
203
+ const llmRes = await toolsInvoke<unknown>(api, {
204
+ tool: 'llm-task',
205
+ action: 'json',
206
+ args: {
207
+ prompt: task,
208
+ input: { teamId, runId, nodeId: node.id, agentId, ...priorInput },
209
+ timeoutMs,
210
+ },
211
+ });
220
212
 
221
213
  const llmRec = asRecord(llmRes);
222
214
  const details = asRecord(llmRec['details']);
@@ -201,27 +201,21 @@ export async function runWorkflowWorkerTick(api: OpenClawPluginApi, opts: {
201
201
 
202
202
  let text = '';
203
203
  try {
204
- let llmRes: unknown;
204
+
205
205
  const priorInput = await loadPriorLlmInput({ runDir, workflow, currentNode: node, currentNodeIndex: nodeIdx });
206
- try {
207
- llmRes = await toolsInvoke<unknown>(api, {
208
- tool: 'llm-task-fixed',
209
- action: 'json',
210
- args: {
211
- prompt: taskText,
212
- input: { teamId, runId, nodeId: node.id, agentId, ...priorInput },
213
- },
214
- });
215
- } catch { // intentional: fallback from llm-task-fixed to llm-task
216
- llmRes = await toolsInvoke<unknown>(api, {
217
- tool: 'llm-task',
218
- action: 'json',
219
- args: {
220
- prompt: taskText,
221
- input: { teamId, runId, nodeId: node.id, agentId, ...priorInput },
222
- },
223
- });
224
- }
206
+
207
+ const timeoutMsRaw = Number(asString(action['timeoutMs'] ?? (node as unknown as { config?: unknown })?.config?.['timeoutMs'] ?? '120000'));
208
+ const timeoutMs = Number.isFinite(timeoutMsRaw) && timeoutMsRaw > 0 ? timeoutMsRaw : 120000;
209
+
210
+ const llmRes = await toolsInvoke<unknown>(api, {
211
+ tool: 'llm-task',
212
+ action: 'json',
213
+ args: {
214
+ prompt: taskText,
215
+ input: { teamId, runId, nodeId: node.id, agentId, ...priorInput },
216
+ timeoutMs,
217
+ },
218
+ });
225
219
 
226
220
  const llmRec = asRecord(llmRes);
227
221
  const details = asRecord(llmRec['details']);