deepclause-sdk 0.0.69 → 0.0.70

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 (46) hide show
  1. package/dist/agent.d.ts.map +1 -1
  2. package/dist/agent.js +125 -10
  3. package/dist/agent.js.map +1 -1
  4. package/dist/cli/commands.d.ts.map +1 -1
  5. package/dist/cli/commands.js +64 -7
  6. package/dist/cli/commands.js.map +1 -1
  7. package/dist/cli/config.d.ts +15 -12
  8. package/dist/cli/config.d.ts.map +1 -1
  9. package/dist/cli/config.js +34 -5
  10. package/dist/cli/config.js.map +1 -1
  11. package/dist/cli/default-skills.d.ts +1 -0
  12. package/dist/cli/default-skills.d.ts.map +1 -1
  13. package/dist/cli/default-skills.js +31 -0
  14. package/dist/cli/default-skills.js.map +1 -1
  15. package/dist/cli/tui.d.ts +15 -1
  16. package/dist/cli/tui.d.ts.map +1 -1
  17. package/dist/cli/tui.js +209 -7
  18. package/dist/cli/tui.js.map +1 -1
  19. package/dist/prolog/bridge.d.ts +15 -0
  20. package/dist/prolog/bridge.d.ts.map +1 -1
  21. package/dist/prolog/bridge.js +68 -0
  22. package/dist/prolog/bridge.js.map +1 -1
  23. package/dist/prolog-src/deepclause_mi.pl +135 -7
  24. package/dist/runner.d.ts +8 -0
  25. package/dist/runner.d.ts.map +1 -1
  26. package/dist/runner.js +78 -0
  27. package/dist/runner.js.map +1 -1
  28. package/dist/system/assets/docs/DML_REFERENCE.md +656 -0
  29. package/dist/system/assets/docs/TUI.md +11 -0
  30. package/dist/system/assets/index.d.ts +3 -2
  31. package/dist/system/assets/index.d.ts.map +1 -1
  32. package/dist/system/assets/index.js +5 -0
  33. package/dist/system/assets/index.js.map +1 -1
  34. package/dist/system/assets/recipes/deepclause-coding-workflow/SKILL.md +56 -1
  35. package/dist/system/assets/skills/plan.dml +259 -0
  36. package/dist/system/runtime/dml-executor.d.ts.map +1 -1
  37. package/dist/system/runtime/dml-executor.js +2 -14
  38. package/dist/system/runtime/dml-executor.js.map +1 -1
  39. package/dist/system/runtime/runtime-tools.d.ts +1 -0
  40. package/dist/system/runtime/runtime-tools.d.ts.map +1 -1
  41. package/dist/system/runtime/runtime-tools.js +95 -0
  42. package/dist/system/runtime/runtime-tools.js.map +1 -1
  43. package/dist/system/runtime/shell-manager.js +1 -1
  44. package/dist/system/runtime/shell-manager.js.map +1 -1
  45. package/package.json +4 -3
  46. package/src/prolog-src/deepclause_mi.pl +135 -7
@@ -11,10 +11,25 @@ export interface RawProviderResponseSnapshot {
11
11
  bodyText: string;
12
12
  captureError?: string;
13
13
  }
14
+ export interface SampleSingleTokenOptions {
15
+ prompt: string;
16
+ allowedTokens?: string[];
17
+ modelOptions: {
18
+ provider: string;
19
+ model: string;
20
+ temperature: number;
21
+ baseUrl?: string;
22
+ providerOptions?: Record<string, Record<string, any>>;
23
+ };
24
+ signal?: AbortSignal;
25
+ debugLog?: (...args: unknown[]) => void;
26
+ onRawResponse?: (snapshot: Promise<RawProviderResponseSnapshot>) => void;
27
+ }
14
28
  /**
15
29
  * Create a model provider for the Vercel AI SDK
16
30
  */
17
31
  export declare function createModelProvider(provider: string, model: string, baseUrl?: string, debugLog?: (...args: unknown[]) => void, onRawResponse?: (snapshot: Promise<RawProviderResponseSnapshot>) => void): LanguageModel;
