deepclause-sdk 0.3.0 → 0.4.0

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 (42) hide show
  1. package/README.md +14 -0
  2. package/dist/cli/repl.d.ts.map +1 -1
  3. package/dist/cli/repl.js +32 -1
  4. package/dist/cli/repl.js.map +1 -1
  5. package/dist/cli/run.d.ts.map +1 -1
  6. package/dist/cli/run.js +4 -0
  7. package/dist/cli/run.js.map +1 -1
  8. package/dist/prolog-src/deepclause_mi.pl +168 -13
  9. package/dist/repl/agent.d.ts +7 -0
  10. package/dist/repl/agent.d.ts.map +1 -1
  11. package/dist/repl/agent.js +21 -9
  12. package/dist/repl/agent.js.map +1 -1
  13. package/dist/repl/harness-tools.d.ts +1 -0
  14. package/dist/repl/harness-tools.d.ts.map +1 -1
  15. package/dist/repl/harness-tools.js +2 -2
  16. package/dist/repl/harness-tools.js.map +1 -1
  17. package/dist/repl/history.d.ts +23 -1
  18. package/dist/repl/history.d.ts.map +1 -1
  19. package/dist/repl/history.js +42 -0
  20. package/dist/repl/history.js.map +1 -1
  21. package/dist/repl/index.d.ts +6 -0
  22. package/dist/repl/index.d.ts.map +1 -1
  23. package/dist/repl/index.js +3 -0
  24. package/dist/repl/index.js.map +1 -1
  25. package/dist/repl/render.d.ts.map +1 -1
  26. package/dist/repl/render.js +10 -0
  27. package/dist/repl/render.js.map +1 -1
  28. package/dist/repl/session.d.ts +38 -0
  29. package/dist/repl/session.d.ts.map +1 -1
  30. package/dist/repl/session.js +98 -5
  31. package/dist/repl/session.js.map +1 -1
  32. package/dist/runner.d.ts +7 -1
  33. package/dist/runner.d.ts.map +1 -1
  34. package/dist/runner.js +31 -4
  35. package/dist/runner.js.map +1 -1
  36. package/dist/system/assets/docs/AGENT_PROMPT.md +65 -0
  37. package/dist/system/assets/docs/DML_AUTHORING.md +7 -3
  38. package/dist/system/assets/docs/DML_REFERENCE.md +59 -0
  39. package/dist/types.d.ts +14 -1
  40. package/dist/types.d.ts.map +1 -1
  41. package/package.json +1 -1
  42. package/src/prolog-src/deepclause_mi.pl +168 -13
package/dist/types.d.ts CHANGED
@@ -259,6 +259,13 @@ export interface FormEventPayload {
259
259
  pid?: string;
260
260
  };
261
261
  }
262
+ /** A turn stopped at a safe point, with the goal that resumes it. */
263
+ export interface SuspendEventPayload {
264
+ /** The goal to run to continue where the turn stopped, e.g. `loop(3)`. */
265
+ continuation: string;
266
+ /** Turn memory at the stop, so a resume continues the same conversation. */
267
+ memory?: string;
268
+ }
262
269
  /** What a consumer sends back when the user acts on a form. */
