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.
- package/README.md +86 -3
- package/dist/agent.d.ts +17 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +148 -42
- package/dist/agent.js.map +1 -1
- package/dist/cli/config.d.ts +12 -12
- package/dist/cli/repl.d.ts +13 -1
- package/dist/cli/repl.d.ts.map +1 -1
- package/dist/cli/repl.js +177 -5
- package/dist/cli/repl.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +4 -0
- package/dist/cli/run.js.map +1 -1
- package/dist/forms/index.d.ts +3 -0
- package/dist/forms/index.d.ts.map +1 -0
- package/dist/forms/index.js +3 -0
- package/dist/forms/index.js.map +1 -0
- package/dist/forms/registry.d.ts +119 -0
- package/dist/forms/registry.d.ts.map +1 -0
- package/dist/forms/registry.js +256 -0
- package/dist/forms/registry.js.map +1 -0
- package/dist/forms/spec.d.ts +193 -0
- package/dist/forms/spec.d.ts.map +1 -0
- package/dist/forms/spec.js +295 -0
- package/dist/forms/spec.js.map +1 -0
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/prolog/loader.d.ts +18 -0
- package/dist/prolog/loader.d.ts.map +1 -1
- package/dist/prolog/loader.js +26 -1
- package/dist/prolog/loader.js.map +1 -1
- package/dist/prolog-src/deepclause_mi.pl +786 -40
- package/dist/repl/agent.d.ts +11 -0
- package/dist/repl/agent.d.ts.map +1 -1
- package/dist/repl/agent.js +23 -9
- package/dist/repl/agent.js.map +1 -1
- package/dist/repl/form-widget.d.ts +56 -0
- package/dist/repl/form-widget.d.ts.map +1 -0
- package/dist/repl/form-widget.js +289 -0
- package/dist/repl/form-widget.js.map +1 -0
- package/dist/repl/harness-tools.d.ts +4 -1
- package/dist/repl/harness-tools.d.ts.map +1 -1
- package/dist/repl/harness-tools.js +15 -58
- package/dist/repl/harness-tools.js.map +1 -1
- package/dist/repl/history.d.ts +24 -1
- package/dist/repl/history.d.ts.map +1 -1
- package/dist/repl/history.js +76 -8
- package/dist/repl/history.js.map +1 -1
- package/dist/repl/index.d.ts +20 -2
- package/dist/repl/index.d.ts.map +1 -1
- package/dist/repl/index.js +9 -0
- package/dist/repl/index.js.map +1 -1
- package/dist/repl/process-backend.d.ts +2 -2
- package/dist/repl/process-backend.d.ts.map +1 -1
- package/dist/repl/process-executor.d.ts +11 -2
- package/dist/repl/process-executor.d.ts.map +1 -1
- package/dist/repl/process-executor.js +67 -18
- package/dist/repl/process-executor.js.map +1 -1
- package/dist/repl/process-worker.d.ts +35 -4
- package/dist/repl/process-worker.d.ts.map +1 -1
- package/dist/repl/process-worker.js +78 -38
- package/dist/repl/process-worker.js.map +1 -1
- package/dist/repl/processes.d.ts +4 -0
- package/dist/repl/processes.d.ts.map +1 -1
- package/dist/repl/processes.js +20 -0
- package/dist/repl/processes.js.map +1 -1
- package/dist/repl/render.d.ts +17 -0
- package/dist/repl/render.d.ts.map +1 -1
- package/dist/repl/render.js +60 -0
- package/dist/repl/render.js.map +1 -1
- package/dist/repl/session.d.ts +143 -7
- package/dist/repl/session.d.ts.map +1 -1
- package/dist/repl/session.js +317 -20
- package/dist/repl/session.js.map +1 -1
- package/dist/repl/tui/form-view.d.ts +17 -0
- package/dist/repl/tui/form-view.d.ts.map +1 -0
- package/dist/repl/tui/form-view.js +25 -0
- package/dist/repl/tui/form-view.js.map +1 -0
- package/dist/repl/tui/renderer.d.ts +4 -0
- package/dist/repl/tui/renderer.d.ts.map +1 -1
- package/dist/repl/tui/renderer.js +12 -0
- package/dist/repl/tui/renderer.js.map +1 -1
- package/dist/repl/worker-host.d.ts +16 -2
- package/dist/repl/worker-host.d.ts.map +1 -1
- package/dist/repl/worker-host.js +38 -6
- package/dist/repl/worker-host.js.map +1 -1
- package/dist/repl/worker-protocol.d.ts +14 -0
- package/dist/repl/worker-protocol.d.ts.map +1 -1
- package/dist/repl/worker-protocol.js +8 -1
- package/dist/repl/worker-protocol.js.map +1 -1
- package/dist/runner.d.ts +69 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +381 -44
- package/dist/runner.js.map +1 -1
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +12 -0
- package/dist/sdk.js.map +1 -1
- package/dist/system/assets/docs/AGENT_PROMPT.md +452 -18
- package/dist/system/assets/docs/CHAT_PROMPT.md +28 -0
- package/dist/system/assets/docs/DML_AUTHORING.md +8 -4
- package/dist/system/assets/docs/DML_FORMS.md +740 -0
- package/dist/system/assets/docs/DML_REFERENCE.md +239 -4
- package/dist/system/assets/docs/HARNESS_EXAMPLES.md +94 -0
- package/dist/system/assets/index.d.ts +2 -2
- package/dist/system/assets/index.d.ts.map +1 -1
- package/dist/system/assets/index.js +4 -0
- package/dist/system/assets/index.js.map +1 -1
- package/dist/system/environment.d.ts +6 -0
- package/dist/system/environment.d.ts.map +1 -1
- package/dist/system/environment.js +5 -4
- package/dist/system/environment.js.map +1 -1
- package/dist/types.d.ts +48 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -2
- 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
|
|
985
|
-
(`foreground`/`interactive`/`background`), `timeout` (ms)
|
|
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
|
|
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;
|
|
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;
|
|
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,
|
|
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
|
-
`-
|
|
50
|
+
`- Capability backend: ${label}${environment?.description ? ` (${environment.description})` : ''}.`,
|
|
50
51
|
];
|
|
51
52
|
if (!sandboxed) {
|
|
52
|
-
lines.push(
|
|
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(
|
|
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":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,sBAAsB,EAA6B,MAAM,4BAA4B,CAAC;
|
|
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
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAExE,YAAY,EACV,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,SAAS,GACV,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,YAAY,CAAC;IAC5D,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kEAAkE;IAClE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0GAA0G;IAE1G,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACtD,gEAAgE;IAChE,aAAa,CAAC,EAAE,OAAO,mCAAmC,EAAE,aAAa,CAAC;IAC1E,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sGAAsG;IACtG,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,sGAAsG;IACtG,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7C,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,8DAA8D;AAC9D,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,GACjB,SAAS,GACT;IACE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEN,wDAAwD;AACxD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,SAAS,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,aAAa,CAAC,EAAE,QAAQ,GAAG,eAAe,GAAG,iBAAiB,GAAG,MAAM,CAAC;IACxE,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,6DAA6D;IAC7D,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,wFAAwF;AACxF,MAAM,WAAW,sBAAsB;IACrC,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAC3E;AAED,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B,mEAAmE;IACnE,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,sFAAsF;IACtF,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,+EAA+E;IAC/E,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,mDAAmD;IACnD,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;IACpE,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,gBAAgB,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,gBAAgB,CAAC,IAAI,MAAM,GAAG,SAAS,CAAC;IACxC,uBAAuB,CAAC,IAAI,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACnE;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC;AACzD,MAAM,MAAM,iBAAiB,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,aAAa,GAAG,YAAY,CAAC;AAC3G,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uDAAuD;IACvD,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,oCAAoC;IACpC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;yFACqF;IACnF,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IAChE,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,gCAAgC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,QAAS,SAAQ,cAAc;IAC9C,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,YAAY,GAAG,QAAQ,GAAG,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,OAAO,GAAG,mBAAmB,GAAG,eAAe,GAAG,UAAU,GAAG,aAAa,GAAG,OAAO,CAAC;IAC1O,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACrC,yEAAyE;IACzE,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC9B,gFAAgF;IAChF,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1E,2DAA2D;IAC3D,cAAc,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACpD,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,oEAAoE;IACpE,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,qEAAqE;IACrE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yDAAyD;IACzD,SAAS,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC5D,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gGAAgG;IAChG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,6DAA6D;IAC7D,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC/C,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,qEAAqE;IACrE,UAAU,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAChD,8CAA8C;IAC9C,WAAW,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IAC9B,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qDAAqD;AACrD,MAAM,WAAW,oBAAoB;IACnC,6EAA6E;IAC7E,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,kFAAkF;IAClF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,UAAU,EAAE,UAAU,CAAC;IACvB,mCAAmC;IACnC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9F;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,8CAA8C;IAC9C,IAAI,EAAE,WAAW,GAAG,WAAW,CAAC;IAChC,kEAAkE;IAClE,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAErE;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAEvD;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAExC;;OAEG;IACH,eAAe,IAAI,IAAI,CAAC;IAExB;;OAEG;IACH,aAAa,IAAI,UAAU,GAAG,IAAI,CAAC;IAEnC;;OAEG;IACH,QAAQ,IAAI,MAAM,EAAE,CAAC;IAErB;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAElC;;;OAGG;IACH,SAAS,IAAI,aAAa,EAAE,CAAC;IAE7B,oDAAoD;IACpD,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAEhE,mDAAmD;IACnD,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC,8CAA8C;IAC9C,gBAAgB,IAAI,MAAM,EAAE,CAAC;IAE7B,yEAAyE;IACzE,oBAAoB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC;IAEvD;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,iDAAiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACjF,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5B,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,YAAY,CAAC;IAC3C,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC;CACzB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|