deepclause-sdk 0.2.2 → 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 (117) hide show
  1. package/README.md +86 -3
  2. package/dist/agent.d.ts +17 -0
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +148 -42
  5. package/dist/agent.js.map +1 -1
  6. package/dist/cli/config.d.ts +12 -12
  7. package/dist/cli/repl.d.ts +13 -1
  8. package/dist/cli/repl.d.ts.map +1 -1
  9. package/dist/cli/repl.js +177 -5
  10. package/dist/cli/repl.js.map +1 -1
  11. package/dist/cli/run.d.ts.map +1 -1
  12. package/dist/cli/run.js +4 -0
  13. package/dist/cli/run.js.map +1 -1
  14. package/dist/forms/index.d.ts +3 -0
  15. package/dist/forms/index.d.ts.map +1 -0
  16. package/dist/forms/index.js +3 -0
  17. package/dist/forms/index.js.map +1 -0
  18. package/dist/forms/registry.d.ts +119 -0
  19. package/dist/forms/registry.d.ts.map +1 -0
  20. package/dist/forms/registry.js +256 -0
  21. package/dist/forms/registry.js.map +1 -0
  22. package/dist/forms/spec.d.ts +193 -0
  23. package/dist/forms/spec.d.ts.map +1 -0
  24. package/dist/forms/spec.js +295 -0
  25. package/dist/forms/spec.js.map +1 -0
  26. package/dist/index.d.ts +7 -2
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +7 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/prolog/loader.d.ts +18 -0
  31. package/dist/prolog/loader.d.ts.map +1 -1
  32. package/dist/prolog/loader.js +26 -1
  33. package/dist/prolog/loader.js.map +1 -1
  34. package/dist/prolog-src/deepclause_mi.pl +786 -40
  35. package/dist/repl/agent.d.ts +11 -0
  36. package/dist/repl/agent.d.ts.map +1 -1
  37. package/dist/repl/agent.js +23 -9
  38. package/dist/repl/agent.js.map +1 -1
  39. package/dist/repl/form-widget.d.ts +56 -0
  40. package/dist/repl/form-widget.d.ts.map +1 -0
  41. package/dist/repl/form-widget.js +289 -0
  42. package/dist/repl/form-widget.js.map +1 -0
  43. package/dist/repl/harness-tools.d.ts +4 -1
  44. package/dist/repl/harness-tools.d.ts.map +1 -1
  45. package/dist/repl/harness-tools.js +15 -58
  46. package/dist/repl/harness-tools.js.map +1 -1
  47. package/dist/repl/history.d.ts +24 -1
  48. package/dist/repl/history.d.ts.map +1 -1
  49. package/dist/repl/history.js +76 -8
  50. package/dist/repl/history.js.map +1 -1
  51. package/dist/repl/index.d.ts +20 -2
  52. package/dist/repl/index.d.ts.map +1 -1
  53. package/dist/repl/index.js +9 -0
  54. package/dist/repl/index.js.map +1 -1
  55. package/dist/repl/process-backend.d.ts +2 -2
  56. package/dist/repl/process-backend.d.ts.map +1 -1
  57. package/dist/repl/process-executor.d.ts +11 -2
  58. package/dist/repl/process-executor.d.ts.map +1 -1
  59. package/dist/repl/process-executor.js +67 -18
  60. package/dist/repl/process-executor.js.map +1 -1
  61. package/dist/repl/process-worker.d.ts +35 -4
  62. package/dist/repl/process-worker.d.ts.map +1 -1
  63. package/dist/repl/process-worker.js +78 -38
  64. package/dist/repl/process-worker.js.map +1 -1
  65. package/dist/repl/processes.d.ts +4 -0
  66. package/dist/repl/processes.d.ts.map +1 -1
  67. package/dist/repl/processes.js +20 -0
  68. package/dist/repl/processes.js.map +1 -1
  69. package/dist/repl/render.d.ts +17 -0
  70. package/dist/repl/render.d.ts.map +1 -1
  71. package/dist/repl/render.js +60 -0
  72. package/dist/repl/render.js.map +1 -1
  73. package/dist/repl/session.d.ts +143 -7
  74. package/dist/repl/session.d.ts.map +1 -1
  75. package/dist/repl/session.js +317 -20
  76. package/dist/repl/session.js.map +1 -1
  77. package/dist/repl/tui/form-view.d.ts +17 -0
  78. package/dist/repl/tui/form-view.d.ts.map +1 -0
  79. package/dist/repl/tui/form-view.js +25 -0
  80. package/dist/repl/tui/form-view.js.map +1 -0
  81. package/dist/repl/tui/renderer.d.ts +4 -0
  82. package/dist/repl/tui/renderer.d.ts.map +1 -1
  83. package/dist/repl/tui/renderer.js +12 -0
  84. package/dist/repl/tui/renderer.js.map +1 -1
  85. package/dist/repl/worker-host.d.ts +16 -2
  86. package/dist/repl/worker-host.d.ts.map +1 -1
  87. package/dist/repl/worker-host.js +38 -6
  88. package/dist/repl/worker-host.js.map +1 -1
  89. package/dist/repl/worker-protocol.d.ts +14 -0
  90. package/dist/repl/worker-protocol.d.ts.map +1 -1
  91. package/dist/repl/worker-protocol.js +8 -1
  92. package/dist/repl/worker-protocol.js.map +1 -1
  93. package/dist/runner.d.ts +69 -1
  94. package/dist/runner.d.ts.map +1 -1
  95. package/dist/runner.js +381 -44
  96. package/dist/runner.js.map +1 -1
  97. package/dist/sdk.d.ts.map +1 -1
  98. package/dist/sdk.js +12 -0
  99. package/dist/sdk.js.map +1 -1
  100. package/dist/system/assets/docs/AGENT_PROMPT.md +452 -18
  101. package/dist/system/assets/docs/CHAT_PROMPT.md +28 -0
  102. package/dist/system/assets/docs/DML_AUTHORING.md +8 -4
  103. package/dist/system/assets/docs/DML_FORMS.md +740 -0
  104. package/dist/system/assets/docs/DML_REFERENCE.md +239 -4
  105. package/dist/system/assets/docs/HARNESS_EXAMPLES.md +94 -0
  106. package/dist/system/assets/index.d.ts +2 -2
  107. package/dist/system/assets/index.d.ts.map +1 -1
  108. package/dist/system/assets/index.js +4 -0
  109. package/dist/system/assets/index.js.map +1 -1
  110. package/dist/system/environment.d.ts +6 -0
  111. package/dist/system/environment.d.ts.map +1 -1
  112. package/dist/system/environment.js +5 -4
  113. package/dist/system/environment.js.map +1 -1
  114. package/dist/types.d.ts +48 -1
  115. package/dist/types.d.ts.map +1 -1
  116. package/package.json +4 -2
  117. package/src/prolog-src/deepclause_mi.pl +786 -40
