deepclause-sdk 0.0.10 → 0.0.12

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.
@@ -241,6 +241,7 @@ process_clause((:- Directive), SessionId) :-
241
241
  %% Handle tool/2 with description: tool(Head, Description) :- Body
242
242
  process_clause((tool(ToolHead, Description) :- Body), SessionId) :-
243
243
  !,
244
+ (catch(expand_dict_dots(Body, ExpandedBody), _, fail) -> true ; ExpandedBody = Body),
244
245
  extract_tool_schema(ToolHead, Description, ToolName, Schema),
245
246
  assertz(session_user_tools(SessionId, ToolName)),
246
247
  assertz(session_user_tool_schema(SessionId, ToolName, Schema)),
@@ -248,11 +249,12 @@ process_clause((tool(ToolHead, Description) :- Body), SessionId) :-
248
249
  format(string(SourceCode), "tool(~w, ~q) :-~n ~w.", [ToolHead, Description, Body]),
249
250
  assertz(SessionId:tool_source(ToolName, SourceCode)),
250
251
  % Assert the tool implementation (use just ToolHead for execution)
251
- assertz(SessionId:(tool(ToolHead) :- Body)).
252
+ assertz(SessionId:(tool(ToolHead) :- ExpandedBody)).
252
253
 
253
254
  %% Handle tool/1 without description: tool(Head) :- Body
254
255
  process_clause((tool(ToolHead) :- Body), SessionId) :-
255
256
  !,
257
+ (catch(expand_dict_dots(Body, ExpandedBody), _, fail) -> true ; ExpandedBody = Body),
256
258
  extract_tool_schema(ToolHead, none, ToolName, Schema),
257
259
  assertz(session_user_tools(SessionId, ToolName)),
258
260
  assertz(session_user_tool_schema(SessionId, ToolName, Schema)),
@@ -260,17 +262,86 @@ process_clause((tool(ToolHead) :- Body), SessionId) :-
260
262
  format(string(SourceCode), "tool(~w) :-~n ~w.", [ToolHead, Body]),
261
263
  assertz(SessionId:tool_source(ToolName, SourceCode)),
262
264
  % Assert the tool implementation
263
- assertz(SessionId:(tool(ToolHead) :- Body)).
265
+ assertz(SessionId:(tool(ToolHead) :- ExpandedBody)).
264
266
 
265
267
  process_clause((Head :- Body), SessionId) :-
266
268
  !,
267
- % Regular clause - assert it
268
- assertz(SessionId:(Head :- Body)).
269
+ % Expand dict dot-notation (Dict.Key → get_dict), then assert
270
+ ( catch(expand_dict_dots(Body, ExpandedBody), _, fail)
271
+ -> true
272
+ ; ExpandedBody = Body
273
+ ),
274
+ assertz(SessionId:(Head :- ExpandedBody)).
269
275
 
270
276
  process_clause(Fact, SessionId) :-
271
277
  % Simple fact
272
278
  assertz(SessionId:Fact).
273
279
 
