@lotics/cli 0.292.2 → 0.293.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.
@@ -126,6 +126,10 @@ export interface ToolInfo {
126
126
  name: string;
127
127
  description: string;
128
128
  input_schema: unknown;
129
+ /** The answer's shape; empty for a tool answering prose. */
130
+ output_schema?: unknown;
131
+ /** A step a workflow body calls, never run from the CLI. */
132
+ workflow_only?: true;
129
133
  }
130
134
  /**
131
135
  * A single knowledge doc with its HYDRATED body — the shape of
package/docs/design.md CHANGED
@@ -223,6 +223,10 @@ captured — and files it as a new row of the record's `timeline` child (`into`)
223
223
  glyph names it — on every option of a select read down a column (how it was paid, the channel, the mode).
224
224
  - Every files field is drawn somewhere — a section's `fields`, a `files` block, the `image`, or where the
225
225
  act making it stands.
226
+ - The paperwork is the proof of the work, so every paper the job takes in and every document it issues has a
227
+ place on the record, in the section where that work happens: a files field per purpose (what arrived, what
228
+ was issued to the customer, to the carrier, to the authority), each kept visible after the stage that made it,
229
+ and a source — a screenshot, an email, a sheet — on the row whose figure came from it.
226
230
  - A screen with none of these is bland, and bland is a finding: text drawn where a treatment above exists
227
231
  is a change to the model.
228
232
 
package/docs/workflows.md CHANGED
@@ -51,7 +51,7 @@ await send_email({
51
51
  | step | syntax |
52
52
  |---|---|
53
53
  | tool call, kept | `const <id> = await <tool>({ ...inputs });` — also `let x = await …` and `x = await …` |
54
- | tool call | `await <tool>({ ...inputs });` |
54
+ | tool call | `await <tool>({ ...inputs });` — a connection's tools too, each a workflow step (`bkav_submit_invoices`, `gmail_send_email`, …); a step that fails ends the run with its reason unless a `try`/`catch` around it handles it |
55
55
  | agent | `const <id> = await agent({ instructions, input, tools, model, output });` — see **An agent step** |
56
56
  | app agent | `const <id> = await app_agent({ alias: "<agent alias>", input: { ... } });` — runs one of the app's declared agents, in an app workflow only, and resolves to its declared outputs or its final text. `wait: false` only starts the run and resolves to `{ run_id }`; the run's failure is then its own, not the workflow's. Refused in a run an agent started. |
57
57
  | bind | `const <id> = <expression>;` — evaluated once; later steps read `<id>`. Bind any expression used twice. |
@@ -64,6 +64,9 @@ await send_email({
64
64
  | return | `return({ status: "success" \| "error", message: <expr>, field_errors: { ... }? });` |
65
65
  | validate | `validate({ checks: [{ fail_when: <expr>, field_key: "...", message: <expr> }, ...] });` |
66
66
 
67
+ Every step's inputs, the values each takes and its answer: `lotics tools <name>` prints them, a connection's steps
68
+ included; `query_integration_tools` lists the workspace's connections and the steps each opens.
69
+
67
70
  `return` is a call, not a JavaScript `return` statement. `validate` ends the workflow with an error
68
71
  when a check's `fail_when` is truthy; the check's `field_key` names the control its message lands on —
69
72
  in an app workflow a declared input, or the `fld_` key of a field on a table the body names; a field of
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lotics/cli",
3
- "version": "0.292.2",
3
+ "version": "0.293.0",
4
4
  "description": "Lotics SDK and CLI for AI agents",
5
5
  "type": "module",
6
6
  "bin": {