32
+ export declare function sampleSingleToken(options: SampleSingleTokenOptions): Promise<string>;
18
33
  /**
19
34
  * Convert a JavaScript value to a Prolog term string
20
35
  */
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/prolog/bridge.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,gBAAgB,GAAG,QAAQ,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAqRD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,EACvC,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,2BAA2B,CAAC,KAAK,IAAI,GACvE,aAAa,CA8Mf;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAqCrD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CA2CrD;AAgBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,CA2D1D"}
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/prolog/bridge.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,gBAAgB,GAAG,QAAQ,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;KACvD,CAAC;IACF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACxC,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,2BAA2B,CAAC,KAAK,IAAI,CAAC;CAC1E;AAqRD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,EACvC,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,2BAA2B,CAAC,KAAK,IAAI,GACvE,aAAa,CA8Mf;AA+DD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuB1F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAqCrD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CA2CrD;AAgBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,CA2D1D"}
@@ -7,6 +7,7 @@ import { PassThrough, Readable } from 'stream';
7
7
  import { google, createGoogleGenerativeAI } from '@ai-sdk/google';
8
8
  import { anthropic, createAnthropic } from '@ai-sdk/anthropic';
9
9
  import { createOpenAI } from '@ai-sdk/openai';
10
+ import { generateText } from 'ai';
10
11
  function describeFetchError(error) {
11
12
  if (!(error instanceof Error)) {
12
13
  return String(error);
@@ -447,6 +448,73 @@ export function createModelProvider(provider, model, baseUrl, debugLog, onRawRes
447
448
  }
448
449
  }
449
450
  }
451
+ function stripWrappingQuotes(token) {
452
+ if (token.length < 2) {
453
+ return token;
454
+ }
455
+ const prefix = token[0];
456
+ const suffix = token[token.length - 1];
457
+ if ((prefix === '"' || prefix === "'") && prefix === suffix) {
458
+ return token.slice(1, -1);
459
+ }
460
+ return token;
461
+ }
462
+ function stripTerminalPunctuation(token) {
463
+ if (token.length <= 1) {
464
+ return token;
465
+ }
466
+ const suffix = token[token.length - 1];
467
+ if (suffix === '.' || suffix === ',' || suffix === ';' || suffix === ':') {
468
+ return token.slice(0, -1);
469
+ }
470
+ return token;
471
+ }
472
+ function normalizeSampleTokenResponse(rawToken) {
473
+ const trimmed = rawToken.trim();
474
+ if (!trimmed) {
475
+ throw new Error('Model returned an empty token response');
476
+ }
477
+ const [first] = trimmed.split(/\s+/);
478
+ if (!first) {
479
+ throw new Error('Model returned an empty token response');
480
+ }
481
+ return stripWrappingQuotes(first);
482
+ }
483
+ function chooseAllowedSampleToken(rawToken, allowedTokens) {
484
+ if (allowedTokens.length === 0) {
485
+ throw new Error('Allowed token list must not be empty');
486
+ }
487
+ const candidate = normalizeSampleTokenResponse(rawToken);
488
+ if (allowedTokens.includes(candidate)) {
489
+ return candidate;
490
+ }
491
+ const punctuationStripped = stripTerminalPunctuation(candidate);
492
+ if (punctuationStripped !== candidate && allowedTokens.includes(punctuationStripped)) {
493
+ return punctuationStripped;
494
+ }
495
+ return allowedTokens[0];
496
+ }
497
+ function buildSampleTokenPrompt(prompt, allowedTokens) {
498
+ if (!allowedTokens || allowedTokens.length === 0) {
499
+ return prompt;
500
+ }
501
+ return `${prompt}\nAllowed tokens: ${JSON.stringify(allowedTokens)}`;
502
+ }
503
+ export async function sampleSingleToken(options) {
504
+ const model = createModelProvider(options.modelOptions.provider, options.modelOptions.model, options.modelOptions.baseUrl, options.debugLog, options.onRawResponse);
505
+ const result = await generateText({
506
+ model,
507
+ prompt: buildSampleTokenPrompt(options.prompt, options.allowedTokens),
508
+ temperature: options.modelOptions.temperature,
509
+ maxOutputTokens: 1,
510
+ abortSignal: options.signal,
511
+ providerOptions: options.modelOptions.providerOptions,
512
+ });
513
+ if (options.allowedTokens && options.allowedTokens.length > 0) {
514
+ return chooseAllowedSampleToken(result.text, options.allowedTokens);
515
+ }
516
+ return normalizeSampleTokenResponse(result.text);
517
+ }
450
518
  /**
451
519
  * Convert a JavaScript value to a Prolog term string
452
520
  */