263
270
  export interface FormSubmitPayload {
264
271
  action: string;
@@ -267,7 +274,7 @@ export interface FormSubmitPayload {
267
274
  errors?: FormIssue[];
268
275
  }
269
276
  export interface DMLEvent extends FrameEventMeta {
270
- type: 'output' | 'log' | 'diagnostic' | 'answer' | 'input_required' | 'error' | 'finished' | 'stream' | 'reasoning' | 'tool_call' | 'model_call' | 'usage' | 'memory_compaction' | 'task_activity' | 'solution' | 'meta_result' | 'media' | 'form';
277
+ type: 'output' | 'log' | 'diagnostic' | 'answer' | 'input_required' | 'error' | 'finished' | 'stream' | 'reasoning' | 'tool_call' | 'model_call' | 'usage' | 'memory_compaction' | 'task_activity' | 'solution' | 'meta_result' | 'media' | 'html' | 'form' | 'suspend';
271
278
  content?: string;
272
279
  /**
273
280
  * Severity of a `log` event. Prolog's own stderr arrives this way; `warning`
@@ -284,8 +291,14 @@ export interface DMLEvent extends FrameEventMeta {
284
291
  data?: string;
285
292
  kind?: string;
286
293
  };
294
+ /** Workspace HTML miniapp produced by `output(html(Path))`. */
295
+ html?: {
296
+ path: string;
297
+ };
287
298
  /** Form interaction (only for 'form' events). See docs/DML_FORMS.md. */
288
299
  form?: FormEventPayload;
300
+ /** A turn stopped at a safe point (only for 'suspend' events). */
301
+ suspend?: SuspendEventPayload;
289
302
  /** Model-call lifecycle (only for 'model_call' events). */
290
303
  modelCallState?: 'started' | 'completed' | 'failed';
291
304
  /** Model id for a 'model_call' event, when known. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.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.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Neuro-symbolic runtime: a self-modifying DML/Prolog REPL, one-shot runner, and TypeScript SDK",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -89,6 +89,9 @@
89
89
  repl_commit/3,
90
90
  repl_last_commit_summary/2,
91
91
  repl_execute_frame/4,
92
+ read_workspace_file/3,
93
+ workspace_read_path/3,
94
+ read_workspace_chars/2,
92
95
  repl_record_meta/3,
93
96
  repl_memory_term/3,
94
97
  repl_get_memory/3,
@@ -165,6 +168,7 @@
165
168
  :- dynamic session_form_result/2. % session_form_result(SessionId, Result) - forms primitive results
166
169
  :- dynamic session_builtin_tool/2. % session_builtin_tool(SessionId, ToolName) - runtime-installed tools
167
170
  :- dynamic session_next_result/2. % session_next_result(SessionId, Item) - conversation inbox item
171
+ :- dynamic session_resource/2. % session_resource(SessionId, Resource) - held stream/form (docs/DML_REPL_SUSPEND_RESUME.md)
168
172
 
169
173
  %% ============================================================
170
174
  %% DML Parsing
@@ -826,7 +830,7 @@ process_directive(consult(File), SessionId) :-
826
830
  !,
827
831
  % Set session ID for get_session_id to find, then call our custom consult
828
832
  nb_setval(current_session_id, SessionId),
829
- system:read_file_to_string(File, Code, []),
833
+ read_workspace_file(SessionId, File, Code),
830
834
  consult_string(Code, SessionId).
831
835
  %% Handle use_module directive
832
836
  process_directive(use_module(Module), SessionId) :-
@@ -1046,6 +1050,7 @@ repl_unhandled_directives(SessionId, Directives) :-
1046
1050
  %% The engine is registered as the session's default `query` frame so that
1047
1051
  %% step_engine/4 keeps working as a thin wrapper over step_frame/4.
1048
1052
  create_engine(SessionId, _MemoryId, Args, Params, InitialMemory, Engine) :-
1053
+ release_stale_resources(SessionId),
1049
1054
  assertz(session_params(SessionId, Params)),
1050
1055
  determine_agent_goal(SessionId, Args, Goal),
1051
1056
  % Check if tracing is enabled and store in session state
@@ -1318,7 +1323,8 @@ repl_initial_state(SessionId, FrameKind, InitialState) :-
1318
1323
  %% step_engine/4 and the runner can drive it.
1319
1324
  query_start(SessionId, Text, FrameKind, InitialState, Error) :-
1320
1325
  catch(
1321
- ( read_repl_goal(SessionId, Text, Goal, Names),
1326
+ ( release_stale_resources(SessionId),
1327
+ read_repl_goal(SessionId, Text, Goal, Names),
1322
1328
  create_frame_raw(SessionId, FrameKind, 0,
1323
1329
  deepclause_mi:repl_solve(Goal, Names, SessionId, InitialState),
1324
1330
  FrameId),
@@ -1398,8 +1404,16 @@ repl_solve(Goal, Names, SessionId, State) :-
1398
1404
  nb_setval(current_session_id, SessionId),
1399
1405
  catch(
1400
1406
  repl_solve_loop(Goal, Names, SessionId, State),
1401
- '$answer_commit',
1402
- true
1407
+ Error,
1408
+ % `answer/1` and `suspend/1` both stop enumeration, and both have already
1409
+ % yielded to the host (the answer text, or the continuation). Anything else
1410
+ % is a real error.
1411
+ ( Error == '$answer_commit'
1412
+ -> true
1413
+ ; Error == '$suspend_commit'
1414
+ -> true
1415
+ ; throw(Error)
1416
+ )
1403
1417
  ).
1404
1418
 
1405
1419
  repl_solve_loop(Goal, Names, SessionId, State) :-
@@ -2055,6 +2069,7 @@ repl_assert_many(SessionId, ClausesText, Result) :-
2055
2069
  %% have no plain indicator here (process_clause owns them).
2056
2070
  repl_term_indicator((:- _), _) :- !, fail.
2057
2071
  repl_term_indicator((tool(_, _) :- _), _) :- !, fail.
2072
+ repl_term_indicator((tool(_, _, _) :- _), _) :- !, fail.
2058
2073
  repl_term_indicator((tool(_) :- _), _) :- !, fail.
2059
2074
  repl_term_indicator(Term, Name/Arity) :-
2060
2075
  repl_head_of(Term, Head),
@@ -3209,7 +3224,9 @@ step_engine(SessionId, Status, Content, Payload) :-
3209
3224
  %% process_engine_result(+Result, -Status, -Content, -Payload)
3210
3225
  process_engine_result(output(Text), output, Text, none) :- !.
3211
3226
  process_engine_result(media(Payload), media, '', Payload) :- is_dict(Payload), !.
3227
+ process_engine_result(html(Payload), html, '', Payload) :- is_dict(Payload), !.
3212
3228
  process_engine_result(log(Text), log, Text, none) :- !.
3229
+ process_engine_result(suspend(Continuation, Memory), suspend, '', payload{continuation: Continuation, memory: Memory}) :- !.
3213
3230
  process_engine_result(answer(Text), answer, Text, none) :- !.
3214
3231
  %% Current 8-arg format (with model spec from with_model/2)
3215
3232
  %% Conversation: the same loop with `mode: chat` (no finish, ends when the model stops).
@@ -3436,6 +3453,8 @@ mi(Goal, StateIn, SessionId) :-
3436
3453
  Error,
3437
3454
  ( Error == '$answer_commit'
3438
3455
  -> true % answer/1 threw to commit - success, no backtracking
3456
+ ; Error == '$suspend_commit'
3457
+ -> true % suspend/1 threw to stop here; the host holds the continuation
3439
3458
  ; Error == gas_exhausted
3440
3459
  -> engine_yield(error("Gas exhausted: execution exceeded iteration limit")),
3441
3460
  fail
@@ -3798,6 +3817,9 @@ create_tool_engine(SessionId, ToolName, Args, ToolEngineId) :-
3798
3817
 
3799
3818
  %% handle_tool_engine_error(+Error, -Result)
3800
3819
  handle_tool_engine_error('$answer_commit', true) :- !.
3820
+ %% A tool body that suspends has already handed its continuation to the host; the
3821
+ %% tool engine stops with it rather than turning it into a tool failure.
3822
+ handle_tool_engine_error('$suspend_commit', suspended) :- !.
3801
3823
  handle_tool_engine_error(Error, error{message: ErrMsg}) :-
3802
3824
  format(atom(ErrMsg), '~w', [Error]).
3803
3825
 
@@ -3839,6 +3861,12 @@ process_tool_engine_result(request_llm(Messages), request_llm, '',
3839
3861
  process_tool_engine_result(request_judgment(Payload), request_judgment, '', Payload) :- !.
3840
3862
  process_tool_engine_result(request_agent_loop(Desc, Vars, Tools, Memory, ToolScope, ReasoningEffort, RecipeContext, ModelSpec, Mode), request_agent_loop, '',
3841
3863
  payload{taskDescription: Desc, outputVars: Vars, userTools: Tools, memory: Memory, toolScope: ToolScope, reasoningEffort: ReasoningEffort, recipeContext: RecipeContext, modelSpec: ModelSpec, mode: Mode}) :- !.
3864
+ %% task/N from inside a tool: includes the model spec.
3865
+ process_tool_engine_result(request_agent_loop(Desc, Vars, Tools, Memory, ToolScope, ReasoningEffort, RecipeContext, ModelSpec), request_agent_loop, '',
3866
+ payload{taskDescription: Desc, outputVars: Vars, userTools: Tools, memory: Memory, toolScope: ToolScope, reasoningEffort: ReasoningEffort, recipeContext: RecipeContext, modelSpec: ModelSpec}) :- !.
3867
+ %% prompt/N from inside a tool: no tools and no memory, but carries the model spec.
3868
+ process_tool_engine_result(request_agent_loop(Desc, Vars, Tools, Memory, ToolScope, ModelSpec), request_agent_loop, '',
3869
+ payload{taskDescription: Desc, outputVars: Vars, userTools: Tools, memory: Memory, toolScope: ToolScope, reasoningEffort: none, recipeContext: "", modelSpec: ModelSpec}) :- !.
3842
3870
  process_tool_engine_result(request_agent_loop(Desc, Vars, Tools, Memory, ToolScope, ReasoningEffort, RecipeContext), request_agent_loop, '',
3843
3871
  payload{taskDescription: Desc, outputVars: Vars, userTools: Tools, memory: Memory, toolScope: ToolScope, reasoningEffort: ReasoningEffort, recipeContext: RecipeContext}) :- !.
3844
3872
  %% Legacy 5-arg format (no reasoning/recipe)
@@ -5298,6 +5326,61 @@ mi_call(answer(Text), StateIn, StateIn) :-
5298
5326
  engine_yield(answer(InterpText)),
5299
5327
  throw('$answer_commit').
5300
5328
 
5329
+ %% mi_call(suspend(+Continuation), +StateIn, -StateOut)
5330
+ %% Stop the turn at a **safe point** and let the host persist a resumable
5331
+ %% continuation (docs/DML_REPL_SUSPEND_RESUME.md).
5332
+ %%
5333
+ %% `Continuation` is the goal that resumes where this left off — the entry point
5334
+ %% of the loop whose state is the argument, e.g.
5335
+ %%
5336
+ %% loop(State) :- ..., checkpoint(State), suspend(loop(State)).
5337
+ %%
5338
+ %% A turn is suspended *between* host calls, never inside one: a model call, a
5339
+ %% shell command or a form wait has already handed control to the host by the time
5340
+ %% this runs. Non-serializable state it did not hand over — an open stream, an open
5341
+ %% form — makes it refuse, so a resumed session can never inherit a half-written
5342
+ %% file.
5343
+ mi_call(suspend(Continuation), StateIn, StateIn) :-
5344
+ !,
5345
+ get_session_id(SessionId),
5346
+ ( session_resource(SessionId, Resource)
5347
+ -> format(atom(Message),
5348
+ 'cannot suspend while holding ~w: close it first', [Resource]),
5349
+ throw(error(suspend_refused(Resource), Message))
5350
+ ; true
5351
+ ),
5352
+ term_string(Continuation, ContinuationText),
5353
+ get_memory(StateIn, Memory),
5354
+ engine_yield(suspend(ContinuationText, Memory)),
5355
+ throw('$suspend_commit').
5356
+
5357
+ %% release_stale_resources(+SessionId)
5358
+ %% A turn that was aborted while holding a stream leaves the handle open and the
5359
+ %% ledger non-empty, which would block every later `suspend/1`. Runs start clean:
5360
+ %% close whatever the previous turn left open and forget it. (A suspension is a
5361
+ %% clean stop, so it never leaves anything behind — `suspend/1` refuses while the
5362
+ %% ledger is non-empty.)
5363
+ release_stale_resources(SessionId) :-
5364
+ forall(session_resource(SessionId, Resource),
5365
+ ( Resource = file(_, Stream)
5366
+ -> catch(close(Stream), _, true)
5367
+ ; true
5368
+ )),
5369
+ retractall(session_resource(SessionId, _)).
5370
+
5371
+ %% acquire_resource(+Resource) / release_resources(+Pattern)
5372
+ %% What a turn holds that a snapshot cannot: a stream or an open form.
5373
+ acquire_resource(Resource) :-
5374
+ get_session_id(SessionId),
5375
+ ( session_resource(SessionId, Resource)
5376
+ -> true
5377
+ ; assertz(session_resource(SessionId, Resource))
5378
+ ).
5379
+
5380
+ release_resources(Pattern) :-
5381
+ get_session_id(SessionId),
5382
+ retractall(session_resource(SessionId, Pattern)).
5383
+
5301
5384
  %% mi_call(output(Media), +StateIn, -StateOut)
5302
5385
  %% Present an image instead of text: `output(media(Path, Mime))`, `output(media(Path))`,
5303
5386
  %% or a dict form (`media{svg: Svg}`, `media{data: Base64, mime: Mime}`). The host
@@ -5321,6 +5404,22 @@ mi_call(output(Media), StateIn, StateIn) :-
5321
5404
  add_trace_entry(SessionId, media, media, [Path], Depth),
5322
5405
  engine_yield(media(media{path: Path, mimeType: Mime, kind: Kind, data: Data})).
5323
5406
 
5407
+ %% mi_call(output(html(Path)), +StateIn, -StateOut)
5408
+ %% Present a workspace HTML file as an interactive miniapp.
5409
+ mi_call(output(html(Path)), StateIn, StateIn) :-
5410
+ nonvar(Path),
5411
+ ( string(Path)
5412
+ -> HtmlPath = Path
5413
+ ; atom(Path)
5414
+ -> atom_string(Path, HtmlPath)
5415
+ ; fail
5416
+ ),
5417
+ get_session_id(SessionId),
5418
+ get_depth(StateIn, Depth),
5419
+ add_trace_entry(SessionId, html, html, [HtmlPath], Depth),
5420
+ !,
5421
+ engine_yield(html(html{path: HtmlPath})).
5422
+
5324
5423
  %% mi_call(output(Text), +StateIn, -StateOut)
5325
5424
  mi_call(output(Text), StateIn, StateIn) :-
5326
5425
  get_params(StateIn, Params),
@@ -5365,7 +5464,10 @@ mi_call(form(Spec, FormId), StateIn, StateIn) :-
5365
5464
  session_form_result(SessionId, Result),
5366
5465
  retract(session_form_result(SessionId, _)),
5367
5466
  ( Result = ok(Dict)
5368
- -> get_dict(formId, Dict, FormId)
5467
+ -> get_dict(formId, Dict, FormId),
5468
+ % An open form is host state a snapshot cannot carry, so `suspend/1`
5469
+ % refuses until it is closed (docs/DML_REPL_SUSPEND_RESUME.md).
5470
+ acquire_resource(form(FormId))
5369
5471
  ; throw(error(form_open_failed(Result), form/2))
5370
5472
  ).
5371
5473
 
@@ -5390,6 +5492,7 @@ mi_call(form_errors(FormId, Issues), StateIn, StateIn) :-
5390
5492
  %% mi_call(close_form(+FormId), +StateIn, -StateOut)
5391
5493
  mi_call(close_form(FormId), StateIn, StateIn) :-
5392
5494
  !,
5495
+ release_resources(form(FormId)),
5393
5496
  get_session_id(SessionId),
5394
5497
  engine_yield(request_form(close, FormId)),
5395
5498
  get_next_signal(SessionId, _),
@@ -5648,6 +5751,10 @@ repl_reserved_clause((tool(ToolHead, _) :- _)) :-
5648
5751
  !,
5649
5752
  functor(ToolHead, Name, _),
5650
5753
  repl_reserved_name(Name).
5754
+ repl_reserved_clause((tool(ToolHead, _, _) :- _)) :-
5755
+ !,
5756
+ functor(ToolHead, Name, _),
5757
+ repl_reserved_name(Name).
5651
5758
  repl_reserved_clause((tool(ToolHead) :- _)) :-
5652
5759
  !,
5653
5760
  functor(ToolHead, Name, _),
@@ -6229,6 +6336,41 @@ pattern_normalise(Value, Normalised) :-
6229
6336
  split_string(Lower, " _-", "", Parts),
6230
6337
  atomic_list_concat(Parts, '', Normalised).
6231
6338
 
6339
+ %% read_workspace_file(+SessionId, +File, -Content)
6340
+ %%
6341
+ %% `read_file_to_string/3` goes through SWI's `absolute_file_name/2`, which
6342
+ %% resolves differently inside an `execute` frame and can turn
6343
+ %% `/workspace/foo` into `/home/foo` (or a basename under another cwd). The
6344
+ %% mounted FS accepts the absolute path through open/4, so read it explicitly
6345
+ %% and join the lines. Relative paths are anchored at the session workspace.
6346
+ read_workspace_file(SessionId, File, Content) :-
6347
+ deepclause_mi:workspace_read_path(SessionId, File, Path),
6348
+ setup_call_cleanup(
6349
+ open(Path, read, Stream, [encoding(utf8)]),
6350
+ deepclause_mi:read_workspace_chars(Stream, Chars),
6351
+ close(Stream)
6352
+ ),
6353
+ string_chars(Content, Chars).
6354
+
6355
+ workspace_read_path(_SessionId, File, Path) :-
6356
+ ( string(File)
6357
+ -> Text = File
6358
+ ; atom(File)
6359
+ -> atom_string(File, Text)
6360
+ ; throw(error(type_error(file_name, File), context(read_workspace_file/3, _)))
6361
+ ),
6362
+ ( sub_string(Text, 0, 1, _, "/")
6363
+ -> Path = Text
6364
+ ; atomic_list_concat(['/workspace/', Text], '', Path)
6365
+ ).
6366
+
6367
+ read_workspace_chars(Stream, [Char|Chars]) :-
6368
+ get_char(Stream, Char),
6369
+ Char \== end_of_file,
6370
+ !,
6371
+ deepclause_mi:read_workspace_chars(Stream, Chars).
6372
+ read_workspace_chars(_, []).
6373
+
6232
6374
  %% repl_inject_workspace_predicates(+SessionId)
6233
6375
  %% Idempotent: assertz/1 the same clauses twice is harmless (a duplicate clause
6234
6376
  %% yields the same solution once? no - it yields twice), so clear first.
@@ -6239,9 +6381,9 @@ repl_inject_workspace_predicates(SessionId) :-
6239
6381
  catch(assertz(Clause), _, true)).
6240
6382
 
6241
6383
  workspace_predicate_clause(S, (S:read_file(F, C) :-
6242
- system:read_file_to_string(F, C, []))).
6243
- workspace_predicate_clause(S, (S:read_file_to_string(F, C, O) :-
6244
- system:read_file_to_string(F, C, O))).
6384
+ deepclause_mi:read_workspace_file(S, F, C))).
6385
+ workspace_predicate_clause(S, (S:read_file_to_string(F, C, _O) :-
6386
+ deepclause_mi:read_workspace_file(S, F, C))).
6245
6387
  workspace_predicate_clause(S, (S:write_file(F, C) :-
6246
6388
  system:open(F, write, St), system:write(St, C), system:close(St))).
6247
6389
  workspace_predicate_clause(S, (S:append_file(F, C) :-
@@ -6295,7 +6437,7 @@ mi_call(consult(File), StateIn, StateIn) :-
6295
6437
  !,
6296
6438
  get_session_id(SessionId),
6297
6439
  guard_not_frozen(SessionId),
6298
- system:read_file_to_string(File, Code, []),
6440
+ read_workspace_file(SessionId, File, Code),
6299
6441
  consult_string(Code, SessionId).
6300
6442
 
6301
6443
  mi_call(use_module(Module), StateIn, StateIn) :-
@@ -6391,15 +6533,17 @@ consult_process_term(Head, SessionId) :-
6391
6533
  assertz(SessionId:Head).
6392
6534
 
6393
6535
  %% mi_call(read_file_to_string(File, Content, Options), +StateIn, -StateOut)
6394
- mi_call(read_file_to_string(File, Content, Options), StateIn, StateIn) :-
6536
+ mi_call(read_file_to_string(File, Content, _Options), StateIn, StateIn) :-
6395
6537
  !,
6396
- system:read_file_to_string(File, Content, Options).
6538
+ get_session_id(SessionId),
6539
+ read_workspace_file(SessionId, File, Content).
6397
6540
 
6398
6541
  %% mi_call(read_file(File, Content), +StateIn, -StateOut)
6399
6542
  %% Simplified version without options
6400
6543
  mi_call(read_file(File, Content), StateIn, StateIn) :-
6401
6544
  !,
6402
- system:read_file_to_string(File, Content, []).
6545
+ get_session_id(SessionId),
6546
+ read_workspace_file(SessionId, File, Content).
6403
6547
 
6404
6548
  %% mi_call(write_file(File, Content), +StateIn, -StateOut)
6405
6549
  %% Write string content to a file
@@ -6421,11 +6565,21 @@ mi_call(append_file(File, Content), StateIn, StateIn) :-
6421
6565
  %% Open a file for reading/writing
6422
6566
  mi_call(open(File, Mode, Stream), StateIn, StateIn) :-
6423
6567
  !,
6424
- open(File, Mode, Stream).
6568
+ open(File, Mode, Stream),
6569
+ % A stream is not serializable, so a suspended session must not be holding
6570
+ % one. Track it here and `suspend/1` refuses while the ledger is non-empty.
6571
+ acquire_resource(file(File, Stream)).
6572
+
6573
+ %% mi_call(open(File, Mode, Stream, Options), +StateIn, -StateOut)
6574
+ mi_call(open(File, Mode, Stream, Options), StateIn, StateIn) :-
6575
+ !,
6576
+ open(File, Mode, Stream, Options),
6577
+ acquire_resource(file(File, Stream)).
6425
6578
 
6426
6579
  %% mi_call(close(Stream), +StateIn, -StateOut)
6427
6580
  mi_call(close(Stream), StateIn, StateIn) :-
6428
6581
  !,
6582
+ release_resources(file(_, Stream)),
6429
6583
  close(Stream).
6430
6584
 
6431
6585
  %% mi_call(write(Stream, Content), +StateIn, -StateOut)
@@ -6640,6 +6794,7 @@ is_mi_special_predicate(get_memory(_)).
6640
6794
  is_mi_special_predicate(format(_,_)).
6641
6795
  is_mi_special_predicate(writeln(_)).
6642
6796
  is_mi_special_predicate(write(_)).
6797
+ is_mi_special_predicate(suspend(_)).
6643
6798
  is_mi_special_predicate(input(_,_)).
6644
6799
  %% Conversation (docs/DML_CONVERSATION.md)
6645
6800
  is_mi_special_predicate(input(_)).