deepclause-sdk 0.1.0 → 0.1.1

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.
Files changed (106) hide show
  1. package/README.md +83 -12
  2. package/dist/agent.d.ts +2 -1
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +1 -0
  5. package/dist/agent.js.map +1 -1
  6. package/dist/cli/config.d.ts +62 -2
  7. package/dist/cli/config.d.ts.map +1 -1
  8. package/dist/cli/config.js +15 -0
  9. package/dist/cli/config.js.map +1 -1
  10. package/dist/cli/index.js +38 -0
  11. package/dist/cli/index.js.map +1 -1
  12. package/dist/cli/repl.d.ts +25 -0
  13. package/dist/cli/repl.d.ts.map +1 -1
  14. package/dist/cli/repl.js +165 -5
  15. package/dist/cli/repl.js.map +1 -1
  16. package/dist/cli/run.d.ts.map +1 -1
  17. package/dist/cli/run.js +6 -0
  18. package/dist/cli/run.js.map +1 -1
  19. package/dist/cli/visualize.d.ts +4 -0
  20. package/dist/cli/visualize.d.ts.map +1 -1
  21. package/dist/cli/visualize.js +29 -4
  22. package/dist/cli/visualize.js.map +1 -1
  23. package/dist/prolog/bridge.d.ts +3 -1
  24. package/dist/prolog/bridge.d.ts.map +1 -1
  25. package/dist/prolog/bridge.js +2 -0
  26. package/dist/prolog/bridge.js.map +1 -1
  27. package/dist/prolog-src/deepclause_mi.pl +196 -9
  28. package/dist/repl/agent.d.ts +18 -0
  29. package/dist/repl/agent.d.ts.map +1 -1
  30. package/dist/repl/agent.js +47 -3
  31. package/dist/repl/agent.js.map +1 -1
  32. package/dist/repl/backend.d.ts +31 -0
  33. package/dist/repl/backend.d.ts.map +1 -1
  34. package/dist/repl/backend.js +122 -77
  35. package/dist/repl/backend.js.map +1 -1
  36. package/dist/repl/harness-tools.d.ts +25 -0
  37. package/dist/repl/harness-tools.d.ts.map +1 -1
  38. package/dist/repl/harness-tools.js +73 -2
  39. package/dist/repl/harness-tools.js.map +1 -1
  40. package/dist/repl/imagegen.d.ts +29 -0
  41. package/dist/repl/imagegen.d.ts.map +1 -0
  42. package/dist/repl/imagegen.js +84 -0
  43. package/dist/repl/imagegen.js.map +1 -0
  44. package/dist/repl/index.d.ts +12 -2
  45. package/dist/repl/index.d.ts.map +1 -1
  46. package/dist/repl/index.js +5 -0
  47. package/dist/repl/index.js.map +1 -1
  48. package/dist/repl/model-resolver.d.ts +59 -0
  49. package/dist/repl/model-resolver.d.ts.map +1 -0
  50. package/dist/repl/model-resolver.js +156 -0
  51. package/dist/repl/model-resolver.js.map +1 -0
  52. package/dist/repl/render.d.ts +28 -1
  53. package/dist/repl/render.d.ts.map +1 -1
  54. package/dist/repl/render.js +94 -1
  55. package/dist/repl/render.js.map +1 -1
  56. package/dist/repl/session.d.ts +68 -0
  57. package/dist/repl/session.d.ts.map +1 -1
  58. package/dist/repl/session.js +206 -8
  59. package/dist/repl/session.js.map +1 -1
  60. package/dist/repl/tui/transcript.d.ts +2 -0
  61. package/dist/repl/tui/transcript.d.ts.map +1 -1
  62. package/dist/repl/tui/transcript.js +16 -0
  63. package/dist/repl/tui/transcript.js.map +1 -1
  64. package/dist/runner.d.ts +13 -2
  65. package/dist/runner.d.ts.map +1 -1
  66. package/dist/runner.js +101 -16
  67. package/dist/runner.js.map +1 -1
  68. package/dist/system/assets/docs/AGENT_PROMPT.md +75 -1
  69. package/dist/system/assets/docs/DML_REFERENCE.md +32 -0
  70. package/dist/types.d.ts +56 -1
  71. package/dist/types.d.ts.map +1 -1
  72. package/dist/visualize/ascii.d.ts +55 -0
  73. package/dist/visualize/ascii.d.ts.map +1 -0
  74. package/dist/visualize/ascii.js +242 -0
  75. package/dist/visualize/ascii.js.map +1 -0
  76. package/dist/visualize/display.d.ts +24 -0
  77. package/dist/visualize/display.d.ts.map +1 -0
  78. package/dist/visualize/display.js +29 -0
  79. package/dist/visualize/display.js.map +1 -0
  80. package/dist/visualize/graphics.d.ts +35 -0
  81. package/dist/visualize/graphics.d.ts.map +1 -0
  82. package/dist/visualize/graphics.js +96 -0
  83. package/dist/visualize/graphics.js.map +1 -0
  84. package/dist/visualize/image.d.ts +38 -0
  85. package/dist/visualize/image.d.ts.map +1 -0
  86. package/dist/visualize/image.js +95 -0
  87. package/dist/visualize/image.js.map +1 -0
  88. package/dist/visualize/index.d.ts +7 -0
  89. package/dist/visualize/index.d.ts.map +1 -1
  90. package/dist/visualize/index.js +9 -0
  91. package/dist/visualize/index.js.map +1 -1
  92. package/dist/visualize/raster.d.ts +23 -0
  93. package/dist/visualize/raster.d.ts.map +1 -0
  94. package/dist/visualize/raster.js +47 -0
  95. package/dist/visualize/raster.js.map +1 -0
  96. package/dist/visualize/svg.d.ts +39 -0
  97. package/dist/visualize/svg.d.ts.map +1 -0
  98. package/dist/visualize/svg.js +148 -0
  99. package/dist/visualize/svg.js.map +1 -0
  100. package/dist/visualize/transcode.d.ts +13 -0
  101. package/dist/visualize/transcode.d.ts.map +1 -0
  102. package/dist/visualize/transcode.js +40 -0
  103. package/dist/visualize/transcode.js.map +1 -0
  104. package/docs/images/repl.png +0 -0
  105. package/package.json +7 -5
  106. package/src/prolog-src/deepclause_mi.pl +196 -9
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/prolog/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/prolog/bridge.ts"],"names":[],"mappings":"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"}
@@ -71,6 +71,7 @@
71
71
  repl_user_predicates/2,