@@ -15,6 +15,8 @@
15
15
  - [system/1, user/1](#memory-predicates)
16
16
  - [output/1, yield/1, log/1](#output-predicates)
17
17
  - [answer/1](#answer1)
18
+ - [Forms (structured human input)](#forms-structured-human-input)
19
+ - [Conversation: `chat/1` and `input/1`](#conversation-chat1-and-input1)
18
20
  - [Processes and concurrency](#processes-and-concurrency)
19
21
  - [Control Flow](#control-flow)
20
22
  - [String Interpolation](#string-interpolation)
@@ -412,6 +414,35 @@ tool(count_words(File, Count), "Count words in a workspace file.") :-
412
414
  count_words(File, Count).
413
415
  ```
414
416
 
417
+ The tool head's **last argument is the output**; the ones before it are inputs. A
418
+ tool that needs more than one input therefore needs a **result argument**: a write
419
+ tool is `fs_write(Path, Content, Result)`, not `fs_write(Path, Content)` —
420
+ otherwise the content is taken for the output, the model is never offered a way
421
+ to pass it, and the write silently does nothing.
422
+
423
+ ```prolog
424
+ fs_write(Path, Content, ok) :-
425
+ file_directory_name(Path, Dir),
426
+ ( Dir == "." -> true ; make_directory_path(Dir) ),
427
+ write_file(Path, Content).
428
+
429
+ tool(fs_write(Path, Content, Result),
430
+ "Write a text file, creating parent directories.",
431
+ [string, string]) :-
432
+ fs_write(Path, Content, Result).
433
+ ```
434
+
435
+ `tool/3` takes the **input types** after the description, in order, one per input
436
+ (`[string, string]` above); the last argument is still the output. A tool whose
437
+ output argument is left unbound fails with an explanation rather than reporting a
438
+ silent success.
439
+
440
+ `tool/2` and `tool/3` are **source annotations, not executable predicates**.
441
+ Never call or assert `tool/N` as a goal. The loader installs the implementation
442
+ as `tool(Head) :- Body` and registers its schema separately; nested agents call
443
+ the tool by the head's predicate name, while DML calls the underlying predicate
444
+ directly.
445
+
415
446
  The head and its delegate must have the **same name and the same arity**. The
416
447
  tool body is what runs when the nested agent calls the tool, so a body that
417
448
  calls a different arity either calls nothing (`existence_error`) or calls the
@@ -859,6 +890,37 @@ workspace** pointing outside it; avoid committing those.
859
890
 
860
891
  ### Output Predicates
861
892
 
893
+ #### `output(html(+Path))`
894
+
895
+ Display a workspace HTML file as an interactive miniapp:
896
+
897
+ ```prolog
898
+ agent_main :-
899
+ output(html("miniapp/index.html")).
900
+ ```
901
+
902
+ The path is workspace-relative. The web host loads the file, inlines relative
903
+ images, CSS and scripts from the same directory tree, and renders it in a
904
+ sandboxed iframe. The miniapp runs without same-origin access to the app.
905
+
906
+ Inside the miniapp, `window.dc.call(Goal)` runs a DML goal in the session or run
907
+ that rendered it and returns a promise:
908
+
909
+ ```html
910
+ <script>
911
+ window.dc.call('double(21, X).').then((result) => {
912
+ console.log(result.bindings[0].value); // 42
913
+ });
914
+ </script>
915
+ ```
916
+
917
+ The result contains `{ ok, output, bindings, error? }`. Calls are scoped to the
918
+ rendering owner; the iframe cannot access the app DOM, OPFS, cookies or other
919
+ sessions. Keep miniapp calls bounded and deterministic.
920
+
921
+ The same rendering is available through an `html-file` fenced block in an
922
+ answer. `output(html(Path))` is the DML-level form.
923
+
862
924
  #### `output(+Text)`
863
925
 
864
926
  Emit an output event to the caller. Does NOT affect the LLM conversation. Useful for progress updates:
@@ -938,6 +1000,147 @@ asker(Question, Answer) :-
938
1000
  ).
939
1001
  ```
940
1002
 
1003
+ ### Conversation: `chat/1` and `input/1`
1004
+
1005
+ A conversation is a harness that talks with the person over many turns and acts
1006
+ between them. Failures of `input/1` end the loop.
1007
+
1008
+ `write/1`, `writeln/1` and `format/2` are captured as output events in the REPL
1009
+ (and in `execute`); outside it they write to the process stdout as usual.
1010
+
1011
+ #### `input(-Message)`
1012
+
1013
+ Wait for the person's **next message**, with no prompt — the embedding UI is a
1014
+ chat interface and is already asking. Fails when there is nobody to talk to (a
1015
+ non-interactive run), which is how a conversation loop ends:
1016
+
1017
+ ```prolog
1018
+ loop :-
1019
+ input(A),
1020
+ chat(A),
1021
+ loop.
1022
+ ```
1023
+
1024
+ `input/2` (with a prompt) is for a question inside a task; `input/1` is the turn
1025
+ boundary of a conversation.
1026
+
1027
+ #### `next(-Item)`
1028
+
1029
+ The next thing from the conversation **inbox**: `user(Text)` when the person
1030
+ speaks, or `message(Term)` when a worker (a subagent or service) sent this
1031
+ session a message. Fails when there is nothing left. This is how a conversation
1032
+ also reacts to events, without polling:
1033
+
1034
+ ```prolog
1035
+ loop(Me) :- next(Item), handle(Me, Item), loop(Me).
1036
+
1037
+ handle(_, user(Text)) :- chat(Text).
1038
+ handle(_, message(mail(M))) :- system("New email."), chat("Summarise: {M}").
1039
+ ```
1040
+
1041
+ `input/1` is `next/1` restricted to the person — a worker's message that arrives
1042
+ first stays queued for `next/1`.
1043
+
1044
+ #### `chat(+Message)` / `chat(+Message, -Reply)`
1045
+
1046
+ One **conversational turn**: append `Message` as the user message, run the agent
1047
+ loop with every `tool/N` the harness declares, and stop when the model stops
1048
+ calling tools. A traditional agent loop — no `finish`, no `set_result`, no
1049
+ nudging. The reply is streamed to the UI and kept in memory, so the next `chat/1`
1050
+ sees the conversation; `chat/2` also binds the last assistant message.
1051
+
1052
+ ```prolog
1053
+ agent_main :-
1054
+ system("You are a support assistant. Be brief."),
1055
+ loop.
1056
+
1057
+ loop :- input(A), chat(A), loop.
1058
+ ```
1059
+
1060
+ Use it as the foreground goal (not inside `execute` or a subagent). A turn may
1061
+ open a form, so structured input fits inside a conversation. **A failed turn does
1062
+ not end the conversation**: `chat/1` reports the failure, leaves memory as it was,
1063
+ and the next message starts a fresh turn. See
1064
+ [`docs/DML_CONVERSATION.md`](../../../../docs/DML_CONVERSATION.md).
1065
+
1066
+ ### Forms (structured human input)
1067
+
1068
+ A form asks the human for typed, validated input and hands the values back keyed
1069
+ by field name. Forms are always available — there is no directive and nothing to
1070
+ enable.
1071
+
1072
+ **Two shapes**, by where the fields come from: **dynamic** — the model designs
1073
+ the form from a description (give `task/N` the form tools); **fixed** — the spec
1074
+ is written in the code, with no model. Both use the same registry and the same
1075
+ validation.
1076
+
1077
+ **The spec.** `version` is not needed and a field's `type` defaults to `string`:
1078
+
1079
+ ```prolog
1080
+ Spec = _{ title: "Refund request",
1081
+ fields: [ _{name: amount, type: number, required: true},
1082
+ _{name: reason, type: string, widget: select, required: true,
1083
+ enum: ["duplicate_charge", "not_received", "other"]},
1084
+ _{name: notes, widget: textarea, maxLength: 500} ],
1085
+ actions: [ _{name: submit, title: "Issue refund", kind: primary},
1086
+ _{name: cancel, title: "Cancel", kind: link} ] }.
1087
+ ```
1088
+
1089
+ Field `type` is `string` (default), `number`, `integer`, `boolean`, or an
1090
+ `object` / `array` group; `enum` requires a `string` field. `widget` is a
1091
+ presentation hint only — `text | textarea | number | slider | select | radio |
1092
+ multiselect | checkbox | switch | date | time | datetime | hidden` — and never
1093
+ affects validation. `actions` defaults to submit/cancel.
1094
+
1095
+ **Dynamic: a model drives the loop.** Give `task/N` the form tools and it
1096
+ designs the form from the prompt, waits, and reports:
1097
+
1098
+ ```prolog
1099
+ with_tools([render_form, wait_for_form_change, close_form, set_result, finish],
1100
+ task("Ask for the amount and a reason, then report what the user entered.",
1101
+ string(Summary)))
1102
+ ```
1103
+
1104
+ The model's three calls: `render_form(Spec)` → a form id;
1105
+ `wait_for_form_change(FormId)` → `{action, values, changed, errors}` with
1106
+ `action` = `"submit"` | `"cancel"`; `close_form(FormId)`.
1107
+
1108
+ In a **conversation** (`chat/1`) the third leg is optional: a chat turn does not
1109
+ end while a form it opened is still unanswered, so it waits for the person and
1110
+ hands back the submission. `wait_for_form_change` is then only needed for another
1111
+ round on a form you kept open.
1112
+
1113
+ **Fixed: the harness drives it itself**, with no model, using the primitives
1114
+ `form/2`, `form_update/2`, `form_errors/2`, `await_form/2,3` and `close_form/1`:
1115
+
1116
+ ```prolog
1117
+ agent_main :-
1118
+ form(Spec, F), % render; F is the form handle
1119
+ await_form(F, Change), % blocks until the user acts
1120
+ close_form(F),
1121
+ ( Change.action == submit % an atom: submit, cancel, …
1122
+ -> Change.values = Values % dict keyed by field name
1123
+ ; Values = _{}
1124
+ ).
1125
+ ```
1126
+
1127
+ `Change` is `{ formId, revision, action, values, changed, errors }`; `action` is
1128
+ an **atom**.
1129
+
1130
+ **Validation is the host's.** On a submit the host enforces the spec (`required`,
1131
+ `enum`, ranges, `pattern`, lengths) and the harness's `form_validate(+Values,
1132
+ -Errors)`. A refused submit is never returned: the host puts the errors on the
1133
+ form and `await_form/2` / `wait_for_form_change` keeps waiting. Soft rules go in
1134
+ `form_advisories(+Values, -Advisories)` (never blocking; the `advisories` tool).
1135
+
1136
+ `form/2` and friends are **host handlers, not clauses**, so
1137
+ `current_predicate(form/2)` reports `no` — exactly as it does for `exec/2`. That
1138
+ is expected; it does not mean forms are unavailable. The model-facing tools
1139
+ (`render_form`, `update_form`, `set_form_issues`, `wait_for_form_change`,
1140
+ `validate_form`, `advisories`, `close_form`) are built in.
1141
+
1142
+ Full reference: `reference("forms")`.
1143
+
941
1144
  ---
942
1145
 
943
1146
  ## Processes and concurrency
@@ -981,8 +1184,11 @@ collect([Topic|Topics], [Topic-Summary|Rest]) :-
981
1184
  collect(Topics, Rest).
982
1185
  ```
983
1186
 
984
- `spawn_opt/3` takes a dict of options: `name`, `priority`
985
- (`foreground`/`interactive`/`background`), `timeout` (ms), and `code`.
1187
+ `spawn_opt/3` takes the keys `name`, `priority`
1188
+ (`foreground`/`interactive`/`background`), `timeout` (ms) and `code` — as a dict
1189
+ (`_{name: worker}`), a list (`[name(worker), priority(background)]`) or a single
1190
+ option (`name(worker)`). An option it does not understand is an error; it used to
1191
+ be ignored, so the process silently kept its default label.
986
1192
 
987
1193
  The goal's shape decides the lifecycle:
988
1194
 
@@ -1011,9 +1217,11 @@ session; `whereis(Name, Pid)` resolves it. A name is released when the process
1011
1217
  exits. A process's default label is its goal's functor, so `send(keeper, stop)`
1012
1218
  reaches an unregistered `keeper/…` process.
1013
1219
 
1014
- ### `serve(+Name, +Goal)` / `service_call(+Target, +Request, -Reply[, +Timeout])` / `service_cast(+Target, +Message)`
1220
+ ### `serve(+Name, +Goal[, -Pid])` / `service_call(+Target, +Request, -Reply[, +Timeout])` / `service_cast(+Target, +Message)`
1015
1221
 
1016
- `serve/2` is `spawn/2` + `register/2`. `service_call` sends
1222
+ `serve/2` is `spawn/2` + `register/2` and binds nothing; `serve/3` also binds the
1223
+ pid (what you need to `stop`, `wait` or link it — `spawn/2` already returns one, so
1224
+ there is no separate "options" argument). `service_call` sends
1017
1225
  `request(Self, Ref, Request)` and waits for `reply(Ref, Reply)`, ignoring other
1018
1226
  messages; `service_cast` sends without waiting. A service is an ordinary
1019
1227
  `receive` loop:
@@ -1028,6 +1236,11 @@ counter_service(Count) :-
1028
1236
  ).
1029
1237
  ```
1030
1238
 
1239
+
1240
+ The process is labelled with `Name` (not the goal functor), so `ps`, `whereis/2`
1241
+ and `service_call/3` all use the same handle. `process_info/2` reports both the
1242
+ label and the registered names, and its `usage` counts model tokens — a relay
1243
+ service shows zeros while running.
1031
1244
  ### `swarm(+Worker, +Items, -Results[, +Concurrency])` / `pmap(+Worker, +Items, -Values)`
1032
1245
 
1033
1246
  Run `call(Worker, Item, Value)` once per item, each in its own process, and
@@ -1041,6 +1254,28 @@ swarm(summarise_file, Files, Results, 4),
1041
1254
  findall(S, member(ok(S), Results), Summaries).
1042
1255
  ```
1043
1256
 
1257
+ ### `suspend(+Continuation)`
1258
+
1259
+ Stop the turn at a **safe point** and let the host persist where to continue.
1260
+ `Continuation` is the goal that resumes — the entry point of the loop whose state
1261
+ is its argument:
1262
+
1263
+ ```prolog
1264
+ loop(N) :-
1265
+ ( N >= 2
1266
+ -> suspend(loop(N)) % stop; a later --session resumes with loop(N)
1267
+ ; M is N + 1, loop(M)
1268
+ ).
1269
+ ```
1270
+
1271
+ The turn ends cleanly (like `answer/1`), the host records the continuation and the
1272
+ memory, and `deepclause repl --session <id>` runs it. **A turn cannot suspend while
1273
+ holding something a snapshot cannot carry**: an open stream (`open/3,4` … `close/1`)
1274
+ or an open form (`form/2` … `close_form/1`) makes it fail with
1275
+ `cannot suspend while holding …`. A suspension is always *between* host calls —
1276
+ never inside a `task/N`, `exec/2` or form wait — and the program chooses the point.
1277
+ See [`docs/DML_REPL_SUSPEND_RESUME.md`](../../../../docs/DML_REPL_SUSPEND_RESUME.md).
1278
+
1044
1279
  ### `wait(+Pid[, -Outcome])`
1045
1280
 
1046
1281
  Block until a process terminates, then report what happened. `Outcome` is
@@ -170,3 +170,97 @@ describe_image(Path, Text) :-
170
170
  Images are files; `media(Path, Mime)` is the reference. The bytes are read from
171
171
  the workspace at call time, only PNG/JPEG/GIF/WebP are accepted, and they never
172
172
  enter clauses or memory. Judgments stay text-only.
173
+
174
+ ## 9. Forms: structured input from the user
175
+
176
+ Use a form when the program needs **typed, validated** input rather than free
177
+ text. Forms are always available — no directive, nothing to import.
178
+
179
+ **Let the model design and drive the form** (the usual shape). Give `task/N` the
180
+ form tools and describe what you need:
181
+
182
+ ```prolog
183
+ doc(collect_claim/0, "Collect an expense claim and report it. Example: /goal collect_claim.").
184
+
185
+ collect_claim(Summary) :-
186
+ system("You collect a new expense claim. Ask for the vendor, the amount and a note."),
187
+ with_tools([render_form, wait_for_form_change, close_form, set_result, finish],
188
+ task("Ask for the three fields, then report exactly what the user entered.",
189
+ string(Summary))).
190
+ ```
191
+
192
+ The model's loop is three calls: `render_form(spec)` → a form id,
193
+ `wait_for_form_change(formId)` → `{action, values}`, `close_form(formId)`.
194
+
195
+ **Or drive it from DML**, with no model:
196
+
197
+ ```prolog
198
+ doc(claim_form/1, "Collect an expense claim. claim_form(-Values) returns the entered values.").
199
+
200
+ claim_form(Values) :-
201
+ form(_{ title: "New expense claim",
202
+ fields: [ _{name: vendor, type: string, required: true},
203
+ _{name: amount, type: integer, required: true, minimum: 0},
204
+ _{name: notes, widget: textarea} ] }, F),
205
+ await_form(F, Change),
206
+ close_form(F),
207
+ ( Change.action == submit % an atom: submit, cancel
208
+ -> Change.values = Values
209
+ ; Values = _{}
210
+ ).
211
+
212
+ %% Domain rules on top of the spec's own constraints; both block a submit, and a
213
+ %% refused submit is never returned — the host shows the errors and waits again.
214
+ form_validate(Values, Errors) :-
215
+ findall(error(amount, "the amount looks implausible"),
216
+ ( get_dict(amount, Values, A), A > 100000 ),
217
+ Errors).
218
+ ```
219
+
220
+ Note what is *not* here: no `version`, no loop for rejected submits, no error
221
+ branch. A field's `type` defaults to `string`, and the host owns validation.
222
+ `Change.action` is an **atom** (`submit`, `cancel`) — compare with `==`, never
223
+ against `"submit"`. `current_predicate(form/2)` reports `no` even when forms work
224
+ (it is a host handler, like `exec/2`). See `reference("forms")` and
225
+ `sdk-examples/forms.dml`.
226
+
227
+ ## 10. A conversational agent
228
+
229
+ A conversation talks with the person over many turns and acts between them. Two
230
+ primitives: `input/1` (the next message, no prompt) and `chat/1` (one traditional
231
+ agent turn — tools, no `finish`, no nudging; it ends when the model stops calling
232
+ tools). Run it as the foreground goal, not inside `execute`.
233
+
234
+ ```prolog
235
+ doc(agent_main/0, "Chat assistant that can add. Run with /goal agent_main.").
236
+
237
+ agent_main :-
238
+ system("You are a concise assistant. Use add/3 when asked for arithmetic."),
239
+ loop.
240
+
241
+ loop :-
242
+ input(A), % the person's next message; fails when there is none
243
+ chat(A), % one turn: tools, then it replies and stops
244
+ loop.
245
+
246
+ tool(add(A, B, Result), "Add two numbers.", [number, number]) :-
247
+ Result is A + B.
248
+ ```
249
+
250
+ `chat(Message, Reply)` binds the assistant's last message if the harness wants to
251
+ post-process it, and a failed turn is reported without ending the conversation.
252
+ Memory carries the conversation, so each turn sees what was said. A turn may open
253
+ a **form** (§9), which is how structured input fits inside a conversation.
254
+
255
+ `next/1` reads the same inbox for **events**: replace `input(A), chat(A)` with a
256
+ `next/1` dispatch, and a worker's message wakes the conversation:
257
+
258
+ ```prolog
259
+ loop(Me) :- next(Item), handle(Me, Item), loop(Me).
260
+
261
+ handle(_, user(Text)) :- chat(Text). % the person
262
+ handle(_, message(mail(M))) :- system("New email."), chat("Summarise: {M}").
263
+ ```
264
+
265
+ The `message(Term)` comes from `send(Me, mail(M))` in a spawned worker. See
266
+ [`docs/DML_CONVERSATION.md`](../../../../docs/DML_CONVERSATION.md) §5.
@@ -1,5 +1,5 @@
1
- export type SystemPromptAssetName = 'task';
2
- export type WorkspaceDocAssetName = 'dml-reference' | 'dml-authoring' | 'harness-examples' | 'harness-patterns' | 'prolog-snippets';
1
+ export type SystemPromptAssetName = 'task' | 'chat';
2
+ export type WorkspaceDocAssetName = 'dml-reference' | 'dml-authoring' | 'dml-forms' | 'harness-examples' | 'harness-patterns' | 'prolog-snippets';
3
3
  interface SystemAssetLookupOptions {
4
4
  workspaceRoot?: string;
5
5
  workspacePath?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/system/assets/index.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAC3C,MAAM,MAAM,qBAAqB,GAC7B,eAAe,GACf,eAAe,GACf,kBAAkB,GAClB,kBAAkB,GAClB,iBAAiB,CAAC;AAOtB,UAAU,wBAAwB;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AASD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAE5E;AAkBD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAE5E;AAED,iEAAiE;AACjE,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,MAAM,CAAC,CAUlG;AAkDD,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,qBAAqB,EAC3B,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,MAAM,CAAC,CAEjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/system/assets/index.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,CAAC;AACpD,MAAM,MAAM,qBAAqB,GAC7B,eAAe,GACf,eAAe,GACf,WAAW,GACX,kBAAkB,GAClB,kBAAkB,GAClB,iBAAiB,CAAC;AAOtB,UAAU,wBAAwB;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAWD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAE5E;AAoBD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAE5E;AAED,iEAAiE;AACjE,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,MAAM,CAAC,CAUlG;AAkDD,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,qBAAqB,EAC3B,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,MAAM,CAAC,CAEjB"}
@@ -10,6 +10,8 @@ function getSystemPromptFileName(name) {
10
10
  switch (name) {
11
11
  case 'task':
12
12
  return 'TASK_PROMPT.md';
13
+ case 'chat':
14
+ return 'CHAT_PROMPT.md';
13
15
  }
14
16
  }
15
17
  export function getSystemPromptAssetPath(name) {
@@ -21,6 +23,8 @@ function getWorkspaceDocFileName(name) {
21
23
  return 'DML_REFERENCE.md';
22
24
  case 'dml-authoring':
23
25
  return 'DML_AUTHORING.md';
26
+ case 'dml-forms':
27
+ return 'DML_FORMS.md';
24
28
  case 'harness-examples':
25
29
  return 'HARNESS_EXAMPLES.md';
26
30
  case 'harness-patterns':
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/system/assets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAUpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACzC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAOjD,SAAS,uBAAuB,CAAC,IAA2B;IAC1D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,gBAAgB,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAA2B;IAClE,OAAO,IAAI,CAAC,QAAQ,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,CAAC;AAGD,SAAS,uBAAuB,CAAC,IAA2B;IAC1D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,eAAe;YAClB,OAAO,kBAAkB,CAAC;QAC5B,KAAK,eAAe;YAClB,OAAO,kBAAkB,CAAC;QAC5B,KAAK,kBAAkB;YACrB,OAAO,qBAAqB,CAAC;QAC/B,KAAK,kBAAkB;YACrB,OAAO,qBAAqB,CAAC;QAC/B,KAAK,iBAAiB;YACpB,OAAO,oBAAoB,CAAC;IAChC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAA2B;IAClE,OAAO,IAAI,CAAC,QAAQ,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,uBAAuB;IACrC,OAAO,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,UAAoC,EAAE;IAC/E,MAAM,YAAY,GAAG,6BAA6B,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAC/E,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC,uBAAuB,EAAE,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,wBAAwB,CAAC,aAAqB,EAAE,QAAgB;IACvE,OAAO,IAAI,CAAC,aAAa,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,6BAA6B,CACpC,QAAgB,EAChB,UAAoC,EAAE;IAEtC,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,YAAY,GAAG,wBAAwB,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC/E,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC7C,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC;YAClE,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7B,OAAO,YAAY,CAAC;YACtB,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,MAAM;YACR,CAAC;YACD,OAAO,GAAG,MAAM,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,IAA2B,EAC3B,UAAoC,EAAE;IAEtC,MAAM,YAAY,GAAG,6BAA6B,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3F,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;YAC3B,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;QACvE,CAAC;IACH,CAAC;IAED,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAA2B,EAC3B,UAAoC,EAAE;IAEtC,OAAO,QAAQ,CAAC,MAAM,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;AAC7E,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/system/assets/index.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,12 @@ import { type ExecutionEnvironment } from './runtime/shell-manager.js';
16
16
  export interface EnvironmentBlockOptions {
17
17
  workspacePath?: string;
18
18
  environment?: ExecutionEnvironment;
19
+ /**
20
+ * Name of the single capability host tool (default `bash`). A browser
21
+ * embedding registers `python` (Pyodide) instead, and the block must say so or
22
+ * the model calls a tool that does not exist.
23
+ */
24
+ capabilityTool?: string;
19
25
  /** Injectable clock, so tests do not depend on the wall calendar. */
20
26
  now?: Date;
21
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/system/environment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAE/F,MAAM,WAAW,uBAAuB;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,qEAAqE;IACrE,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,GAAG,GAAE,IAAiB,GAAG,MAAM,CAoB1D;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,uBAA4B,GAAG,MAAM,CAoCjF;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,IAAiB,GAAG,MAAM,CAOlE;AAED,yDAAyD;AACzD,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,uBAA4B,GAAG,MAAM,CAEpF"}
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/system/environment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAE/F,MAAM,WAAW,uBAAuB;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,GAAG,GAAE,IAAiB,GAAG,MAAM,CAoB1D;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,uBAA4B,GAAG,MAAM,CAqCjF;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,IAAiB,GAAG,MAAM,CAOlE;AAED,yDAAyD;AACzD,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,uBAA4B,GAAG,MAAM,CAEpF"}
@@ -40,21 +40,22 @@ export function describeNow(now = new Date()) {
40
40
  * the host: that is the WASM filesystem's mount, which is always there.
41
41
  */
42
42
  export function describeEnvironment(options = {}) {
43
- const { workspacePath, environment } = options;
43
+ const { workspacePath, environment, capabilityTool } = options;
44
44
  const sandboxed = environment?.sandboxed ?? false;
45
45
  const workspace = workspacePath ?? process.cwd();
46
46
  const label = environment?.backendLabel ?? 'unknown';
47
+ const tool = capabilityTool ?? 'bash';
47
48
  const lines = [
48
49
  'EXECUTION ENVIRONMENT',
49
- `- Shell backend: ${label}${environment?.description ? ` (${environment.description})` : ''}.`,
50
+ `- Capability backend: ${label}${environment?.description ? ` (${environment.description})` : ''}.`,
50
51
  ];
51
52
  if (!sandboxed) {
52
- lines.push('- There is NO sandbox: `exec(bash(...))` and the shell tool run as your user '
53
+ lines.push(`- There is NO sandbox: \`exec(${tool}(...))\` and the capability tool run as your user `
53
54
  + 'account. Writes outside the workspace are real files on this machine and '
54
55
  + 'persist, and a `rm` is a real `rm`.');
55
56
  }
56
57
  else {
57
- lines.push(`- \`exec(bash(...))\` is isolated by ${environment?.description}. Writes outside `
58
+ lines.push(`- \`exec(${tool}(...))\` is isolated by ${environment?.description}. Writes outside `
58
59
  + 'the workspace stay inside that sandbox and are gone when it ends.');
59
60
  }
60
61
  lines.push(`- Workspace, as your own tools see it: ${workspace}`, `- Workspace, inside DML and \`exec\`: ${SANDBOX_WORKSPACE_PATH} — and it is the `
@@ -1 +1 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/system/environment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/system/environment.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { z } from 'zod';
5
5
  import type { JudgeBackend, JudgeCapabilities } from './judge/types.js';
6
+ import type { FormIssue, FormSpec, JsonObject } from './forms/spec.js';
6
7
  export type { JudgeAnswer, JudgeBackend, JudgeBackendRequest, JudgeBackendResponse, JudgeBasis, JudgeCapabilities, JudgeLevel, JudgeOption, JudgeQuestion, JudgeQuestionKind, JudgeSelection, JudgeUsage, JsonValue, } from './judge/types.js';
7
8
  /**
8
9
  * Options for creating a DeepClause SDK instance
@@ -185,6 +186,8 @@ export interface RunOptions {
185
186
  /** Initial conversation messages seeded into memory before DML execution.
186
187
  * These appear as proper memory messages, not in the synthesized system prompt. */
187
188
  initialMessages?: MemoryMessage[];
189
+ /** Called when a form opens, so an interactive host can collect values. */
190
+ onForm?: (form: FormEventPayload) => void | Promise<void>;
188
191
  }
189
192
  /**
190
193
  * Trace entry for execution logging
@@ -240,8 +243,38 @@ export interface FrameEventMeta {
240
243
  depth?: number;
241
244
  frameKind?: FrameKind;
242
245
  }
246
+ /** What a consumer sees when a form is opened, updated or closed. */
247
+ export interface FormEventPayload {
248
+ op: 'open' | 'update' | 'close';
249
+ formId: string;
250
+ revision: number;
251
+ spec?: FormSpec;
252
+ values?: JsonObject;
253
+ patch?: JsonObject;
254
+ issues?: FormIssue[];
255
+ state?: 'open' | 'submitted' | 'cancelled';
256
+ reason?: string;
257
+ source?: {
258
+ name?: string;
259
+ pid?: string;
260
+ };
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
+ }
269
+ /** What a consumer sends back when the user acts on a form. */
270
+ export interface FormSubmitPayload {
271
+ action: string;
272
+ values?: JsonObject;
273
+ revision?: number;
274
+ errors?: FormIssue[];
275
+ }
243
276
  export interface DMLEvent extends FrameEventMeta {
244
- type: 'output' | 'log' | 'diagnostic' | 'answer' | 'input_required' | 'error' | 'finished' | 'stream' | 'reasoning' | 'tool_call' | 'model_call' | 'usage' | 'memory_compaction' | 'task_activity' | 'solution' | 'meta_result' | 'media';
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';
245
278
  content?: string;
246
279
  /**
247
280
  * Severity of a `log` event. Prolog's own stderr arrives this way; `warning`
@@ -258,6 +291,14 @@ export interface DMLEvent extends FrameEventMeta {
258
291
  data?: string;
259
292
  kind?: string;
260
293
  };
294
+ /** Workspace HTML miniapp produced by `output(html(Path))`. */
295
+ html?: {
296
+ path: string;
297
+ };
298
+ /** Form interaction (only for 'form' events). See docs/DML_FORMS.md. */
299
+ form?: FormEventPayload;
300
+ /** A turn stopped at a safe point (only for 'suspend' events). */
301
+ suspend?: SuspendEventPayload;
261
302
  /** Model-call lifecycle (only for 'model_call' events). */
262
303
  modelCallState?: 'started' | 'completed' | 'failed';
263
304
  /** Model id for a 'model_call' event, when known. */
@@ -381,6 +422,12 @@ export interface DeepClauseSDK {
381
422
  * @param tool - Tool definition
382
423
  */
383
424
  registerTool(name: string, tool: ToolDefinition): void;
425
+ /**
426
+ * Send a form action (the UI's half of `docs/DML_FORMS.md`). Resolves the
427
+ * `await_form`/`wait_for_form_change` that is waiting on the form.
428
+ * @returns whether a form was listening
429
+ */
430
+ submitForm(formId: string, change: FormSubmitPayload): boolean;
384
431
  /**
385
432
  * Set tool access policy
386
433
  * @param policy - Whitelist/blacklist configuration
@@ -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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"}