deepclause-sdk 0.0.83 → 0.0.86

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.
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAwC1E,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC;IAClC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;KACvD,CAAC;IACF,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACvE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,YAAY,EAAE,QAAQ,KAAK,IAAI,CAAC;IACzD,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,eAAe,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACtG,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,mGAAmG;IACnG,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClE;AA2bD;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CA6rBtF"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAwC1E,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC;IAClC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;KACvD,CAAC;IACF,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACvE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,YAAY,EAAE,QAAQ,KAAK,IAAI,CAAC;IACzD,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,eAAe,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACtG,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,mGAAmG;IACnG,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClE;AA6cD;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CA6rBtF"}
package/dist/agent.js CHANGED
@@ -221,14 +221,33 @@ function buildImplicitTaskSummary(assistantTextResponses, completedToolActivitie
221
221
  return 'Task completed successfully.';
222
222
  }
223
223
  async function generateTaskSummary(model, messages, modelOptions, signal) {
224
+ // Strip tool-call and tool-result messages — the AI SDK requires matching
225
+ // results for every tool call ID, which may not survive message reconstruction.
226
+ // Keep only plain text system/user/assistant messages for context.
224
227
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
225
- const summaryMessages = [
226
- ...messages.filter(m => m.role === 'system' || m.role === 'user' || m.role === 'assistant'),
227
- { role: 'user', content: 'Write a detailed summary of what you just did and what you found. Include: files examined and their key contents, vulnerabilities or issues discovered (with file paths and line numbers), commands run and their results, decisions made, and anything the next task should know. Do not include raw tool call syntax.' },
228
- ];
228
+ const textOnlyMessages = [];
229
+ for (const m of messages) {
230
+ if (m.role === 'system' || m.role === 'user') {
231
+ const content = typeof m.content === 'string' ? m.content : '';
232
+ if (content.trim()) {
233
+ textOnlyMessages.push({ role: m.role, content });
234
+ }
235
+ }
236
+ else if (m.role === 'assistant') {
237
+ // Only keep assistant messages that are plain strings (text output, not tool calls)
238
+ const content = typeof m.content === 'string' ? m.content : '';
239
+ if (content.trim()) {
240
+ textOnlyMessages.push({ role: 'assistant', content });
241
+ }
242
+ }
243
+ }
244
+ textOnlyMessages.push({
245
+ role: 'user',
246
+ content: 'Write a detailed summary of what you just did and what you found. Include: files examined and their key contents, vulnerabilities or issues discovered (with file paths and line numbers), commands run and their results, decisions made, and anything the next task should know. Do not include raw tool call syntax.',
247
+ });
229
248
  const result = await generateText({
230
249
  model,
231
- messages: summaryMessages,
250
+ messages: textOnlyMessages,
232
251
  temperature: 0.3,
233
252
  maxOutputTokens: 4096,
234
253
  abortSignal: signal,
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -155,6 +155,10 @@ transform_task_calls((A -> B), Bindings, (TA -> TB)) :- !,
155
155
  transform_task_calls(\+ A, Bindings, \+ TA) :- !,
156
156
  transform_task_calls(A, Bindings, TA).
157
157
 
158
+ %% Transform task/1 to task_named/3 with a hidden Summary variable
159
+ %% This ensures task/1 always produces a summary in the conversation history
160
+ transform_task_calls(task(Desc), _Bindings, task_named(Desc, [_Summary], [typed_var{name: 'Summary', type: string}])) :- !.
161
+
158
162
  %% Transform task/2 to task_named/3
159
163
  transform_task_calls(task(Desc, V1), Bindings, task_named(Desc, [Var1], [Info1])) :- !,
160
164
  extract_var_info(Bindings, V1, Var1, Info1).
@@ -775,9 +779,9 @@ get_reasoning_effort(State, Effort) :-
775
779
  %% Recipe Context Helpers
776
780
  %% ============================================================
777
781
 
778
- %% load_recipe_content(+Query, -Content)
779
- load_recipe_content(Query, RecipeContent) :-
780
- exec(consult_recipes(query: Query, max_results: 1), Result),
782
+ %% load_recipe_content(+Query, +StateIn, -StateOut, -Content)
783
+ load_recipe_content(Query, StateIn, StateOut, RecipeContent) :-
784
+ mi_call(exec(consult_recipes(query: Query, max_results: 1), Result), StateIn, StateOut),
781
785
  get_dict(matches, Result, Matches),
782
786
  ( Matches = [Match|_]
783
787
  -> get_dict(content, Match, RecipeContent)
@@ -1480,8 +1484,8 @@ mi_call(with_reasoning(Goal, Effort), StateIn, StateOut) :-
1480
1484
  %% Run Goal with a recipe loaded as transient context (not persisted to memory).
1481
1485
  mi_call(with_recipe(Goal, Query), StateIn, StateOut) :-
1482
1486
  !,
1483
- load_recipe_content(Query, RecipeContent),
1484
- set_recipe_context(StateIn, RecipeContent, ScopedState),
1487
+ load_recipe_content(Query, StateIn, StateAfterRecipeLoad, RecipeContent),
1488
+ set_recipe_context(StateAfterRecipeLoad, RecipeContent, ScopedState),
1485
1489
  mi_call(Goal, ScopedState, StateWithRecipe),
1486
1490
  clear_recipe_context(StateWithRecipe, StateOut).
1487
1491
 
@@ -173,13 +173,19 @@ Note: There is no separate save_file or read_file tool. File operations go throu
173
173
 
174
174
  {ReasoningNote}
175
175
 
176
- Also specify a recipe query for each task if relevant (null otherwise).
177
-
178
- Return a JSON array of objects:
179
- [{\"description\": \"task description\", \"tools\": [\"tool_name\", ...], \"reasoning\": \"none|low|medium|high\", \"recipe\": \"query string or null\"}]
180
-
181
- Return ONLY the JSON array.", string(TasksJson)),
182
- ( catch(parse_plan_json(TasksJson, Steps), _, fail)
176
+ Also specify a recipe query for each task if relevant (NONE otherwise).
177
+
178
+ Return four ordered lists aligned 1:1:
179
+ - TaskDescriptions: plain task descriptions.
180
+ - ToolSpecs: each item must be either ALL or a comma-separated list of exact tool names from the available tools list above.
181
+ - ReasoningSpecs: each item must be exactly one of none, low, medium, high.
182
+ - RecipeSpecs: each item must be either NONE or a recipe query string.
183
+
184
+ Store the ordered task descriptions in TaskDescriptions.
185
+ Store the ordered tool specs in ToolSpecs.
186
+ Store the ordered reasoning specs in ReasoningSpecs.
187
+ Store the ordered recipe specs in RecipeSpecs.", list(string(TaskDescriptions)), list(string(ToolSpecs)), list(string(ReasoningSpecs)), list(string(RecipeSpecs))),
188
+ ( build_plan_steps_from_specs(TaskDescriptions, ToolSpecs, ReasoningSpecs, RecipeSpecs, Steps)
183
189
  -> true
184
190
  ; fallback_plan_steps_from_strategy(Strategy, Steps)
185
191
  ).
@@ -196,44 +202,66 @@ valid_plan_tool(create_new_skill).
196
202
  valid_plan_tool(ask_user).
197
203
  valid_plan_tool(inform_user).
198
204
 
199
- %% tool_name_to_atom(+Raw, -Atom)
200
- tool_name_to_atom(Raw, Atom) :-
201
- ( atom(Raw) -> Atom = Raw
202
- ; string(Raw) -> atom_string(Atom, Raw)
203
- ; Atom = Raw
205
+ default_plan_tools([run_bash, run_skill, consult_recipes, search_web, search_news, fetch_url, download_file, create_new_skill, ask_user, inform_user]).
206
+
207
+ build_plan_steps_from_specs([], [], [], [], []).
208
+ build_plan_steps_from_specs([Desc|RestDesc], [ToolSpec|RestTools], [ReasoningSpec|RestReasoning], [RecipeSpec|RestRecipes], [plan_step{description: Desc, tools: Tools, reasoning: Reasoning, recipe: Recipe}|RestSteps]) :-
209
+ normalize_tools_spec(ToolSpec, Tools),
210
+ normalize_reasoning_spec(ReasoningSpec, Reasoning),
211
+ normalize_recipe_spec(RecipeSpec, Recipe),
212
+ build_plan_steps_from_specs(RestDesc, RestTools, RestReasoning, RestRecipes, RestSteps).
213
+
214
+ normalize_tools_spec(Raw, Tools) :-
215
+ format(string(Text), "~w", [Raw]),
216
+ string_lower(Text, Lower),
217
+ ( Lower = "all"
218
+ -> default_plan_tools(Tools)
219
+ ; split_string(Text, ",", " []\t\n", Parts0),
220
+ include(non_empty_string, Parts0, Parts),
221
+ findall(ToolAtom,
222
+ ( member(Part, Parts),
223
+ tool_name_string_to_atom(Part, ToolAtom),
224
+ valid_plan_tool(ToolAtom)
225
+ ),
226
+ ValidTools),
227
+ ( ValidTools = []
228
+ -> default_plan_tools(Tools)
229
+ ; Tools = ValidTools
230
+ )
204
231
  ).
205
232
 
206
- %% parse_plan_json(+Json, -PlanSteps)
207
- parse_plan_json(Json, PlanSteps) :-
208
- atom_json_dict(Json, JsonArray, []),
209
- is_list(JsonArray),
210
- maplist(parse_plan_step, JsonArray, PlanSteps).
211
-
212
- parse_plan_step(Dict, plan_step{description: Desc, tools: Tools, reasoning: Reasoning, recipe: Recipe}) :-
213
- Desc = Dict.get(description),
214
- ( Desc = null -> throw(parse_error) ; true ),
215
- ToolsRaw = Dict.get(tools),
216
- ( is_list(ToolsRaw)
217
- -> findall(TA, (member(TR, ToolsRaw), tool_name_to_atom(TR, TA), valid_plan_tool(TA)), ValidTools),
218
- ( ValidTools = [] -> Tools = all ; Tools = ValidTools )
219
- ; Tools = all ),
220
- ReasoningRaw = Dict.get(reasoning),
221
- ( atom(ReasoningRaw) -> atom_string(ReasoningRaw, Reasoning)
222
- ; string(ReasoningRaw) -> Reasoning = ReasoningRaw
223
- ; Reasoning = "none"
224
- ),
225
- RecipeRaw = Dict.get(recipe),
226
- ( ( RecipeRaw = null ; var(RecipeRaw) )
233
+ normalize_reasoning_spec(Raw, Reasoning) :-
234
+ format(string(Text), "~w", [Raw]),
235
+ string_lower(Text, Lower),
236
+ normalize_reasoning_label(Lower, Reasoning).
237
+
238
+ normalize_reasoning_label("high", "high").
239
+ normalize_reasoning_label("medium", "medium").
240
+ normalize_reasoning_label("low", "low").
241
+ normalize_reasoning_label("none", "none").
242
+ normalize_reasoning_label(_, "none").
243
+
244
+ normalize_recipe_spec(Raw, Recipe) :-
245
+ format(string(Text0), "~w", [Raw]),
246
+ normalize_space(string(Text), Text0),
247
+ string_lower(Text, Lower),
248
+ ( Lower = ""
227
249
  -> Recipe = "none"
228
- ; atom(RecipeRaw)
229
- -> atom_string(RecipeRaw, Recipe)
230
- ; string(RecipeRaw)
231
- -> Recipe = RecipeRaw
232
- ; Recipe = "none"
250
+ ; Lower = "none"
251
+ -> Recipe = "none"
252
+ ; Recipe = Text
233
253
  ).
234
254
 
255
+ tool_name_string_to_atom(Text, Atom) :-
256
+ string_lower(Text, Lower),
257
+ atom_string(Atom, Lower).
258
+
259
+ non_empty_string(Text) :-
260
+ Text \= "".
261
+
235
262
  %% fallback_plan_steps_from_strategy(+Strategy, -Steps)
236
- fallback_plan_steps_from_strategy(Strategy, [plan_step{description: Strategy, tools: all, reasoning: "none", recipe: "none"}]).
263
+ fallback_plan_steps_from_strategy(Strategy, [plan_step{description: Strategy, tools: Tools, reasoning: "none", recipe: "none"}]) :-
264
+ default_plan_tools(Tools).
237
265
 
238
266
  %% assemble_multi_strategy_dml(+StrategyPlans, +CodingWorkflowRecipe, -PlanDml)
239
267
  assemble_multi_strategy_dml(StrategyPlans, CodingWorkflowRecipe, PlanDml) :-
@@ -271,10 +299,7 @@ build_single_task_line(Step, Line) :-
271
299
  Reasoning = Step.reasoning,
272
300
  Recipe = Step.recipe,
273
301
 
274
- ( Tools == all
275
- -> format(string(InnerTask), "task(~q)", [Desc])
276
- ; format(string(InnerTask), "with_tools(~w, task(~q))", [Tools, Desc])
277
- ),
302
+ format(string(InnerTask), "with_tools(~w, task(~q))", [Tools, Desc]),
278
303
 
279
304
  ( Reasoning \= "none"
280
305
  -> format(string(WithReasoning), "with_reasoning(~n ~w~n , ~w)", [InnerTask, Reasoning])
@@ -172,16 +172,17 @@ Note: There is no separate save_file or read_file tool. File operations go throu
172
172
 
173
173
  {ReasoningNote}
174
174
 
175
- Also specify a recipe query for each task if relevant (null otherwise). Use natural language queries like 'testing patterns' or 'codebase analysis'.
175
+ Also specify a recipe query for each task if relevant (NONE otherwise). Use natural language queries like 'testing patterns' or 'codebase analysis'.
176
176
 
177
- Return a JSON array of objects with these fields:
178
- - \"description\": the task description (copy from the plan above)
179
- - \"tools\": array of tool name strings from the available tools list above
180
- - \"reasoning\": one of \"none\", \"low\", \"medium\", \"high\"
181
- - \"recipe\": a recipe query string or null
177
+ Return three ordered lists aligned 1:1 with Tasks:
178
+ - ToolSpecs: each item must be either ALL or a comma-separated list of exact tool names from the available tools list above.
179
+ - ReasoningSpecs: each item must be exactly one of none, low, medium, high.
180
+ - RecipeSpecs: each item must be either NONE or a recipe query string.
182
181
 
183
- Return ONLY the JSON array, no other text.", string(AssignmentsJson)),
184
- ( catch(parse_plan_json(AssignmentsJson, PlanSteps), _, fail)
182
+ Store the ordered tool specs in ToolSpecs.
183
+ Store the ordered reasoning specs in ReasoningSpecs.
184
+ Store the ordered recipe specs in RecipeSpecs.", list(string(ToolSpecs)), list(string(ReasoningSpecs)), list(string(RecipeSpecs))),
185
+ ( build_plan_steps_from_specs(PlanTasks, ToolSpecs, ReasoningSpecs, RecipeSpecs, PlanSteps)
185
186
  -> true
186
187
  ; % Fallback: no tool/reasoning/recipe assignments
187
188
  fallback_plan_steps(PlanTasks, PlanSteps)
@@ -199,48 +200,68 @@ valid_plan_tool(create_new_skill).
199
200
  valid_plan_tool(ask_user).
200
201
  valid_plan_tool(inform_user).
201
202
 
202
- %% tool_name_to_atom(+Raw, -Atom)
203
- %% Converts a JSON string or atom to a Prolog atom
204
- tool_name_to_atom(Raw, Atom) :-
205
- ( atom(Raw) -> Atom = Raw
206
- ; string(Raw) -> atom_string(Atom, Raw)
207
- ; Atom = Raw
203
+ default_plan_tools([run_bash, run_skill, consult_recipes, search_web, search_news, fetch_url, download_file, create_new_skill, ask_user, inform_user]).
204
+
205
+ build_plan_steps_from_specs([], [], [], [], []).
206
+ build_plan_steps_from_specs([Desc|RestDesc], [ToolSpec|RestTools], [ReasoningSpec|RestReasoning], [RecipeSpec|RestRecipes], [plan_step{description: Desc, tools: Tools, reasoning: Reasoning, recipe: Recipe}|RestSteps]) :-
207
+ normalize_tools_spec(ToolSpec, Tools),
208
+ normalize_reasoning_spec(ReasoningSpec, Reasoning),
209
+ normalize_recipe_spec(RecipeSpec, Recipe),
210
+ build_plan_steps_from_specs(RestDesc, RestTools, RestReasoning, RestRecipes, RestSteps).
211
+
212
+ normalize_tools_spec(Raw, Tools) :-
213
+ format(string(Text), "~w", [Raw]),
214
+ string_lower(Text, Lower),
215
+ ( Lower = "all"
216
+ -> default_plan_tools(Tools)
217
+ ; split_string(Text, ",", " []\t\n", Parts0),
218
+ include(non_empty_string, Parts0, Parts),
219
+ findall(ToolAtom,
220
+ ( member(Part, Parts),
221
+ tool_name_string_to_atom(Part, ToolAtom),
222
+ valid_plan_tool(ToolAtom)
223
+ ),
224
+ ValidTools),
225
+ ( ValidTools = []
226
+ -> default_plan_tools(Tools)
227
+ ; Tools = ValidTools
228
+ )
208
229
  ).
209
230
 
210
- %% parse_plan_json(+Json, -PlanSteps)
211
- parse_plan_json(Json, PlanSteps) :-
212
- atom_json_dict(Json, JsonArray, []),
213
- is_list(JsonArray),
214
- maplist(parse_plan_step, JsonArray, PlanSteps).
215
-
216
- parse_plan_step(Dict, plan_step{description: Desc, tools: Tools, reasoning: Reasoning, recipe: Recipe}) :-
217
- Desc = Dict.get(description),
218
- ( Desc = null -> throw(parse_error) ; true ),
219
- ToolsRaw = Dict.get(tools),
220
- ( is_list(ToolsRaw)
221
- -> % Convert each tool name to atom, filter to valid tools
222
- findall(TA, (member(TR, ToolsRaw), tool_name_to_atom(TR, TA), valid_plan_tool(TA)), ValidTools),
223
- ( ValidTools = [] -> Tools = all ; Tools = ValidTools )
224
- ; Tools = all ),
225
- ReasoningRaw = Dict.get(reasoning),
226
- ( atom(ReasoningRaw) -> atom_string(ReasoningRaw, Reasoning)
227
- ; string(ReasoningRaw) -> Reasoning = ReasoningRaw
228
- ; Reasoning = "none"
229
- ),
230
- RecipeRaw = Dict.get(recipe),
231
- ( ( RecipeRaw = null ; var(RecipeRaw) )
231
+ normalize_reasoning_spec(Raw, Reasoning) :-
232
+ format(string(Text), "~w", [Raw]),
233
+ string_lower(Text, Lower),
234
+ normalize_reasoning_label(Lower, Reasoning).
235
+
236
+ normalize_reasoning_label("high", "high").
237
+ normalize_reasoning_label("medium", "medium").
238
+ normalize_reasoning_label("low", "low").
239
+ normalize_reasoning_label("none", "none").
240
+ normalize_reasoning_label(_, "none").
241
+
242
+ normalize_recipe_spec(Raw, Recipe) :-
243
+ format(string(Text0), "~w", [Raw]),
244
+ normalize_space(string(Text), Text0),
245
+ string_lower(Text, Lower),
246
+ ( Lower = ""
247
+ -> Recipe = "none"
248
+ ; Lower = "none"
232
249
  -> Recipe = "none"
233
- ; atom(RecipeRaw)
234
- -> atom_string(RecipeRaw, Recipe)
235
- ; string(RecipeRaw)
236
- -> Recipe = RecipeRaw
237
- ; Recipe = "none"
250
+ ; Recipe = Text
238
251
  ).
239
252
 
253
+ tool_name_string_to_atom(Text, Atom) :-
254
+ string_lower(Text, Lower),
255
+ atom_string(Atom, Lower).
256
+
257
+ non_empty_string(Text) :-
258
+ Text \= "".
259
+
240
260
  %% fallback_plan_steps(+PlanTasks, -PlanSteps)
241
261
  %% When JSON parsing fails, create steps with all tools and no reasoning/recipe.
242
262
  fallback_plan_steps([], []).
243
- fallback_plan_steps([Desc|Rest], [plan_step{description: Desc, tools: all, reasoning: "none", recipe: "none"}|RestSteps]) :-
263
+ fallback_plan_steps([Desc|Rest], [plan_step{description: Desc, tools: Tools, reasoning: "none", recipe: "none"}|RestSteps]) :-
264
+ default_plan_tools(Tools),
244
265
  fallback_plan_steps(Rest, RestSteps).
245
266
 
246
267
  assemble_plan_dml(PlanSystemPrompt, PlanSteps, PlanDml) :-
@@ -289,10 +310,7 @@ build_step_review_lines([Step|RestSteps], StepNumber, StepLines) :-
289
310
  Desc = Step.description,
290
311
  Tools = Step.tools,
291
312
  Reasoning = Step.reasoning,
292
- ( Tools == all
293
- -> format(string(CurrentStep), "~w. ~w [all tools, ~w]\n", [StepNumber, Desc, Reasoning])
294
- ; format(string(CurrentStep), "~w. ~w [tools: ~w, ~w]\n", [StepNumber, Desc, Tools, Reasoning])
295
- ),
313
+ format(string(CurrentStep), "~w. ~w [tools: ~w, ~w]\n", [StepNumber, Desc, Tools, Reasoning]),
296
314
  NextStepNumber is StepNumber + 1,
297
315
  build_step_review_lines(RestSteps, NextStepNumber, RestStepLines),
298
316
  string_concat(CurrentStep, RestStepLines, StepLines).
@@ -309,19 +327,13 @@ build_single_task_line(Step, Line) :-
309
327
  Reasoning = Step.reasoning,
310
328
  Recipe = Step.recipe,
311
329
 
312
- % Build inner task with tool scoping
313
- ( Tools == all
314
- -> format(string(InnerTask), "task(~q)", [Desc])
315
- ; format(string(InnerTask), "with_tools(~w, task(~q))", [Tools, Desc])
316
- ),
330
+ format(string(InnerTask), "with_tools(~w, task(~q))", [Tools, Desc]),
317
331
 
318
- % Wrap in with_reasoning if reasoning != none
319
332
  ( Reasoning \= "none"
320
333
  -> format(string(WithReasoning), "with_reasoning(~n ~w~n , ~w)", [InnerTask, Reasoning])
321
334
  ; WithReasoning = InnerTask
322
335
  ),
323
336
 
324
- % Wrap in with_recipe if recipe != none
325
337
  ( Recipe \= "none"
326
338
  -> format(string(Line), " with_recipe(~n ~w~n , '~w'),~n", [WithReasoning, Recipe])
327
339
  ; format(string(Line), " ~w,~n", [WithReasoning])
@@ -1,23 +1,15 @@
1
1
  % Security planner — generates a multi-strategy DML plan for finding bugs and vulnerabilities.
2
- % Each strategy uses a different analysis approach. Prolog backtracking tries them in order.
2
+ % The planner itself does NOT analyze code. It only generates strategies and task descriptions.
3
+ % Analysis happens when the generated plan is executed.
3
4
 
4
5
  tool(consult_recipes(Query, Result),
5
6
  "Search the recipe library for workflow guidance and conventions.") :-
6
7
  exec(consult_recipes(query: Query, max_results: 3), Result).
7
8
 
8
9
  tool(search_web(Query, Results),
9
- "Search the web for CVEs, security advisories, and documentation.") :-
10
+ "Search the web for context about the target project or technology stack.") :-
10
11
  exec(web_search(query: Query), Results).
11
12
 
12
- tool(fetch_url(Url, Content),
13
- "Fetch a web page for security documentation or advisory details.") :-
14
- exec(url_fetch(url: Url), Result),
15
- get_dict(body, Result, Content).
16
-
17
- tool(run_bash(Command, Output),
18
- "Run a shell command in the workspace. Use for grep, find, static analyzers, etc.") :-
19
- exec(bash(command: Command), Output).
20
-
21
13
  tool(ask_user(Prompt, Response),
22
14
  "Ask the user for clarification about scope, severity thresholds, or context.") :-
23
15
  exec(ask_user(prompt: Prompt), Result),
@@ -26,7 +18,7 @@ tool(ask_user(Prompt, Response),
26
18
  agent_main(Request) :-
27
19
  load_dml_reference(DmlReference),
28
20
  resolve_model_info(ModelId, Complexity, Reasoning, TaskCount),
29
- format(string(SystemPrompt), "You create multi-strategy security analysis plans for DeepClause.~n~nTarget: ~w~n~nA multi-strategy plan contains multiple agent_main clauses. Prolog tries them in order — if the first strategy finds nothing, it backtracks and tries the next strategy. answer/1 commits on success.~n~nYour job:~n1. Generate a short slug for the plan file.~n2. Generate ~w fundamentally different strategies for finding bugs and vulnerabilities.~n3. For each strategy, generate a task list with tool assignments and reasoning effort.~n4. Each strategy should examine the codebase from a different angle.~n5. The assembler creates a DML file with one agent_main clause per strategy, plus a fallback.~n~nStrategy ideas (suggest different ones based on the target):~n- Static pattern analysis: grep for dangerous functions, hardcoded secrets, SQL injection patterns~n- Data flow analysis: trace user input through the code to sinks (eval, exec, SQL queries, template rendering)~n- Dependency audit: scan package files for known vulnerabilities, check for pinned vs floating versions~n- Configuration review: check for insecure defaults, missing auth, exposed secrets, permissive CORS~n- Input validation audit: check all entry points for missing/insufficient validation~n- Error handling review: check for information leaks in error messages, unhandled exceptions~n- Authentication/authorization review: check for broken access control, session management issues~n- Race condition / concurrency analysis: check for TOCTOU, missing locks, async issues~n~nEach strategy should produce a findings report. The first strategy to find and report issues wins via answer/1.~n~nDML language reference:~n~n~s", [Request, TaskCount, DmlReference]),
21
+ format(string(SystemPrompt), "You are a SECURITY PLAN GENERATOR. You do NOT analyze code yourself. You only create plans for other agents to execute.~n~nTarget: ~w~n~nYour job:~n1. Generate a short slug for the plan file.~n2. Generate ~w fundamentally different strategies for finding bugs and vulnerabilities.~n3. For each strategy, generate a task list with tool assignments and reasoning effort.~n4. The assembler creates a DML file with one agent_main clause per strategy.~n~nRules:~n- Do NOT run shell commands, read files, or examine the codebase. That is the job of the generated plan.~n- Generate strategies based on the target description and your knowledge of common vulnerability patterns.~n- Each strategy must use a different analysis approach (static patterns, data flow, dependency audit, config review, input validation, auth review, etc.).~n- Each strategy gets 3 to 7 analysis tasks plus a final verification task (added automatically).~n- The final task in each strategy asks the model to write findings to a file if vulnerabilities are found, or fail if nothing is found.~n~nDML language reference:~n~n~s", [Request, TaskCount, DmlReference]),
30
22
  system(SystemPrompt),
31
23
 
32
24
  task("Create a short file-safe slug for this security analysis target: '{Request}'.~nRequirements:~n- lowercase letters, digits, and underscores only~n- 2 to 6 words when possible~n- no file extension~n- prefix with 'audit_' if not already present~nStore only the slug in PlanSlug.", string(PlanSlug)),
@@ -103,87 +95,113 @@ generate_all_strategy_tasks(Request, [Strategy|RestStrategies], [plan{strategy:
103
95
  generate_strategy_tasks(Request, Strategy, Steps) :-
104
96
  ( param(model_info, ModelInfo)
105
97
  -> ( get_dict(reasoning, ModelInfo, R), R == true
106
- -> ReasoningNote = "The execution model supports reasoning. Assign reasoning effort per task: none, low, medium, or high. Use 'high' for complex data flow analysis."
98
+ -> ReasoningNote = "The execution model supports reasoning. Assign reasoning effort per task: none, low, medium, or high."
107
99
  ; ReasoningNote = "The execution model does not support reasoning. Set reasoning to 'none' for all tasks."
108
100
  )
109
101
  ; ReasoningNote = "Set reasoning to 'none' for all tasks."
110
102
  ),
111
- task("Break this security analysis strategy into 3 to 7 focused execution tasks.
103
+ task("List 3 to 7 focused execution tasks for this security analysis strategy.
112
104
 
113
105
  Target: {Request}
114
106
  Strategy: {Strategy}
115
107
 
116
- Available tools (use ONLY these exact names):
117
- - run_bash: Run a shell command (grep, find, static analyzers, cat files, etc.)
118
- - search_web: Search for CVEs and security documentation
119
- - fetch_url: Fetch security advisories or documentation
120
- - consult_recipes: Search recipe library for workflow guidance
121
- - ask_user: Ask the user for clarification
108
+ Each task should be one concrete analysis step. Be specific about what to look for and which files to examine.
122
109
 
123
- Note: There is no separate save_file or read_file tool. File operations go through run_bash.
124
-
125
- Do NOT include a final verification or writeup task — a verification step is added automatically after your tasks. Your tasks should focus on analysis and discovery only.
110
+ Available tools (use ONLY these exact names):
111
+ - consult_recipes: Search recipe guidance and conventions
112
+ - search_web: Search the web for advisories, docs, and references
113
+ - search_news: Search recent news for relevant incidents or advisories
114
+ - fetch_url: Fetch a specific advisory or documentation page
115
+ - run_bash: Run grep, find, test, and scanner commands in the workspace
116
+ - ask_user: Ask the user to narrow scope or clarify assumptions
117
+ - inform_user: Send a status update
126
118
 
127
119
  {ReasoningNote}
128
120
 
129
- Also specify a recipe query for each task if relevant (null otherwise).
121
+ Also specify a recipe query for each task if relevant (NONE otherwise).
130
122
 
131
- Return a JSON array of objects:
132
- [{\"description\": \"task description\", \"tools\": [\"tool_name\", ...], \"reasoning\": \"none|low|medium|high\", \"recipe\": \"query string or null\"}]
123
+ Return four ordered lists aligned 1:1:
124
+ - TaskDescriptions: plain task descriptions.
125
+ - ToolSpecs: each item must be either ALL or a comma-separated list of exact tool names from the available tools list above.
126
+ - ReasoningSpecs: each item must be exactly one of none, low, medium, high.
127
+ - RecipeSpecs: each item must be either NONE or a recipe query string.
133
128
 
134
- Return ONLY the JSON array.", string(TasksJson)),
135
- ( catch(parse_plan_json(TasksJson, Steps), _, fail)
129
+ Store the ordered task descriptions in TaskDescriptions.
130
+ Store the ordered tool specs in ToolSpecs.
131
+ Store the ordered reasoning specs in ReasoningSpecs.
132
+ Store the ordered recipe specs in RecipeSpecs.", list(string(TaskDescriptions)), list(string(ToolSpecs)), list(string(ReasoningSpecs)), list(string(RecipeSpecs))),
133
+ ( build_steps_from_specs(TaskDescriptions, ToolSpecs, ReasoningSpecs, RecipeSpecs, Steps)
136
134
  -> true
137
135
  ; fallback_plan_steps_from_strategy(Strategy, Steps)
138
136
  ).
139
137
 
140
- %% Valid tool names
141
- valid_plan_tool(run_bash).
142
- valid_plan_tool(run_skill).
143
138
  valid_plan_tool(consult_recipes).
144
139
  valid_plan_tool(search_web).
145
140
  valid_plan_tool(search_news).
146
141
  valid_plan_tool(fetch_url).
147
- valid_plan_tool(download_file).
148
- valid_plan_tool(create_new_skill).
142
+ valid_plan_tool(run_bash).
149
143
  valid_plan_tool(ask_user).
150
144
  valid_plan_tool(inform_user).
151
145
 
152
- tool_name_to_atom(Raw, Atom) :-
153
- ( atom(Raw) -> Atom = Raw
154
- ; string(Raw) -> atom_string(Atom, Raw)
155
- ; Atom = Raw
146
+ default_plan_tools([consult_recipes, search_web, search_news, fetch_url, run_bash, ask_user, inform_user]).
147
+
148
+ build_steps_from_specs([], [], [], [], []).
149
+ build_steps_from_specs([Desc|RestDesc], [ToolSpec|RestTools], [ReasoningSpec|RestReasoning], [RecipeSpec|RestRecipes], [plan_step{description: Desc, tools: Tools, reasoning: Reasoning, recipe: Recipe}|RestSteps]) :-
150
+ normalize_tools_spec(ToolSpec, Tools),
151
+ normalize_reasoning_spec(ReasoningSpec, Reasoning),
152
+ normalize_recipe_spec(RecipeSpec, Recipe),
153
+ build_steps_from_specs(RestDesc, RestTools, RestReasoning, RestRecipes, RestSteps).
154
+
155
+ normalize_tools_spec(Raw, Tools) :-
156
+ format(string(Text), "~w", [Raw]),
157
+ string_lower(Text, Lower),
158
+ ( Lower = "all"
159
+ -> default_plan_tools(Tools)
160
+ ; split_string(Text, ",", " []\t\n", Parts0),
161
+ include(non_empty_string, Parts0, Parts),
162
+ findall(ToolAtom,
163
+ ( member(Part, Parts),
164
+ tool_name_string_to_atom(Part, ToolAtom),
165
+ valid_plan_tool(ToolAtom)
166
+ ),
167
+ ValidTools),
168
+ ( ValidTools = []
169
+ -> default_plan_tools(Tools)
170
+ ; Tools = ValidTools
171
+ )
156
172
  ).
157
173
 
158
- parse_plan_json(Json, PlanSteps) :-
159
- atom_json_dict(Json, JsonArray, []),
160
- is_list(JsonArray),
161
- maplist(parse_plan_step, JsonArray, PlanSteps).
162
-
163
- parse_plan_step(Dict, plan_step{description: Desc, tools: Tools, reasoning: Reasoning, recipe: Recipe}) :-
164
- Desc = Dict.get(description),
165
- ( Desc = null -> throw(parse_error) ; true ),
166
- ToolsRaw = Dict.get(tools),
167
- ( is_list(ToolsRaw)
168
- -> findall(TA, (member(TR, ToolsRaw), tool_name_to_atom(TR, TA), valid_plan_tool(TA)), ValidTools),
169
- ( ValidTools = [] -> Tools = all ; Tools = ValidTools )
170
- ; Tools = all ),
171
- ReasoningRaw = Dict.get(reasoning),
172
- ( atom(ReasoningRaw) -> atom_string(ReasoningRaw, Reasoning)
173
- ; string(ReasoningRaw) -> Reasoning = ReasoningRaw
174
- ; Reasoning = "none"
175
- ),
176
- RecipeRaw = Dict.get(recipe),
177
- ( ( RecipeRaw = null ; var(RecipeRaw) )
174
+ normalize_reasoning_spec(Raw, Reasoning) :-
175
+ format(string(Text), "~w", [Raw]),
176
+ string_lower(Text, Lower),
177
+ normalize_reasoning_label(Lower, Reasoning).
178
+
179
+ normalize_reasoning_label("high", "high").
180
+ normalize_reasoning_label("medium", "medium").
181
+ normalize_reasoning_label("low", "low").
182
+ normalize_reasoning_label("none", "none").
183
+ normalize_reasoning_label(_, "none").
184
+
185
+ normalize_recipe_spec(Raw, Recipe) :-
186
+ format(string(Text0), "~w", [Raw]),
187
+ normalize_space(string(Text), Text0),
188
+ string_lower(Text, Lower),
189
+ ( Lower = ""
190
+ -> Recipe = "none"
191
+ ; Lower = "none"
178
192
  -> Recipe = "none"
179
- ; atom(RecipeRaw)
180
- -> atom_string(RecipeRaw, Recipe)
181
- ; string(RecipeRaw)
182
- -> Recipe = RecipeRaw
183
- ; Recipe = "none"
193
+ ; Recipe = Text
184
194
  ).
185
195
 
186
- fallback_plan_steps_from_strategy(Strategy, [plan_step{description: Strategy, tools: all, reasoning: "none", recipe: "none"}]).
196
+ tool_name_string_to_atom(Text, Atom) :-
197
+ string_lower(Text, Lower),
198
+ atom_string(Atom, Lower).
199
+
200
+ non_empty_string(Text) :-
201
+ Text \= "".
202
+
203
+ fallback_plan_steps_from_strategy(Strategy, [plan_step{description: Strategy, tools: Tools, reasoning: "none", recipe: "none"}]) :-
204
+ default_plan_tools(Tools).
187
205
 
188
206
  %% assemble_multi_strategy_dml(+StrategyPlans, -PlanDml)
189
207
  assemble_multi_strategy_dml(StrategyPlans, PlanDml) :-
@@ -197,10 +215,14 @@ build_strategy_clauses([Plan|Rest], Clauses) :-
197
215
  Strategy = Plan.strategy,
198
216
  Steps = Plan.steps,
199
217
  build_system_prompt_for_strategy(Strategy, SystemPrompt),
200
- build_task_lines(Steps, TaskLines),
218
+ build_task_lines(Steps, TaskLines, LastSumVar),
201
219
  format(string(StratOutput), "Starting strategy: ~w", [Strategy]),
202
220
  format(string(StratAnswer), "Vulnerabilities found and reported via strategy: ~w. See .deepclause.tmp/findings.md for details.", [Strategy]),
203
- format(string(Clause), "agent_main :-~n system(~q),~n output(~q),~n~s task(\"If vulnerabilities were found, write a findings report to .deepclause.tmp/findings.md and succeed. If no vulnerabilities were found, fail this task.\"),~n answer(~q).~n~n", [SystemPrompt, StratOutput, TaskLines, StratAnswer]),
221
+ ( LastSumVar = ""
222
+ -> format(string(VerifyTask), " task(\"If vulnerabilities were found, write a findings report to .deepclause.tmp/findings.md and succeed. If no vulnerabilities were found, fail this task.\"),~n", [])
223
+ ; format(string(VerifyTask), " task(\"Based on the analysis summary: {~w}. If vulnerabilities were found, write a findings report to .deepclause.tmp/findings.md and succeed. If no vulnerabilities were found, fail this task.\"),~n", [LastSumVar])
224
+ ),
225
+ format(string(Clause), "agent_main :-~n system(~q),~n output(~q),~n~s~s answer(~q).~n~n", [SystemPrompt, StratOutput, TaskLines, VerifyTask, StratAnswer]),
204
226
  build_strategy_clauses(Rest, RestClauses),
205
227
  string_concat(Clause, RestClauses, Clauses).
206
228
 
@@ -208,25 +230,35 @@ build_strategy_clauses([Plan|Rest], Clauses) :-
208
230
  build_system_prompt_for_strategy(Strategy, SystemPrompt) :-
209
231
  format(string(SystemPrompt), "You are a security analyst executing a generated DeepClause plan using this strategy:~n~nStrategy: ~w~n~nWorkflow:~n- Start by understanding the codebase structure and identifying the relevant files~n- Read source files and configuration to understand the attack surface~n- Apply the strategy's analysis approach systematically~n- For each finding, record: severity (critical/high/medium/low/info), file path, line number (if applicable), description, and recommendation~n- Write findings to .deepclause.tmp/scratchpad.md (append with >>) so other strategies can see them~n- Read the scratchpad at the start: run_bash('cat .deepclause.tmp/scratchpad.md 2>/dev/null || echo empty')~n- A final verification task runs automatically after your analysis tasks: it asks you to write .deepclause.tmp/findings.md if vulnerabilities were found~n- If no vulnerabilities are found, the findings file is NOT written and this strategy fails — a different strategy is tried automatically~n- Be thorough but avoid false positives — verify each finding before reporting", [Strategy]).
210
232
 
211
- %% build_task_lines(+PlanSteps, -TaskLines)
212
- build_task_lines([], "").
213
- build_task_lines([Step|Rest], TaskLines) :-
214
- build_single_task_line(Step, Line),
215
- build_task_lines(Rest, RestLines),
233
+ %% build_task_lines(+PlanSteps, -TaskLines, -LastSumVar)
234
+ build_task_lines(Steps, TaskLines, LastSumVar) :-
235
+ length(Steps, Count),
236
+ ( Count > 0
237
+ -> format(string(LastSumVar), "Sum~w", [Count])
238
+ ; LastSumVar = ""
239
+ ),
240
+ build_task_lines(Steps, 1, "", TaskLines).
241
+
242
+ build_task_lines([], _, _, "").
243
+ build_task_lines([Step|Rest], Num, PrevSum, TaskLines) :-
244
+ build_single_task_line(Step, Num, PrevSum, Line),
245
+ NextNum is Num + 1,
246
+ format(string(VarName), "Sum~w", [Num]),
247
+ build_task_lines(Rest, NextNum, VarName, RestLines),
216
248
  string_concat(Line, RestLines, TaskLines).
217
249
 
218
- build_single_task_line(Step, Line) :-
250
+ build_single_task_line(Step, Num, PrevSum, Line) :-
219
251
  Desc = Step.description,
252
+ format(string(VarName), "Sum~w", [Num]),
253
+ format(string(DescWithCtx), "~w. Store your findings summary in ~w.", [Desc, VarName]),
220
254
  Tools = Step.tools,
221
255
  Reasoning = Step.reasoning,
222
256
  Recipe = Step.recipe,
223
- ( Tools == all
224
- -> format(string(InnerTask), "task(~q)", [Desc])
225
- ; format(string(InnerTask), "with_tools(~w, task(~q))", [Tools, Desc])
226
- ),
257
+ format(string(BaseTask), "task(~q, string(~w))", [DescWithCtx, VarName]),
258
+ format(string(WithTools), "with_tools(~w, ~w)", [Tools, BaseTask]),
227
259
  ( Reasoning \= "none"
228
- -> format(string(WithReasoning), "with_reasoning(~n ~w~n , ~w)", [InnerTask, Reasoning])
229
- ; WithReasoning = InnerTask
260
+ -> format(string(WithReasoning), "with_reasoning(~n ~w~n , ~w)", [WithTools, Reasoning])
261
+ ; WithReasoning = WithTools
230
262
  ),
231
263
  ( Recipe \= "none"
232
264
  -> format(string(Line), " with_recipe(~n ~w~n , '~w'),~n", [WithReasoning, Recipe])
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deepclause-sdk",
3
- "version": "0.0.83",
3
+ "version": "0.0.86",
4
4
  "description": "DeepClause CLI Tool, TUI and Typescript SDK",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -155,6 +155,10 @@ transform_task_calls((A -> B), Bindings, (TA -> TB)) :- !,
155
155
  transform_task_calls(\+ A, Bindings, \+ TA) :- !,
156
156
  transform_task_calls(A, Bindings, TA).
157
157
 
158
+ %% Transform task/1 to task_named/3 with a hidden Summary variable
159
+ %% This ensures task/1 always produces a summary in the conversation history
160
+ transform_task_calls(task(Desc), _Bindings, task_named(Desc, [_Summary], [typed_var{name: 'Summary', type: string}])) :- !.
161
+
158
162
  %% Transform task/2 to task_named/3
159
163
  transform_task_calls(task(Desc, V1), Bindings, task_named(Desc, [Var1], [Info1])) :- !,
160
164
  extract_var_info(Bindings, V1, Var1, Info1).
@@ -775,9 +779,9 @@ get_reasoning_effort(State, Effort) :-
775
779
  %% Recipe Context Helpers
776
780
  %% ============================================================
777
781
 
778
- %% load_recipe_content(+Query, -Content)
779
- load_recipe_content(Query, RecipeContent) :-
780
- exec(consult_recipes(query: Query, max_results: 1), Result),
782
+ %% load_recipe_content(+Query, +StateIn, -StateOut, -Content)
783
+ load_recipe_content(Query, StateIn, StateOut, RecipeContent) :-
784
+ mi_call(exec(consult_recipes(query: Query, max_results: 1), Result), StateIn, StateOut),
781
785
  get_dict(matches, Result, Matches),
782
786
  ( Matches = [Match|_]
783
787
  -> get_dict(content, Match, RecipeContent)
@@ -1480,8 +1484,8 @@ mi_call(with_reasoning(Goal, Effort), StateIn, StateOut) :-
1480
1484
  %% Run Goal with a recipe loaded as transient context (not persisted to memory).
1481
1485
  mi_call(with_recipe(Goal, Query), StateIn, StateOut) :-
1482
1486
  !,
1483
- load_recipe_content(Query, RecipeContent),
1484
- set_recipe_context(StateIn, RecipeContent, ScopedState),
1487
+ load_recipe_content(Query, StateIn, StateAfterRecipeLoad, RecipeContent),
1488
+ set_recipe_context(StateAfterRecipeLoad, RecipeContent, ScopedState),
1485
1489
  mi_call(Goal, ScopedState, StateWithRecipe),
1486
1490
  clear_recipe_context(StateWithRecipe, StateOut).
1487
1491