72
72
  repl_user_predicates_text/2,
73
73
  repl_predicate_arities/3,
74
+ repl_probe_nondeterminism/6,
74
75
  repl_set_meta_catalog/2,
75
76
  repl_set_meta_template/2,
76
77
  repl_set_harness_examples/2,
@@ -336,6 +337,7 @@ extract_var_info(Bindings, Term, BareVar, Info) :-
336
337
  ).
337
338
 
338
339
  %% wrapper_type(?Wrapper, ?Type)
340
+ wrapper_type(media, media).
339
341
  wrapper_type(string, string).
340
342
  wrapper_type(integer, integer).
341
343
  wrapper_type(float, number).
@@ -477,6 +479,7 @@ typed_arg(Var, Info, Wrapped) :-
477
479
  typed_arg_type(Type, Var, Info, Wrapped).
478
480
  typed_arg(Var, _, Var).
479
481
 
482
+ typed_arg_type(media, Var, _, media(Var)) :- !.
480
483
  typed_arg_type(string, Var, _, Var) :- !.
481
484
  typed_arg_type(integer, Var, _, integer(Var)) :- !.
482
485
  typed_arg_type(number, Var, _, number(Var)) :- !.
@@ -2052,6 +2055,87 @@ repl_predicate_arities(SessionId, Name, Arities) :-
2052
2055
  Arities0),
2053
2056
  sort(Arities0, Arities).
2054
2057
 