@@ -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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"}
@@ -22,6 +22,7 @@
22
22
  destroy_engine/1,
23
23
  post_agent_result/4,
24
24
  post_exec_result/3,
25
+ post_sample_token_result/3,
25
26
  provide_input/2,
26
27
  mi/3,
27
28
  % Tool engine predicates for isolated tool execution
@@ -46,6 +47,7 @@
46
47
  :- dynamic session_pending_input/2. % session_pending_input(SessionId, Input)
47
48
  :- dynamic session_agent_result/2. % session_agent_result(SessionId, Result)
48
49
  :- dynamic session_exec_result/2. % session_exec_result(SessionId, Result)
50
+ :- dynamic session_sample_token_result/2. % session_sample_token_result(SessionId, Result)
49
51
  :- dynamic session_trace_log/2. % session_trace_log(SessionId, TraceLog) - accumulated trace entries
50
52
  :- dynamic session_trace_enabled/2. % session_trace_enabled(SessionId, true/false)
51
53
  :- dynamic session_pending_signal/2. % session_pending_signal(SessionId, Signal) - fallback for engine_fetch
@@ -96,14 +98,40 @@ parse_clauses(Stream, SessionId) :-
96
98
  read_term(Stream, Term, [module(SessionId), variable_names(Bindings)]),
97
99
  ( Term == end_of_file
98
100
  -> true
99
- ; % First, transform task/N calls to include variable names
100
- transform_task_calls(Term, Bindings, TransformedTerm),
101
- % Then expand string interpolations
102
- expand_interpolations(TransformedTerm, Bindings, ExpandedTerm),
103
- process_clause(ExpandedTerm, SessionId),
101
+ ; preprocess_loaded_term(Term, Bindings, PreparedTerms),
102
+ forall(member(PreparedTerm, PreparedTerms), process_clause(PreparedTerm, SessionId)),
104
103
  parse_clauses(Stream, SessionId)
105
104
  ).
106
105
 
106
+ %% preprocess_loaded_term(+Term, +Bindings, -PreparedTerms)
107
+ %% Apply DML source preprocessing before asserting loaded clauses.
108
+ %% This keeps task()/prompt() rewriting and string interpolation working,
109
+ %% while also running expand_term/2 so DCG rules (`-->`) become executable
110
+ %% difference-list predicates before they are asserted into the session module.
111
+ preprocess_loaded_term(Term, Bindings, PreparedTerms) :-
112
+ transform_task_calls(Term, Bindings, TransformedTerm),
113
+ expand_interpolations(TransformedTerm, Bindings, InterpolatedTerm),
114
+ expand_loaded_term(InterpolatedTerm, PreparedTerms).
115
+
116
+ %% expand_loaded_term(+Term, -ExpandedTerms)
117
+ %% Runs SWI term expansion and normalizes the result to a list of terms.
118
+ expand_loaded_term(Term, ExpandedTerms) :-
119
+ expand_term(Term, Expanded),
120
+ normalize_expanded_terms(Expanded, ExpandedTerms).
121
+
122
+ %% normalize_expanded_terms(+Expanded, -Terms)
123
+ %% expand_term/2 may return a single term or a list. DML does not need the
124
+ %% generated non_terminal/1 directives, so skip them and keep the executable
125
+ %% clauses only.
126
+ normalize_expanded_terms(Expanded, Terms) :-
127
+ ( is_list(Expanded)
128
+ -> RawTerms = Expanded
129
+ ; RawTerms = [Expanded]
130
+ ),
131
+ exclude(skip_expanded_term, RawTerms, Terms).
132
+
133
+ skip_expanded_term((:- non_terminal(_))).
134
+
107
135
  %% ============================================================