280
+ %% ============================================================
281
+ %% Dict Dot-Notation Expansion (compile-time)
282
+ %% ============================================================
283
+ %% SWI-Prolog's dict functional notation (Dict.Key) is normally
284
+ %% expanded by goal_expansion during compilation. Since DML clauses
285
+ %% are loaded via assertz (no goal expansion), we must expand
286
+ %% Dict.Key → get_dict(Key, Dict, Value) manually before asserting.
287
+ %%
288
+ %% Handles:
289
+ %% Dict.Key = Value → get_dict(Key, Dict, Value)
290
+ %% Value = Dict.Key → get_dict(Key, Dict, Value)
291
+ %% Dict.Key == Value → get_dict(Key, Dict, Tmp), Tmp == Value
292
+ %% Value == Dict.Key → get_dict(Key, Dict, Tmp), Tmp == Value
293
+
294
+ %% expand_dict_dots(+GoalIn, -GoalOut)
295
+ %% Top-level expansion for goal bodies
296
+ expand_dict_dots(Var, Var) :- var(Var), !.
297
+ expand_dict_dots((A, B), (EA, EB)) :- !, expand_dict_dots(A, EA), expand_dict_dots(B, EB).
298
+ expand_dict_dots((A ; B), (EA ; EB)) :- !, expand_dict_dots(A, EA), expand_dict_dots(B, EB).
299
+ expand_dict_dots((A -> B), (EA -> EB)) :- !, expand_dict_dots(A, EA), expand_dict_dots(B, EB).
300
+
301
+ %% Unification with dict dot access: Dict.Key = Value
302
+ expand_dict_dots(Goal, Result) :-
303
+ nonvar(Goal),
304
+ functor(Goal, =, 2),
305
+ !,
306
+ arg(1, Goal, A),
307
+ arg(2, Goal, B),
308
+ ( nonvar(A), is_dot_access(A, Dict, Key)
309
+ -> Result = get_dict(Key, Dict, B)
310
+ ; nonvar(B), is_dot_access(B, Dict, Key)
311
+ -> Result = get_dict(Key, Dict, A)
312
+ ; Result = Goal
313
+ ).
314
+
315
+ %% Equality check with dict dot access: Dict.Key == Value
316
+ expand_dict_dots(Goal, Result) :-
317
+ nonvar(Goal),
318
+ functor(Goal, ==, 2),
319
+ !,
320
+ arg(1, Goal, A),
321
+ arg(2, Goal, B),
322
+ ( nonvar(A), is_dot_access(A, Dict, Key)
323
+ -> Result = (get_dict(Key, Dict, Tmp), Tmp == B)
324
+ ; nonvar(B), is_dot_access(B, Dict, Key)
325
+ -> Result = (get_dict(Key, Dict, Tmp), Tmp == A)
326
+ ; Result = Goal
327
+ ).
328
+
329
+ expand_dict_dots(Goal, Goal).
330
+
331
+ %% is_dot_access(+Term, -Dict, -Key)
332
+ %% Check if Term is a dict dot-access expression: '.'(Dict, Key) where Key is atom
333
+ is_dot_access(Term, Dict, Key) :-
334
+ compound(Term),
335
+ compound_name_arity(Term, '.', 2),
336
+ arg(1, Term, Dict),
337
+ arg(2, Term, Key),
338
+ atom(Key).
339
+
340
+ %% expand_dict_expr(+ExprIn, -ExprOut)
341
+ %% Expand dict access in value-level expressions (just pass through for now)
342
+ expand_dict_expr(Var, Var) :- var(Var), !.
343
+ expand_dict_expr(Expr, Expr).
344
+
274
345
  %% ============================================================
275
346
  %% Tool Schema Extraction
276
347
  %% ============================================================
@@ -1585,9 +1656,10 @@ consult_process_term((tool(ToolHead) :- Body), SessionId) :-
1585
1656
  assertz(SessionId:(tool(ToolHead) :- Body)).
1586
1657
 
1587
1658
  consult_process_term((Head :- Body), SessionId) :-
1588
- % Assert a clause
1659
+ % Expand dict dot-notation, then assert
1589
1660
  !,
1590
- assertz(SessionId:(Head :- Body)).
1661
+ (catch(expand_dict_dots(Body, ExpandedBody), _, fail) -> true ; ExpandedBody = Body),
1662
+ assertz(SessionId:(Head :- ExpandedBody)).
1591
1663
 
1592
1664
  consult_process_term(Head, SessionId) :-
1593
1665
  % Assert a fact