2058
+ %% ============================================================
2059
+ %% Nondeterminism probe (end_turn advisory)
2060
+ %%
2061
+ %% After a commit, the host may probe each changed pure predicate: if calling it
2062
+ %% with fresh variables yields more than a threshold of solutions, the predicate
2063
+ %% is probably missing a commit (`once/1` / `!`) and would flood an `execute`.
2064
+ %% Side-effecting predicates are never run (see repl_impure_name/1), fact tables
2065
+ %% are skipped, and the search is bounded by an inference limit.
2066
+ %% ============================================================
2067
+
2068
+ %% Functors with side effects: model calls, host tools, file IO, DB mutation.
2069
+ repl_impure_name(task). repl_impure_name(prompt). repl_impure_name(exec).
2070
+ repl_impure_name(system). repl_impure_name(user). repl_impure_name(answer).
2071
+ repl_impure_name(input). repl_impure_name(output). repl_impure_name(read_media).
2072
+ repl_impure_name(attach_media). repl_impure_name(save_image). repl_impure_name(gen_image).
2073
+ repl_impure_name(judge). repl_impure_name(choose). repl_impure_name(rate).
2074
+ repl_impure_name(verify). repl_impure_name(probability).
2075
+ repl_impure_name(write_file). repl_impure_name(append_file). repl_impure_name(delete_file).
2076
+ repl_impure_name(make_directory_path). repl_impure_name(open). repl_impure_name(close).
2077
+ repl_impure_name(assert). repl_impure_name(assertz). repl_impure_name(asserta).
2078
+ repl_impure_name(retract). repl_impure_name(retractall).
2079
+ repl_impure_name(consult). repl_impure_name(use_module). repl_impure_name(load_files).
2080
+
2081
+ %% repl_body_impure(+Goal) — true when the goal tree calls a side-effecting name.
2082
+ repl_body_impure(Goal) :-
2083
+ callable(Goal),
2084
+ functor(Goal, Name, _),
2085
+ repl_impure_name(Name),
2086
+ !.
2087
+ repl_body_impure((A, _)) :- repl_body_impure(A).
2088
+ repl_body_impure((_, B)) :- repl_body_impure(B).
2089
+ repl_body_impure((A ; B)) :- ( repl_body_impure(A) ; repl_body_impure(B) ).
2090
+ repl_body_impure((A -> B)) :- ( repl_body_impure(A) ; repl_body_impure(B) ).
2091
+ repl_body_impure(\+ Goal) :- repl_body_impure(Goal).
2092
+ repl_body_impure(once(Goal)) :- repl_body_impure(Goal).
2093
+ repl_body_impure(ignore(Goal)) :- repl_body_impure(Goal).
2094
+ repl_body_impure(forall(Gen, Action)) :- ( repl_body_impure(Gen) ; repl_body_impure(Action) ).
2095
+ repl_body_impure(catch(Goal, _, Recovery)) :- ( repl_body_impure(Goal) ; repl_body_impure(Recovery) ).
2096
+ repl_body_impure(findall(_, Goal, _)) :- repl_body_impure(Goal).
2097
+ repl_body_impure(findall(_, Goal, _, _)) :- repl_body_impure(Goal).
2098
+ repl_body_impure(call_with_inference_limit(Goal, _, _)) :- repl_body_impure(Goal).
2099
+ repl_body_impure(with_output_to(_, Goal)) :- repl_body_impure(Goal).
2100
+ repl_body_impure(_:Goal) :- repl_body_impure(Goal).
2101
+
2102
+ repl_predicate_pure(SessionId, Name, Arity) :-
2103
+ functor(Head, Name, Arity),
2104
+ \+ ( clause(SessionId:Head, Body), repl_body_impure(Body) ).
2105
+
2106
+ %% True when the predicate has at least one clause with a real body (not a fact).
2107
+ repl_predicate_has_rule(SessionId, Name, Arity) :-
2108
+ functor(Head, Name, Arity),
2109
+ clause(SessionId:Head, Body),
2110
+ Body \== true,
2111
+ !.
2112
+
2113
+ %% repl_probe_nondeterminism(+SessionId, +Name, +Arity, +Threshold, +Bound, -Result)
2114
+ %% Result: one | many | timeout | data | unsafe | removed | error.
2115
+ repl_probe_nondeterminism(SessionId, Name, Arity, Threshold, Bound, Result) :-
2116
+ ( \+ current_predicate(SessionId:Name/Arity)
2117
+ -> Result = removed
2118
+ ; \+ repl_predicate_has_rule(SessionId, Name, Arity)
2119
+ -> Result = data
2120
+ ; \+ repl_predicate_pure(SessionId, Name, Arity)
2121
+ -> Result = unsafe
2122
+ ; functor(Head, Name, Arity),
2123
+ N is Threshold + 1,
2124
+ catch(
2125
+ ( with_output_to(string(_),
2126
+ call_with_inference_limit(call_nth(SessionId:Head, N), Bound, R)),
2127
+ ( R == false -> Result = one
2128
+ ; R == inference_limit_exceeded -> Result = timeout
2129
+ ; R == true -> Result = many
2130
+ ; R == (!) -> Result = many % success is returned as `!` in this build
2131
+ ; Result = error
2132
+ )
2133
+ ),
2134
+ _,
2135
+ Result = error
2136
+ )
2137
+ ).
2138
+
2055
2139
  %% repl_history_listing(+SessionId)
2056
2140
  %% Human-readable tail for `listing(history)`.
2057
2141
  repl_history_listing(SessionId) :-
@@ -2463,8 +2547,15 @@ step_engine(SessionId, Status, Content, Payload) :-
2463
2547
 
2464
2548
  %% process_engine_result(+Result, -Status, -Content, -Payload)
2465
2549
  process_engine_result(output(Text), output, Text, none) :- !.
2550
+ process_engine_result(media(Payload), media, '', Payload) :- is_dict(Payload), !.
2466
2551
  process_engine_result(log(Text), log, Text, none) :- !.
2467
2552
  process_engine_result(answer(Text), answer, Text, none) :- !.
2553
+ %% Current 8-arg format (with model spec from with_model/2)
2554
+ process_engine_result(request_agent_loop(Desc, Vars, Tools, Memory, ToolScope, ReasoningEffort, RecipeContext, ModelSpec), request_agent_loop, '',
2555
+ payload{taskDescription: Desc, outputVars: Vars, userTools: Tools, memory: Memory, toolScope: ToolScope, reasoningEffort: ReasoningEffort, recipeContext: RecipeContext, modelSpec: ModelSpec}) :- !.
2556
+ %% Prompt-family 6-arg format (tool scope + model spec; no reasoning/recipe)
2557
+ process_engine_result(request_agent_loop(Desc, Vars, Tools, Memory, ToolScope, ModelSpec), request_agent_loop, '',
2558
+ payload{taskDescription: Desc, outputVars: Vars, userTools: Tools, memory: Memory, toolScope: ToolScope, reasoningEffort: none, recipeContext: "", modelSpec: ModelSpec}) :- !.
2468
2559
  %% Note: Memory and tool scope are now passed in the payload for the agent loop
2469
2560
  process_engine_result(request_agent_loop(Desc, Vars, Tools, Memory, ToolScope, ReasoningEffort, RecipeContext), request_agent_loop, '',
2470
2561
  payload{taskDescription: Desc, outputVars: Vars, userTools: Tools, memory: Memory, toolScope: ToolScope, reasoningEffort: ReasoningEffort, recipeContext: RecipeContext}) :- !.