108
136
  %% Task Call Transformation (compile-time)
109
137
  %% ============================================================
@@ -535,6 +563,8 @@ process_engine_result(request_agent_loop(Desc, Vars, Tools, Memory), request_age
535
563
  payload{taskDescription: Desc, outputVars: Vars, userTools: Tools, memory: Memory, toolScope: none}) :- !.
536
564
  process_engine_result(request_exec(Tool, Args), request_exec, '',
537
565
  payload{toolName: Tool, args: Args}) :- !.
566
+ process_engine_result(request_sample_token(Prompt, Allowed), request_sample_token, '',
567
+ payload{prompt: Prompt, allowedTokens: Allowed}) :- !.
538
568
  %% Tool result from inline tool execution
539
569
  process_engine_result(tool_result(Result), tool_result, '',
540
570
  payload{result: Result}) :- !.
@@ -556,6 +586,7 @@ destroy_engine(SessionId) :-
556
586
  retractall(session_pending_input(SessionId, _)),
557
587
  retractall(session_agent_result(SessionId, _)),
558
588
  retractall(session_exec_result(SessionId, _)),
589
+ retractall(session_sample_token_result(SessionId, _)),
559
590
  retractall(session_trace_log(SessionId, _)),
560
591
  retractall(session_trace_enabled(SessionId, _)),