package/dist/runner.d.ts CHANGED
@@ -58,6 +58,11 @@ export declare class DMLRunner {
58
58
  * Build params dictionary for Prolog (named parameters)
59
59
  */
60
60
  private buildParams;
61
+ /**
62
+ * Quote a string as a Prolog atom if it contains non-atom characters.
63
+ * Valid unquoted atoms: start with lowercase letter, contain only [a-zA-Z0-9_]
64
+ */
65
+ private quoteAtom;
61
66
  /**
62
67
  * Convert JS value to Prolog term string
63
68
  */
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAY,MAAM,YAAY,CAAC;AA2DhG,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAoCD;;;;;;;GAOG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,aAAa,CAAuB;gBAEhC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa;IAKtD;;OAEG;IACH,SAAS,IAAI,aAAa,EAAE;IAI5B;;OAEG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,cAAc,CAAC,QAAQ,CAAC;IAkI/E;;OAEG;IACH,OAAO,CAAC,SAAS;IAsBjB;;OAEG;IACH,OAAO,CAAC,SAAS;IAMjB;;OAEG;IACH,OAAO,CAAC,WAAW;IAmBnB;;OAEG;IACH,OAAO,CAAC,YAAY;IA2BpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAkBpB;;OAEG;IACH,OAAO,CAAC,UAAU;IA4BlB;;OAEG;YACY,eAAe;IA4M9B;;OAEG;YACY,UAAU;IA2CzB;;OAEG;IACH,OAAO,CAAC,YAAY;IA6HpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwCzB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAwDvB;;;;;;;;;;;;;;OAcG;YACW,mBAAmB;IAuSjC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAoBhC;;OAEG;IACH,OAAO,CAAC,eAAe;IAqBvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAkBtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwB3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,KAAK;IAWb;;OAEG;IACH,OAAO,CAAC,OAAO;IAWf;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAY,MAAM,YAAY,CAAC;AA2DhG,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAoCD;;;;;;;GAOG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,aAAa,CAAuB;gBAEhC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa;IAKtD;;OAEG;IACH,SAAS,IAAI,aAAa,EAAE;IAI5B;;OAEG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,cAAc,CAAC,QAAQ,CAAC;IAkI/E;;OAEG;IACH,OAAO,CAAC,SAAS;IAsBjB;;OAEG;IACH,OAAO,CAAC,SAAS;IAMjB;;OAEG;IACH,OAAO,CAAC,WAAW;IAmBnB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAQjB;;OAEG;IACH,OAAO,CAAC,YAAY;IA2BpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAkBpB;;OAEG;IACH,OAAO,CAAC,UAAU;IA4BlB;;OAEG;YACY,eAAe;IA4M9B;;OAEG;YACY,UAAU;IA2CzB;;OAEG;IACH,OAAO,CAAC,YAAY;IA6HpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwCzB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAwDvB;;;;;;;;;;;;;;OAcG;YACW,mBAAmB;IAuSjC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAoBhC;;OAEG;IACH,OAAO,CAAC,eAAe;IAqBvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAkBtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwB3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,KAAK;IAWb;;OAEG;IACH,OAAO,CAAC,OAAO;IAWf;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
package/dist/runner.js CHANGED
@@ -249,6 +249,17 @@ export class DMLRunner {
249
249
  .join(', ');
250
250
  return `params{${entries}}`;
251
251
  }
252
+ /**
253
+ * Quote a string as a Prolog atom if it contains non-atom characters.
254
+ * Valid unquoted atoms: start with lowercase letter, contain only [a-zA-Z0-9_]
255
+ */
256
+ quoteAtom(str) {
257
+ if (/^[a-z][a-zA-Z0-9_]*$/.test(str)) {
258
+ return str;
259
+ }
260
+ // Quote and escape internal single quotes
261
+ return `'${str.replace(/'/g, "''")}'`;
262
+ }
252
263
  /**
253
264
  * Convert JS value to Prolog term string
254
265
  */
@@ -272,7 +283,7 @@ export class DMLRunner {
272
283
  }
273
284
  if (value && typeof value === 'object') {
274
285
  const entries = Object.entries(value)
275
- .map(([k, v]) => `${k}: ${this.toPrologTerm(v)}`)
286
+ .map(([k, v]) => `${this.quoteAtom(k)}: ${this.toPrologTerm(v)}`)
276
287
  .join(', ');
277
288
  return `dict{${entries}}`;
278
289
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deepclause-sdk",
3
- "version": "0.0.10",
3
+ "version": "0.0.12",
4
4
  "description": "DeepClause CLI Tool and Typescript SDK",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -241,6 +241,7 @@ process_clause((:- Directive), SessionId) :-
241
241
  %% Handle tool/2 with description: tool(Head, Description) :- Body
242
242
  process_clause((tool(ToolHead, Description) :- Body), SessionId) :-
243
243
  !,
244
+ (catch(expand_dict_dots(Body, ExpandedBody), _, fail) -> true ; ExpandedBody = Body),
244
245
  extract_tool_schema(ToolHead, Description, ToolName, Schema),
245
246
  assertz(session_user_tools(SessionId, ToolName)),
246
247
  assertz(session_user_tool_schema(SessionId, ToolName, Schema)),
@@ -248,11 +249,12 @@ process_clause((tool(ToolHead, Description) :- Body), SessionId) :-
248
249
  format(string(SourceCode), "tool(~w, ~q) :-~n ~w.", [ToolHead, Description, Body]),
249
250
  assertz(SessionId:tool_source(ToolName, SourceCode)),
250
251
  % Assert the tool implementation (use just ToolHead for execution)
251
- assertz(SessionId:(tool(ToolHead) :- Body)).
252
+ assertz(SessionId:(tool(ToolHead) :- ExpandedBody)).
252
253
 
253
254
  %% Handle tool/1 without description: tool(Head) :- Body
254
255
  process_clause((tool(ToolHead) :- Body), SessionId) :-
255
256
  !,
257
+ (catch(expand_dict_dots(Body, ExpandedBody), _, fail) -> true ; ExpandedBody = Body),
256
258
  extract_tool_schema(ToolHead, none, ToolName, Schema),
257
259
  assertz(session_user_tools(SessionId, ToolName)),
258
260
  assertz(session_user_tool_schema(SessionId, ToolName, Schema)),
@@ -260,17 +262,86 @@ process_clause((tool(ToolHead) :- Body), SessionId) :-
260
262
  format(string(SourceCode), "tool(~w) :-~n ~w.", [ToolHead, Body]),
261
263
  assertz(SessionId:tool_source(ToolName, SourceCode)),
262
264
  % Assert the tool implementation
263
- assertz(SessionId:(tool(ToolHead) :- Body)).
265
+ assertz(SessionId:(tool(ToolHead) :- ExpandedBody)).
264
266
 
265
267
  process_clause((Head :- Body), SessionId) :-
266
268
  !,
267
- % Regular clause - assert it
268
- assertz(SessionId:(Head :- Body)).
269
+ % Expand dict dot-notation (Dict.Key → get_dict), then assert
270
+ ( catch(expand_dict_dots(Body, ExpandedBody), _, fail)
271
+ -> true
272
+ ; ExpandedBody = Body
273
+ ),
274
+ assertz(SessionId:(Head :- ExpandedBody)).
269
275
 
270
276
  process_clause(Fact, SessionId) :-
271
277
  % Simple fact
272
278
  assertz(SessionId:Fact).
273
279
 
280
+ %% ============================================================
281
+ %% Dict Dot-Notation Expansion (compile-time)
282
+ %% ============================================================
283
+ %% SWI-Prolog's dict functional notation (Dict.Key) is normally
284
+ %% expanded by goal_expansion during compilation. Since DML clauses
285
+ %% are loaded via assertz (no goal expansion), we must expand
286
+ %% Dict.Key → get_dict(Key, Dict, Value) manually before asserting.
287
+ %%
288
+ %% Handles:
289
+ %% Dict.Key = Value → get_dict(Key, Dict, Value)
290
+ %% Value = Dict.Key → get_dict(Key, Dict, Value)
291
+ %% Dict.Key == Value → get_dict(Key, Dict, Tmp), Tmp == Value
292
+ %% Value == Dict.Key → get_dict(Key, Dict, Tmp), Tmp == Value
293
+
294
+ %% expand_dict_dots(+GoalIn, -GoalOut)
295
+ %% Top-level expansion for goal bodies
296
+ expand_dict_dots(Var, Var) :- var(Var), !.
297
+ expand_dict_dots((A, B), (EA, EB)) :- !, expand_dict_dots(A, EA), expand_dict_dots(B, EB).
298
+ expand_dict_dots((A ; B), (EA ; EB)) :- !, expand_dict_dots(A, EA), expand_dict_dots(B, EB).
299
+ expand_dict_dots((A -> B), (EA -> EB)) :- !, expand_dict_dots(A, EA), expand_dict_dots(B, EB).
300
+
301
+ %% Unification with dict dot access: Dict.Key = Value
302
+ expand_dict_dots(Goal, Result) :-
303
+ nonvar(Goal),
304
+ functor(Goal, =, 2),
305
+ !,
306
+ arg(1, Goal, A),
307
+ arg(2, Goal, B),
308
+ ( nonvar(A), is_dot_access(A, Dict, Key)
309
+ -> Result = get_dict(Key, Dict, B)
310
+ ; nonvar(B), is_dot_access(B, Dict, Key)
311
+ -> Result = get_dict(Key, Dict, A)
312
+ ; Result = Goal
313
+ ).
314
+
315
+ %% Equality check with dict dot access: Dict.Key == Value
316
+ expand_dict_dots(Goal, Result) :-
317
+ nonvar(Goal),
318
+ functor(Goal, ==, 2),
319
+ !,
320
+ arg(1, Goal, A),
321
+ arg(2, Goal, B),
322
+ ( nonvar(A), is_dot_access(A, Dict, Key)
323
+ -> Result = (get_dict(Key, Dict, Tmp), Tmp == B)
324
+ ; nonvar(B), is_dot_access(B, Dict, Key)
325
+ -> Result = (get_dict(Key, Dict, Tmp), Tmp == A)
326
+ ; Result = Goal
327
+ ).
328
+
329
+ expand_dict_dots(Goal, Goal).
330
+
331
+ %% is_dot_access(+Term, -Dict, -Key)
332
+ %% Check if Term is a dict dot-access expression: '.'(Dict, Key) where Key is atom
333
+ is_dot_access(Term, Dict, Key) :-
334
+ compound(Term),
335
+ compound_name_arity(Term, '.', 2),
336
+ arg(1, Term, Dict),
337
+ arg(2, Term, Key),
338
+ atom(Key).
339
+
340
+ %% expand_dict_expr(+ExprIn, -ExprOut)
341
+ %% Expand dict access in value-level expressions (just pass through for now)
342
+ expand_dict_expr(Var, Var) :- var(Var), !.
343
+ expand_dict_expr(Expr, Expr).
344
+
274
345
  %% ============================================================
275
346
  %% Tool Schema Extraction
276
347
  %% ============================================================
@@ -1585,9 +1656,10 @@ consult_process_term((tool(ToolHead) :- Body), SessionId) :-
1585
1656
  assertz(SessionId:(tool(ToolHead) :- Body)).
1586
1657
 
1587
1658
  consult_process_term((Head :- Body), SessionId) :-
1588
- % Assert a clause
1659
+ % Expand dict dot-notation, then assert
1589
1660
  !,
1590
- assertz(SessionId:(Head :- Body)).
1661
+ (catch(expand_dict_dots(Body, ExpandedBody), _, fail) -> true ; ExpandedBody = Body),
1662
+ assertz(SessionId:(Head :- ExpandedBody)).
1591
1663
 
1592
1664
  consult_process_term(Head, SessionId) :-
1593
1665
  % Assert a fact