@@ -2476,10 +2567,14 @@ process_engine_result(request_agent_loop(Desc, Vars, Tools, Memory), request_age
2476
2567
  payload{taskDescription: Desc, outputVars: Vars, userTools: Tools, memory: Memory, toolScope: none, reasoningEffort: none, recipeContext: ""}) :- !.
2477
2568
  process_engine_result(request_exec(Tool, Args), request_exec, '',
2478
2569
  payload{toolName: Tool, args: Args}) :- !.
2570
+ process_engine_result(request_sample_token(Prompt, Allowed, ModelSpec), request_sample_token, '',
2571
+ payload{prompt: Prompt, allowedTokens: Allowed, modelSpec: ModelSpec}) :- !.
2479
2572
  process_engine_result(request_sample_token(Prompt, Allowed), request_sample_token, '',
2480
- payload{prompt: Prompt, allowedTokens: Allowed}) :- !.
2573
+ payload{prompt: Prompt, allowedTokens: Allowed, modelSpec: none}) :- !.
2574
+ process_engine_result(request_llm(Messages, ModelSpec), request_llm, '',
2575
+ payload{messages: Messages, modelSpec: ModelSpec}) :- !.
2481
2576
  process_engine_result(request_llm(Messages), request_llm, '',
2482
- payload{messages: Messages}) :- !.
2577
+ payload{messages: Messages, modelSpec: none}) :- !.
2483
2578
  process_engine_result(request_judgment(Payload), request_judgment, '', Payload) :- !.
2484
2579
  %% Tool result from inline tool execution
2485
2580
  process_engine_result(tool_result(Result), tool_result, '',
@@ -2714,6 +2809,25 @@ get_reasoning_effort(State, Effort) :-
2714
2809
  ; Effort = none
2715
2810
  ).
2716
2811
 
2812
+ %% set_model_state(+StateIn, +Spec, -StateOut)
2813
+ set_model_state(StateIn, Spec, StateOut) :-
2814
+ StateOut = StateIn.put(model_spec, Spec).
2815
+
2816
+ %% clear_model_state(+StateIn, -StateOut)
2817
+ clear_model_state(StateIn, StateOut) :-
2818
+ ( get_dict(model_spec, StateIn, _)
2819
+ -> del_dict(model_spec, StateIn, _, StateOut)
2820
+ ; StateOut = StateIn
2821
+ ).
2822
+
2823
+ %% get_model_spec(+State, -Spec)
2824
+ %% `none` means "no override" (use the session model).
2825
+ get_model_spec(State, Spec) :-
2826
+ ( get_dict(model_spec, State, Spec)
2827
+ -> true
2828
+ ; Spec = none
2829
+ ).
2830
+
2717
2831
  %% ============================================================
2718
2832
  %% Recipe Context Helpers
2719
2833
  %% ============================================================
@@ -3090,8 +3204,9 @@ mi_call(task(Desc), StateIn, StateOut) :-
3090
3204
  get_tool_scope(StateIn, ToolScope),
3091
3205
  get_reasoning_effort(StateIn, ReasoningEffort),
3092
3206
  get_recipe_context(StateIn, RecipeContext),
3207
+ get_model_spec(StateIn, ModelSpec),
3093
3208
  % Yield request with current memory and tool scope
3094
- engine_yield(request_agent_loop(InterpDesc, [], UserTools, Memory, ToolScope, ReasoningEffort, RecipeContext)),
3209
+ engine_yield(request_agent_loop(InterpDesc, [], UserTools, Memory, ToolScope, ReasoningEffort, RecipeContext, ModelSpec)),
3095
3210
  % Handle signals (tool calls) until agent_done
3096
3211
  handle_agent_signals(SessionId, StateIn, StateAfterAgent),
3097
3212
  session_agent_result(SessionId, Result),
@@ -3161,7 +3276,8 @@ mi_call(prompt(Desc), StateIn, StateOut) :-
3161
3276
  get_depth(StateIn, Depth),
3162
3277
  add_trace_entry(SessionId, llm_call, prompt, [InterpDesc], Depth),
3163
3278
  % prompt/N is a simple LLM call - no tools, no tool scope
3164
- engine_yield(request_agent_loop(InterpDesc, [], [], [], none)),
3279
+ get_model_spec(StateIn, ModelSpec),
3280
+ engine_yield(request_agent_loop(InterpDesc, [], [], [], none, ModelSpec)),
3165
3281
  % Wait for agent_done (no tool calls expected since no tools provided)
3166
3282
  handle_agent_signals(SessionId, StateIn, StateOut),
3167
3283
  session_agent_result(SessionId, Result),
@@ -3196,7 +3312,8 @@ mi_call_prompt_n(Desc, Vars, VarNames, StateIn, StateOut) :-
3196
3312
  get_depth(StateIn, Depth),
3197
3313
  add_trace_entry(SessionId, llm_call, prompt, [InterpDesc], Depth),
3198
3314
  % prompt/N is a simple LLM call - no tools, no tool scope