561
592
  ( current_module(SessionId)
@@ -596,6 +627,12 @@ post_exec_result(SessionId, Status, Result) :-
596
627
  assertz(session_exec_result(SessionId, result{status: Status, result: Result})),
597
628
  post_signal_to_engine(SessionId, exec_done).
598
629
 
630
+ %% post_sample_token_result(+SessionId, +Status, +TokenOrError)
631
+ post_sample_token_result(SessionId, Status, TokenOrError) :-
632
+ retractall(session_sample_token_result(SessionId, _)),
633
+ assertz(session_sample_token_result(SessionId, result{status: Status, token: TokenOrError})),
634
+ post_signal_to_engine(SessionId, sample_token_done).
635
+
599
636
  %% provide_input(+SessionId, +Input)
600
637
  provide_input(SessionId, Input) :-
601
638
  assertz(session_pending_input(SessionId, Input)),
@@ -924,6 +961,8 @@ step_tool_engine(ToolEngineId, Status, Content, Payload) :-
924
961
  process_tool_engine_result(tool_finished(ToolResult), finished, '', payload{result: ToolResult}) :- !.
925
962
  process_tool_engine_result(request_exec(Tool, Args), request_exec, '',
926
963
  payload{toolName: Tool, args: Args}) :- !.
964
+ process_tool_engine_result(request_sample_token(Prompt, Allowed), request_sample_token, '',
965
+ payload{prompt: Prompt, allowedTokens: Allowed}) :- !.
927
966
  process_tool_engine_result(request_agent_loop(Desc, Vars, Tools, Memory, ToolScope), request_agent_loop, '',
928
967
  payload{taskDescription: Desc, outputVars: Vars, userTools: Tools, memory: Memory, toolScope: ToolScope}) :- !.
929
968
  %% Legacy 4-arg format (no tool scope)
@@ -1076,6 +1115,18 @@ mi_call(task_named(Desc, Vars, VarNames), StateIn, StateOut) :-
1076
1115
  %% Prompt Handling - Fresh LLM call without existing memory
1077
1116
  %% ============================================================
1078
1117
 
1118
+ %% mi_call(sample_token(Desc, Token), +StateIn, -StateOut)
1119
+ %% Ask the host runtime for exactly one token via the provider.
1120
+ mi_call(sample_token(Desc, Token), StateIn, StateOut) :-
1121
+ !,
1122
+ mi_call_sample_token(Desc, none, Token, StateIn, StateOut).
1123
+
1124
+ %% mi_call(sample_token(Desc, Allowed, Token), +StateIn, -StateOut)
1125
+ %% Same as sample_token/2, but provides an allowed token list to runtime.
1126
+ mi_call(sample_token(Desc, Allowed, Token), StateIn, StateOut) :-
1127
+ !,
1128
+ mi_call_sample_token(Desc, Allowed, Token, StateIn, StateOut).
1129
+
1079
1130
  %% mi_call(prompt(Desc), +StateIn, -StateOut)
1080
1131
  %% Simple LLM call with empty memory and NO tools (pure text completion)
1081
1132
  mi_call(prompt(Desc), StateIn, StateOut) :-
@@ -1142,6 +1193,42 @@ mi_call_prompt_n(Desc, Vars, VarNames, StateIn, StateOut) :-
1142
1193
  bind_task_variables(Result.variables, VarNames, Vars).
1143
1194
  % Don't modify memory - but state may have changed from tool calls
1144
1195
 
1196
+ mi_call_sample_token(Desc, Allowed, Token, StateIn, StateOut) :-
1197
+ get_params(StateIn, Params),
1198
+ interpolate_desc(Desc, Params, InterpDesc),
1199
+ get_session_id(SessionId),
1200
+ get_depth(StateIn, Depth),
1201
+ add_trace_entry(SessionId, llm_call, sample_token, [InterpDesc, Allowed], Depth),
1202
+ engine_yield(request_sample_token(InterpDesc, Allowed)),
1203
+ wait_sample_token_signal(SessionId),
1204
+ ( session_sample_token_result(SessionId, Result)
1205
+ -> retract(session_sample_token_result(SessionId, _)),
1206
+ ( Result.status == success
1207
+ -> Token = Result.token,
1208
+ add_trace_with_result(SessionId, exit, sample_token, [InterpDesc, Allowed], Token, Depth),
1209
+ StateOut = StateIn
1210
+ ; ( get_dict(token, Result, ErrorMsg), ErrorMsg \= ""
1211
+ -> format(atom(WarnMsg), 'Warning: sample_token failed: ~w', [ErrorMsg])
1212
+ ; format(atom(WarnMsg), 'Warning: sample_token failed (status=~w)', [Result.status])
1213
+ ),
1214
+ add_trace_entry(SessionId, fail, sample_token, [InterpDesc, Allowed], Depth),
1215
+ engine_yield(output(WarnMsg)),
1216
+ fail
1217
+ )
1218
+ ; add_trace_entry(SessionId, fail, sample_token, [InterpDesc, Allowed], Depth),
1219
+ engine_yield(output('Warning: sample_token failed (no result returned)')),
1220
+ fail
1221
+ ).
1222
+
1223
+ wait_sample_token_signal(SessionId) :-
1224
+ get_next_signal(SessionId, Signal),
1225
+ ( Signal == sample_token_done
1226
+ -> true
1227
+ ; Signal = error_signal(_)
1228
+ -> true
1229
+ ; wait_sample_token_signal(SessionId)
1230
+ ).
1231
+
1145
1232
  %% mi_call_task_n(+Desc, +Vars, +VarNames, +StateIn, -StateOut)
1146
1233
  mi_call_task_n(Desc, Vars, VarNames, StateIn, StateOut) :-
1147
1234
  !, % Cut to make this predicate deterministic - no backtracking once started
@@ -1695,10 +1782,11 @@ consult_string(Code, SessionId) :-
1695
1782
  %% consult_clauses(+Stream, +SessionId)
1696
1783
  %% Read and assert all clauses from a stream
1697
1784
  consult_clauses(Stream, SessionId) :-
1698
- read_term(Stream, Term, [module(SessionId)]),
1785
+ read_term(Stream, Term, [module(SessionId), variable_names(Bindings)]),
1699
1786
  ( Term == end_of_file
1700
1787
  -> true
1701
- ; consult_process_term(Term, SessionId),
1788
+ ; preprocess_loaded_term(Term, Bindings, PreparedTerms),
1789
+ forall(member(PreparedTerm, PreparedTerms), consult_process_term(PreparedTerm, SessionId)),
1702
1790
  consult_clauses(Stream, SessionId)
1703
1791
  ).
1704
1792
 
@@ -1823,6 +1911,12 @@ mi_call(make_directory(Dir), StateIn, StateIn) :-
1823
1911
  resolve_workspace_path(Dir, FullPath),
1824
1912
  make_directory(FullPath).
1825
1913
 
1914
+ %% mi_call(make_directory_path(Dir), +StateIn, -StateOut)
1915
+ mi_call(make_directory_path(Dir), StateIn, StateIn) :-
1916
+ !,
1917
+ resolve_workspace_path(Dir, FullPath),
1918
+ make_directory_path(FullPath).
1919
+
1826
1920
  %% mi_call(delete_file(File), +StateIn, -StateOut)
1827
1921
  mi_call(delete_file(File), StateIn, StateIn) :-
1828
1922
  !,
@@ -1852,6 +1946,22 @@ mi_call(throw(Error), _StateIn, _StateOut) :-
1852
1946
  !,
1853
1947
  throw(Error).
1854
1948
 
1949
+ %% ============================================================
1950
+ %% DCG Helpers
1951
+ %% ============================================================
1952
+
1953
+ %% phrase/2 and phrase/3 must run in the session module so they can resolve
1954
+ %% grammar predicates asserted from the current DML source.
1955
+ mi_call(phrase(Grammar, Input), StateIn, StateIn) :-
1956
+ !,
1957
+ get_session_id(SessionId),
1958
+ call(SessionId:phrase(Grammar, Input)).
1959
+
1960
+ mi_call(phrase(Grammar, Input, Rest), StateIn, StateIn) :-
1961
+ !,
1962
+ get_session_id(SessionId),
1963
+ call(SessionId:phrase(Grammar, Input, Rest)).
1964
+
1855
1965
  %% ============================================================
1856
1966
  %% Module-Qualified Goals
1857
1967
  %% ============================================================
@@ -1859,6 +1969,14 @@ mi_call(throw(Error), _StateIn, _StateOut) :-
1859
1969
  %% mi_call(Module:Goal, +StateIn, -StateOut)
1860
1970
  %% Module-qualified goals - handle special predicates and user-defined predicates
1861
1971
 
1972
+ mi_call(Module:phrase(Grammar, Input), StateIn, StateIn) :-
1973
+ !,
1974
+ call(Module:phrase(Grammar, Input)).
1975
+
1976
+ mi_call(Module:phrase(Grammar, Input, Rest), StateIn, StateIn) :-
1977
+ !,
1978
+ call(Module:phrase(Grammar, Input, Rest)).
1979
+
1862
1980
  % First check if the unqualified Goal is a special MI predicate - if so, handle it directly
1863
1981
  mi_call(_Module:Goal, StateIn, StateOut) :-
1864
1982
  is_mi_special_predicate(Goal),
@@ -1898,6 +2016,8 @@ is_mi_special_predicate(task(_,_,_)).
1898
2016
  is_mi_special_predicate(task(_,_,_,_)).
1899
2017
  is_mi_special_predicate(task(_,_,_,_,_)).
1900
2018
  is_mi_special_predicate(task_named(_,_,_)). %% Transformed form of task/N
2019
+ is_mi_special_predicate(sample_token(_,_)).
2020
+ is_mi_special_predicate(sample_token(_,_,_)).
1901
2021
  is_mi_special_predicate(exec(_,_)).
1902
2022
  is_mi_special_predicate(param(_,_)).
1903
2023
  is_mi_special_predicate(param(_,_,_)).
@@ -1951,6 +2071,9 @@ is_mi_special_predicate(maplist(_,_)).
1951
2071
  is_mi_special_predicate(maplist(_,_,_)).
1952
2072
  is_mi_special_predicate(maplist(_,_,_,_)).
1953
2073
  is_mi_special_predicate(foldl(_,_,_,_)).
2074
+ %% DCG predicates
2075
+ is_mi_special_predicate(phrase(_,_)).
2076
+ is_mi_special_predicate(phrase(_,_,_)).
1954
2077
  %% File I/O predicates
1955
2078
  is_mi_special_predicate(read_file_to_string(_,_,_)).
1956
2079
  is_mi_special_predicate(read_file(_,_)).
@@ -1964,6 +2087,7 @@ is_mi_special_predicate(exists_file(_)).
1964
2087
  is_mi_special_predicate(exists_directory(_)).
1965
2088
  is_mi_special_predicate(directory_files(_,_)).
1966
2089
  is_mi_special_predicate(make_directory(_)).
2090
+ is_mi_special_predicate(make_directory_path(_)).
1967
2091
  is_mi_special_predicate(delete_file(_)).
1968
2092
  is_mi_special_predicate(delete_directory(_)).
1969
2093
  %% Consult and module predicates
@@ -2234,6 +2358,10 @@ goal_with_string_arg(prompt(S, V1, V2, V3), prompt, S, [V1, V2, V3]) :- atom(S),
2234
2358
  %% prompt_named/3 - transformed form with embedded variable names
2235
2359
  goal_with_string_arg(prompt_named(S, Vars, Names), prompt_named, S, [Vars, Names]) :- string(S).
2236
2360
  goal_with_string_arg(prompt_named(S, Vars, Names), prompt_named, S, [Vars, Names]) :- atom(S), \+ S = [].
2361
+ goal_with_string_arg(sample_token(S, Token), sample_token, S, [Token]) :- string(S).
2362
+ goal_with_string_arg(sample_token(S, Token), sample_token, S, [Token]) :- atom(S), \+ S = [].
2363
+ goal_with_string_arg(sample_token(S, Allowed, Token), sample_token, S, [Allowed, Token]) :- string(S).
2364
+ goal_with_string_arg(sample_token(S, Allowed, Token), sample_token, S, [Allowed, Token]) :- atom(S), \+ S = [].
2237
2365
 
2238
2366
  %% rebuild_goal(+Functor, +StringArg, +RestArgs, -Goal)
2239
2367
  %% Rebuild a goal with the string argument and rest args
package/dist/runner.d.ts CHANGED
@@ -88,6 +88,10 @@ export declare class DMLRunner {
88
88
  * Handle agent loop request (task() predicate)
89
89
  */
90
90
  private handleAgentLoop;
91
+ /**
92
+ * Handle one-token sampling request (sample_token/2-3)
93
+ */
94
+ private handleSampleToken;
91
95
  /**
92
96
  * Handle exec request (exec() predicate)
93
97
  */
@@ -138,6 +142,10 @@ export declare class DMLRunner {
138
142
  * Post exec result back to Prolog
139
143
  */
140
144
  private postExecResult;
145
+ /**
146
+ * Post one-token sampling result back to Prolog
147
+ */
148
+ private postSampleTokenResult;
141
149
  /**
142
150
  * Post tool engine agent loop result back to Prolog
143
151
  */
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
package/dist/runner.js CHANGED
@@ -8,6 +8,7 @@ import { runAgentLoop } from './agent.js';
8
8
  import { executeCompactor, getCompactionBindings, resolveCompactionOptions, } from './compaction.js';
9
9
  import { buildToolCompletionEvent, buildToolFailureEvent, buildToolStartEvent, } from './system/runtime/shell-tool-events.js';
10
10
  import { checkToolPolicy } from './tools.js';
11
+ import { sampleSingleToken } from './prolog/bridge.js';
11
12
  /**
12
13
  * Convert swipl-wasm value to plain JavaScript value
13
14
  * Handles PrologString, PrologAtom, PrologList, etc.
@@ -231,6 +232,9 @@ export class DMLRunner {
231
232
  // Execute external tool
232
233
  yield* this.handleExec(step.payload, options);
233
234
  break;
235
+ case 'request_sample_token':
236
+ yield* this.handleSampleToken(step.payload, options);
237
+ break;
234
238
  case 'wait_input':
235
239
  // Request user input
236
240
  yield { type: 'input_required', prompt: step.prompt };
@@ -623,6 +627,37 @@ export class DMLRunner {
623
627
  this.postAgentResult(result, finalizedMemory);
624
628
  }
625
629
  }
630
+ /**
631
+ * Handle one-token sampling request (sample_token/2-3)
632
+ */
633
+ async *handleSampleToken(payload, options) {
634
+ const data = payload;
635
+ const prompt = String(toJsValue(data.prompt) ?? '');
636
+ const rawAllowedTokens = toJsValue(data.allowedTokens);
637
+ const allowedTokens = Array.isArray(rawAllowedTokens)
638
+ ? rawAllowedTokens.map((token) => String(token))
639
+ : [];
640
+ try {
641
+ const token = await sampleSingleToken({
642
+ prompt,
643
+ allowedTokens,
644
+ modelOptions: {
645
+ provider: this.options.provider,
646
+ model: this.options.model,
647
+ temperature: this.options.temperature,
648
+ baseUrl: this.options.baseUrl,
649
+ providerOptions: this.options.providerOptions,
650
+ },
651
+ signal: options.signal,
652
+ });
653
+ this.postSampleTokenResult({ success: true, token });
654
+ }
655
+ catch (error) {
656
+ const message = error instanceof Error ? error.message : String(error);
657
+ this.postSampleTokenResult({ success: false, error: message });
658
+ yield { type: 'log', content: `sample_token failed: ${message}` };
659
+ }
660
+ }
626
661
  /**
627
662
  * Handle exec request (exec() predicate)
628
663
  */
@@ -959,6 +994,36 @@ export class DMLRunner {
959
994
  }
960
995
  break;
961
996
  }
997
+ case 'request_sample_token': {
998
+ const prompt = String(toJsValue(payload?.prompt) ?? '');
999
+ const rawAllowedTokens = toJsValue(payload?.allowedTokens);
1000
+ const allowedTokens = Array.isArray(rawAllowedTokens)
1001
+ ? rawAllowedTokens.map((token) => String(token))
1002
+ : [];
1003
+ try {
1004
+ const token = await sampleSingleToken({
1005
+ prompt,
1006
+ allowedTokens,
1007
+ modelOptions: {
1008
+ provider: this.options.provider,
1009
+ model: this.options.model,
1010
+ temperature: this.options.temperature,
1011
+ baseUrl: this.options.baseUrl,
1012
+ providerOptions: this.options.providerOptions,
1013
+ },
1014
+ signal: runContext.signal,
1015
+ });
1016
+ this.postSampleTokenResult({ success: true, token });
1017
+ }
1018
+ catch (error) {
1019
+ const message = error instanceof Error ? error.message : String(error);
1020
+ this.postSampleTokenResult({ success: false, error: message });
1021
+ if (process.env.DEBUG_RUNNER) {
1022
+ console.log('[RUNNER] sample_token request failed:', message);
1023
+ }
1024
+ }
1025
+ break;
1026
+ }
962
1027
  case 'request_agent_loop': {
963
1028
  // Tool is calling task() or prompt() - run nested agent loop
964
1029
  const taskDescription = String(payload?.taskDescription ?? '');
@@ -1287,6 +1352,19 @@ export class DMLRunner {
1287
1352
  this.query(`deepclause_mi:post_exec_result('${this.sessionId}', failure, ${escapedErr})`);
1288
1353
  }
1289
1354
  }
1355
+ /**
1356
+ * Post one-token sampling result back to Prolog
1357
+ */
1358
+ postSampleTokenResult(result) {
1359
+ if (result.success) {
1360
+ const token = this.toPrologTerm(result.token ?? '');
1361
+ this.query(`deepclause_mi:post_sample_token_result('${this.sessionId}', success, ${token})`);
1362
+ }
1363
+ else {
1364
+ const error = this.toPrologTerm(result.error ?? 'Unknown error');
1365
+ this.query(`deepclause_mi:post_sample_token_result('${this.sessionId}', failure, ${error})`);
1366
+ }
1367
+ }
1290
1368
  /**
1291
1369
  * Post tool engine agent loop result back to Prolog
1292
1370
  */