3199
- engine_yield(request_agent_loop(InterpDesc, VarNames, [], [], none)),
3315
+ get_model_spec(StateIn, ModelSpec),
3316
+ engine_yield(request_agent_loop(InterpDesc, VarNames, [], [], none, ModelSpec)),
3200
3317
  % Wait for agent_done (no tool calls expected since no tools provided)
3201
3318
  handle_agent_signals(SessionId, StateIn, StateOut),
3202
3319
  session_agent_result(SessionId, Result),
@@ -3223,7 +3340,8 @@ mi_call_sample_token(Desc, Allowed, Token, StateIn, StateOut) :-
3223
3340
  get_session_id(SessionId),
3224
3341
  get_depth(StateIn, Depth),
3225
3342
  add_trace_entry(SessionId, llm_call, sample_token, [InterpDesc, Allowed], Depth),
3226
- engine_yield(request_sample_token(InterpDesc, Allowed)),
3343
+ get_model_spec(StateIn, ModelSpec),
3344
+ engine_yield(request_sample_token(InterpDesc, Allowed, ModelSpec)),
3227
3345
  wait_sample_token_signal(SessionId),
3228
3346
  ( session_sample_token_result(SessionId, Result)
3229
3347
  -> retract(session_sample_token_result(SessionId, _)),
@@ -3431,7 +3549,8 @@ mi_call_llm(Messages, Reply, StateIn, StateOut) :-
3431
3549
  get_session_id(SessionId),
3432
3550
  get_depth(StateIn, Depth),
3433
3551
  add_trace_entry(SessionId, llm_call, llm, [Messages], Depth),
3434
- engine_yield(request_llm(Messages)),
3552
+ get_model_spec(StateIn, ModelSpec),
3553
+ engine_yield(request_llm(Messages, ModelSpec)),
3435
3554
  wait_llm_signal(SessionId),
3436
3555
  ( session_llm_result(SessionId, Result)
3437
3556
  -> retract(session_llm_result(SessionId, _)),
@@ -3474,7 +3593,8 @@ mi_call_task_n(Desc, Vars, VarNames, StateIn, StateOut) :-
3474
3593
  get_tool_scope(StateIn, ToolScope),
3475
3594
  get_reasoning_effort(StateIn, ReasoningEffort),
3476
3595
  get_recipe_context(StateIn, RecipeContext),
3477
- engine_yield(request_agent_loop(InterpDesc, VarNames, UserTools, Memory, ToolScope, ReasoningEffort, RecipeContext)),
3596
+ get_model_spec(StateIn, ModelSpec),
3597
+ engine_yield(request_agent_loop(InterpDesc, VarNames, UserTools, Memory, ToolScope, ReasoningEffort, RecipeContext, ModelSpec)),
3478
3598
  % Handle signals (tool calls) until agent_done
3479
3599
  handle_agent_signals(SessionId, StateIn, StateAfterAgent),
3480
3600
  session_agent_result(SessionId, Result),
@@ -3589,6 +3709,17 @@ mi_call(with_reasoning(Goal, Effort), StateIn, StateOut) :-
3589
3709
  mi_call(Goal, ScopedState, StateWithScope),
3590
3710
  clear_reasoning_effort_state(StateWithScope, StateOut).
3591
3711
 
3712
+ %% mi_call(with_model(Spec, Goal), +StateIn, -StateOut)
3713
+ %% Run Goal with a specific model, and optionally a reasoning level. `Spec` is a
3714
+ %% string — "provider:model", "provider:model#reasoning", "model",
3715
+ %% "model#reasoning" — or a model{provider, id, temperature, maxTokens, reasoning}
3716
+ %% dict. It applies to task/N, prompt/N and sample_token/N (not judgments).
3717
+ mi_call(with_model(Spec, Goal), StateIn, StateOut) :-
3718
+ !,
3719
+ set_model_state(StateIn, Spec, ScopedState),
3720
+ mi_call(Goal, ScopedState, StateWithScope),
3721
+ clear_model_state(StateWithScope, StateOut).
3722
+
3592
3723
  %% mi_call(with_recipe(Goal, Query), +StateIn, -StateOut)
3593
3724
  %% Run Goal with a recipe loaded as transient context (not persisted to memory).
3594
3725
  mi_call(with_recipe(Goal, Query), StateIn, StateOut) :-
@@ -3647,9 +3778,39 @@ mi_call(attach_media(Media), StateIn, StateOut) :-
3647
3778
  append(Memory, [Message], NewMemory),
3648
3779
  set_memory(StateIn, NewMemory, StateOut).
3649
3780
 
3781
+ %% mi_call(save_image(+Media, +OutPath), +StateIn, -StateOut)
3782
+ %% Write a media reference to a workspace file: `save_image(media(Path, Mime), "out.png")`,
3783
+ %% `save_image(media{svg: Svg}, "out.svg")`. Parent directories must exist.
3784
+ mi_call(save_image(Media, Out), StateIn, StateIn) :-
3785
+ !,
3786
+ media_dict(Media, Dict),
3787
+ ( get_dict(kind, Dict, inline_svg),
3788
+ get_dict(data, Dict, Svg)
3789
+ -> resolve_workspace_path(Out, OutAbs),
3790
+ open(OutAbs, write, Stream),
3791
+ write(Stream, Svg),
3792
+ close(Stream)
3793
+ ; get_dict(path, Dict, Path),
3794
+ Path \== ""
3795
+ -> resolve_workspace_path(Path, InAbs),
3796
+ resolve_workspace_path(Out, OutAbs),
3797
+ copy_file(InAbs, OutAbs)
3798
+ ; throw(error(domain_error(save_image, Media), save_image/2))
3799
+ ).
3800
+
3650
3801
  %% media_dict(+Media, -Dict)
3651
- %% Accepts media(Path, Mime) or a bare path; normalizes to the storage dict.
3802
+ %% Normalizes an image reference for display/attachment:
3803
+ %% media(Path, Mime) | media(Path) | a bare Path string
3804
+ %% media{path: Path} | media{path: Path, mime: Mime}
3805
+ %% media{svg: SvgString} (inline SVG)
3806
+ %% media{data: Base64} | media{data: Base64, mime: Mime} (inline bytes)
3652
3807
  media_dict(media(Path, Mime), media{path: Path, mime: Mime}) :- !.
3808
+ media_dict(media(Path), media{path: Path, mime: Mime}) :- !, media_mime(Path, Mime).
3809
+ media_dict(media{path: Path, mime: Mime}, media{path: Path, mime: Mime}) :- !.
3810
+ media_dict(media{path: Path}, media{path: Path, mime: Mime}) :- !, media_mime(Path, Mime).
3811
+ media_dict(media{svg: Svg}, media{path: "", mime: "image/svg+xml", kind: inline_svg, data: Svg}) :- !.
3812
+ media_dict(media{data: Data, mime: Mime}, media{path: "", mime: Mime, kind: inline_data, data: Data}) :- !.
3813
+ media_dict(media{data: Data}, media{path: "", mime: "image/png", kind: inline_data, data: Data}) :- !.
3653
3814
  media_dict(Path, media{path: Path, mime: Mime}) :- media_mime(Path, Mime).
3654
3815
 
3655
3816
  %% media_mime(+Path, -Mime)
@@ -3657,6 +3818,7 @@ media_dict(Path, media{path: Path, mime: Mime}) :- media_mime(Path, Mime).
3657
3818
  media_mime(Path, Mime) :-
3658
3819
  ( string(Path) -> atom_string(Atom, Path) ; Atom = Path ),
3659
3820
  ( sub_atom(Atom, _, _, 0, '.png') -> Mime = "image/png"
3821
+ ; sub_atom(Atom, _, _, 0, '.svg') -> Mime = "image/svg+xml"
3660
3822
  ; sub_atom(Atom, _, _, 0, '.jpg') -> Mime = "image/jpeg"
3661
3823
  ; sub_atom(Atom, _, _, 0, '.jpeg') -> Mime = "image/jpeg"
3662
3824
  ; sub_atom(Atom, _, _, 0, '.gif') -> Mime = "image/gif"
@@ -3676,6 +3838,29 @@ mi_call(answer(Text), StateIn, StateIn) :-
3676
3838
  engine_yield(answer(InterpText)),
3677
3839
  throw('$answer_commit').
3678
3840
 
3841
+ %% mi_call(output(Media), +StateIn, -StateOut)
3842
+ %% Present an image instead of text: `output(media(Path, Mime))`, `output(media(Path))`,
3843
+ %% or a dict form (`media{svg: Svg}`, `media{data: Base64, mime: Mime}`). The host
3844
+ %% renders it inline (kitty/iTerm2) or reports the path.
3845
+ %% This clause must come before the generic `output(Text)` clause; it fails
3846
+ %% through for anything that is not a media reference.
3847
+ mi_call(output(Media), StateIn, StateIn) :-
3848
+ nonvar(Media),
3849
+ ( Media = media(_, _)
3850
+ ; Media = media(_)
3851
+ ; is_dict(Media)
3852
+ ),
3853
+ media_dict(Media, Dict),
3854
+ !,
3855
+ get_dict(mime, Dict, Mime),
3856
+ get_dict(path, Dict, Path),
3857
+ ( get_dict(data, Dict, Data) -> true ; Data = "" ),
3858
+ ( get_dict(kind, Dict, Kind) -> true ; Kind = file ),
3859
+ get_session_id(SessionId),
3860
+ get_depth(StateIn, Depth),
3861
+ add_trace_entry(SessionId, media, media, [Path], Depth),
3862
+ engine_yield(media(media{path: Path, mimeType: Mime, kind: Kind, data: Data})).
3863
+
3679
3864
  %% mi_call(output(Text), +StateIn, -StateOut)
3680
3865
  mi_call(output(Text), StateIn, StateIn) :-
3681
3866
  get_params(StateIn, Params),
@@ -4419,6 +4604,7 @@ is_mi_special_predicate(system(_)).
4419
4604
  is_mi_special_predicate(user(_)). %% Add user message to context
4420
4605
  is_mi_special_predicate(read_media(_,_)).
4421
4606
  is_mi_special_predicate(attach_media(_)).
4607
+ is_mi_special_predicate(save_image(_,_)).
4422
4608
  is_mi_special_predicate(task(_)).
4423
4609
  is_mi_special_predicate(task(_,_)).
4424
4610
  is_mi_special_predicate(task(_,_,_)).
@@ -4442,6 +4628,7 @@ is_mi_special_predicate(with_tools(_,_)).
4442
4628
  is_mi_special_predicate(without_tools(_,_)).
4443
4629
  %% Reasoning effort scoping
4444
4630
  is_mi_special_predicate(with_reasoning(_,_)).
4631
+ is_mi_special_predicate(with_model(_,_)).
4445
4632
  %% Recipe context scoping
4446
4633
  is_mi_special_predicate(with_recipe(_,_)).
4447
4634
  %% Semantic judgment predicates
@@ -8,6 +8,7 @@
8
8
  */
9
9
  import type { DMLEvent, LLMBackend, MemoryMessage, ToolDefinition } from '../types.js';
10
10
  import { type CompactionSettings, type CompactMemoryResult } from './compaction.js';
11
+ import { type ModelCatalogEntry } from './model-resolver.js';
11
12
  export interface HarnessAgentOptions {
12
13
  tools: Map<string, ToolDefinition>;
13
14
  llmBackend: LLMBackend;
@@ -17,6 +18,11 @@ export interface HarnessAgentOptions {
17
18
  streaming?: boolean;
18
19
  /** Maximum model calls for one `run` (0 = unlimited). */
19
20
  maxModelCalls?: number;
21
+ /**
22
+ * Ask the human a question mid-turn (used to ask whether to extend the
23
+ * model-call budget). Returns undefined when there is no interactive channel.
24
+ */
25
+ askInput?: (prompt: string, options?: string[]) => Promise<string | undefined>;
20
26
  contextWindow?: number;
21
27
  compaction?: {
22
28
  settings: CompactionSettings;
@@ -24,6 +30,10 @@ export interface HarnessAgentOptions {
24
30
  };
25
31
  /** Workspace root, so a `.deepclause/system/AGENT_PROMPT.md` override is used. */
26
32
  workspacePath?: string;
33
+ /** The session's active model (`provider:model`), shown to the agent. */
34
+ currentModel?: string;
35
+ /** Models available this session (via `with_model/2`). */
36
+ modelCatalog?: ModelCatalogEntry[];
27
37
  /** Pre-loaded documentation for the `reference` tool (handled by the controller). */
28
38
  knownMessages?: MemoryMessage[];
29
39
  }
@@ -39,6 +49,8 @@ export declare function describeTools(tools: Map<string, ToolDefinition>): strin
39
49
  */
40
50
  export declare function buildAgentSystemPrompt(options?: {
41
51
  workspacePath?: string;
52
+ currentModel?: string;
53
+ modelCatalog?: ModelCatalogEntry[];
42
54
  }): Promise<string>;
43
55
  /**
44
56
  * A multi-turn authoring agent. `run` yields `DMLEvent`s (streaming text,
@@ -67,6 +79,12 @@ export declare class HarnessAgent {
67
79
  * the manual `compact.` command); the loop hook checks the threshold itself.
68
80
  */
69
81
  compactMemory(force?: boolean, signal?: AbortSignal, customInstructions?: string): Promise<CompactMemoryResult>;
82
+ /**
83
+ * Ask the human whether to continue after the model-call budget is exhausted.
84
+ * Returns false when there is no interactive channel (autonomous runs keep the
85
+ * current abort behaviour).
86
+ */
87
+ private askBudgetExtension;
70
88
  run(request: string, options?: HarnessAgentRunOptions): AsyncGenerator<DMLEvent>;
71
89
  }
72
90
  //# sourceMappingURL=agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/repl/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EAIV,aAAa,EACb,cAAc,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAgC,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAElH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE;QAAE,QAAQ,EAAE,kBAAkB,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IAC7D,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qFAAqF;IACrF,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAID,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,MAAM,CAWxE;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,GAAE;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,CAcvB;AAqDD;;;;GAIG;AACH,qBAAa,YAAY;IACvB,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAsB;IACtC,2EAA2E;IAC3E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,8EAA8E;IAC9E,OAAO,CAAC,UAAU,CAAC,CAAkB;gBAEzB,OAAO,EAAE,mBAAmB;IAWxC,mFAAmF;IACnF,WAAW,IAAI,aAAa,EAAE;IAQ9B;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOzB;;;OAGG;IACG,aAAa,CAAC,KAAK,UAAQ,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAqB5G,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,cAAc,CAAC,QAAQ,CAAC;CA0M5F"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/repl/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EAIV,aAAa,EACb,cAAc,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAgC,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEtF,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE;QAAE,QAAQ,EAAE,kBAAkB,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IAC7D,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACnC,qFAAqF;IACrF,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAID,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,MAAM,CAWxE;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,GAAE;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC/B,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BvB;AAqDD;;;;GAIG;AACH,qBAAa,YAAY;IACvB,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAsB;IACtC,2EAA2E;IAC3E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,8EAA8E;IAC9E,OAAO,CAAC,UAAU,CAAC,CAAkB;gBAEzB,OAAO,EAAE,mBAAmB;IAWxC,mFAAmF;IACnF,WAAW,IAAI,aAAa,EAAE;IAQ9B;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOzB;;;OAGG;IACG,aAAa,CAAC,KAAK,UAAQ,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAqBnH;;;;OAIG;YACW,kBAAkB;IAgBzB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,cAAc,CAAC,QAAQ,CAAC;CAuN5F"}
@@ -9,6 +9,7 @@
9
9
  import { readAgentPromptAsset } from '../system/assets/index.js';
10
10
  import { loadProjectContext } from './project-context.js';
11
11
  import { compactMemory, shouldCompact } from './compaction.js';
12
+ import { formatModelCatalogEntry } from './model-resolver.js';
12
13
  const MAX_TOOL_RESULT_CHARS = 8000;
13
14
  /** Generate the `TOOLS` section of the system prompt from the tool schemas. */
14
15
  export function describeTools(tools) {
@@ -36,6 +37,19 @@ export async function buildAgentSystemPrompt(options = {}) {
36
37
  catch {
37
38
  prompt = 'You are an agent with access to a DML REPL.';
38
39
  }
40
+ // The models this session can switch to with `with_model/2`, with catalog prices.
41
+ const catalog = options.modelCatalog ?? [];
42
+ if (options.currentModel || catalog.length > 0) {
43
+ const shown = catalog.slice(0, 60).map(formatModelCatalogEntry);
44
+ prompt += [
45
+ '',
46
+ 'AVAILABLE MODELS (price = USD per 1M tokens, input/output)',
47
+ options.currentModel ? `- current: ${options.currentModel}` : '',
48
+ shown.length > 0 ? `- with_model targets: ${shown.join(', ')}${catalog.length > shown.length ? ', …' : ''}` : '',
49
+ '- Pick the cheapest model that can do the job; use `with_model/2` to route calls.',
50
+ '- Other models may be configured with `deepclause login`; a `with_model` spec must name one of these.',
51
+ ].filter(Boolean).join('\n') + '\n';
52
+ }
39
53
  // Append a workspace `AGENTS.md` so repo-specific rules always apply.
40
54
  const project = await loadProjectContext(options.workspacePath);
41
55
  if (project) {
@@ -164,6 +178,23 @@ export class HarnessAgent {
164
178
  }
165
179
  return result;
166
180
  }
181
+ /**
182
+ * Ask the human whether to continue after the model-call budget is exhausted.
183
+ * Returns false when there is no interactive channel (autonomous runs keep the
184
+ * current abort behaviour).
185
+ */
186
+ async askBudgetExtension(used) {
187
+ const ask = this.options.askInput;
188
+ if (!ask) {
189
+ return false;
190
+ }
191
+ const perChunk = this.options.maxModelCalls ?? 0;
192
+ const answer = await ask(`The authoring turn has reached its model-call budget (${used} calls).\n`
193
+ + `Continue for another ${perChunk} calls? [yes/no]\n`
194
+ + 'change the limit: repl.maxModelCalls in .deepclause/config.json '
195
+ + '("repl": { "maxModelCalls": N }), or pass --max-model-calls N; 0 means unlimited', ['yes', 'no']);
196
+ return /^(y|yes)$/i.test((answer ?? '').trim());
197
+ }
167
198
  async *run(request, options = {}) {
168
199
  const { llmBackend, tools } = this.options;
169
200
  const streaming = this.options.streaming ?? true;
@@ -172,6 +203,8 @@ export class HarnessAgent {
172
203
  const autoCompact = this.options.compaction?.auto ?? false;
173
204
  const systemPrompt = await buildAgentSystemPrompt({
174
205
  workspacePath: this.options.workspacePath,
206
+ currentModel: this.options.currentModel,
207
+ modelCatalog: this.options.modelCatalog,
175
208
  });
176
209
  this.messages.push({ role: 'user', content: request });
177
210
  const backendTools = [...tools].map(([name, tool]) => ({
@@ -180,6 +213,9 @@ export class HarnessAgent {
180
213
  parameters: tool.parameters,
181
214
  }));
182
215
  let calls = 0;
216
+ // The model-call budget for this turn; `0` means unlimited. It grows by
217
+ // `maxModelCalls` each time the human agrees to continue.
218
+ let budget = maxModelCalls;
183
219
  let finished = false;
184
220
  let lastText = '';
185
221
  let lastInputTokens;
@@ -187,9 +223,17 @@ export class HarnessAgent {
187
223
  while (!finished && calls < maxIterations) {
188
224
  if (options.signal?.aborted)
189
225
  break;
190
- if (maxModelCalls > 0 && calls >= maxModelCalls) {
191
- yield { type: 'error', content: `model-call budget exhausted (${maxModelCalls})` };
192
- break;
226
+ if (budget > 0 && calls >= budget) {
227
+ const extend = await this.askBudgetExtension(budget);
228
+ if (!extend) {
229
+ yield {
230
+ type: 'error',
231
+ content: `authoring turn stopped: model-call budget exhausted (${budget} calls). `
232
+ + 'Raise repl.maxModelCalls in .deepclause/config.json (or pass --max-model-calls); 0 = unlimited.',
233
+ };
234
+ break;
235
+ }
236
+ budget += maxModelCalls;
193
237
  }
194
238
  calls += 1;
195
239
  // Inject any steering messages submitted during the previous iteration.