@lotics/cli 0.143.2 → 0.144.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/AGENTS.md CHANGED
@@ -1,9 +1,7 @@
1
1
  # @lotics/cli — agent index
2
2
 
3
3
  The model an agent needs before driving this CLI: which surface answers which question, what the
4
- conventions are, and where the traps are. It deliberately does **not** list commands — `lotics --help`
5
- renders § COMMANDS from the same table the CLI dispatches on, so it is the one inventory that cannot
6
- fall behind the binary you have.
4
+ conventions are, and where the traps are.
7
5
 
8
6
  | Read | For |
9
7
  |---|---|
@@ -51,18 +49,15 @@ whether something exists, read `lotics --help` § COMMANDS — the whole section
51
49
  `workspace doctor` on findings. Scripts can gate on them.
52
50
  - **Text output is the default and is built for reading**; reach for `--json` only when a field is
53
51
  needed programmatically.
54
- - **`lotics report '<json>'` is the channel for what nothing else records.** Telemetry is keyed off
55
- commands that FAILED, so the two classes worth the most are invisible to it: a capability that
56
- does not exist (no command ran) and a run that exited 0 having done the wrong thing. Reach for it
57
- when the platform is genuinely missing something, when a success was wrong, or when an error did
52
+ - **`lotics report '<json>'` is the channel for what nothing else records.** Reach for it
53
+ when the platform is genuinely missing something (a capability that does not exist no
54
+ command ran), when a success was wrong (exited 0, wrong effect), or when an error did
58
55
  not name the remedy — not for your own mistakes, which the logs already show.
59
56
  **It is a frame, not a paragraph** — `{goal, actual, expected?, tried?, wanted?}`, because a log
60
57
  reconstructs what you RAN and never what you WANTED, and that gap is the report. `goal` and
61
- `actual` are required; there is no severity or category to pick (how bad and how common are read
62
- off the corpus, and a taxonomy in a released binary cannot be corrected without a release). The
58
+ `actual` are required; there is no severity or category to pick. The
63
59
  session's commands attach themselves — do not retype them. Run it bare for the full prompt; a
64
- long one rides `@file.json` or an explicit `-` for stdin (bare NEVER reads stdin, so an
65
- inherited pipe cannot wedge the one command meant to unblock you).
60
+ long one rides `@file.json` or an explicit `-` for stdin (bare NEVER reads stdin).
66
61
  - **`LOTICS_TELEMETRY=1` correlates a whole session** so the authoring loop's rough edges can be
67
62
  found and fixed. Off by default; set it in the shell profile, not per command (each invocation is
68
63
  its own process). It sends no arguments, no file contents, and no record data — see README
@@ -93,7 +88,3 @@ whether something exists, read `lotics --help` § COMMANDS — the whole section
93
88
  `src/agents/<alias>.md` and is pushed by `app agent set`.
94
89
  - **OAuth connections.** Attaching a connected account is web-only; the CLI can list them.
95
90
  - **Anything needing a browser.** `app dev` and `file preview` shell out to a local Chrome.
96
-
97
- Everything above is a *known* boundary. When you hit one that is NOT listed here — a verb that
98
- should exist and does not — that is the gap worth reporting, and `lotics report` is how it reaches
99
- us. Working around it silently is how it stays missing.
package/README.md CHANGED
@@ -23,9 +23,12 @@ time, so a doc or a whole package added upstream shows up without upgrading this
23
23
  Per-command contracts, flags, exit codes and gotchas are in
24
24
  [docs/cli_reference.md](./docs/cli_reference.md); `lotics --help` is the always-current verb list.
25
25
 
26
- Two of the platform's primary surfaces have dedicated usage guides that ship inside this
26
+ The platform's primary surfaces have dedicated usage guides that ship inside this
27
27
  package (reachable at `node_modules/@lotics/cli/docs/*.md` once installed):
28
28
 
29
+ - [`docs/building_an_app.md`](docs/building_an_app.md) — building a custom-code app end to end:
30
+ the sequence the steps go in (clarify → model → types → queries → workflows → screens → ship)
31
+ and the deploy-free inner loop. Read it once before starting an app.
29
32
  - [`docs/document_templates.md`](docs/document_templates.md) — generate finished documents
30
33
  (PDF, Excel, Word, email) by filling reusable templates: the five template types, the
31
34
  create → generate → chain lifecycle, and the marker capabilities.
@@ -33,8 +36,6 @@ package (reachable at `node_modules/@lotics/cli/docs/*.md` once installed):
33
36
  workspace facts an agent can't guess, the access-vs-activation model, and the
34
37
  catalog-then-stage retrieval model agents use to pull only the lines they need.
35
38
 
36
- Both point to `lotics tools <name>` for exact input schemas.
37
-
38
39
  ## Install
39
40
 
40
41
  ```bash
@@ -118,7 +119,7 @@ Every request identifies the CLI (`user-agent: lotics-cli/<version> node/<v> <pl
118
119
  - Requests carry a session id shared by every command in the sitting — under an agent harness it adopts the harness's own session id, otherwise it rolls over after 30 minutes idle (`~/.lotics/session.json`).
119
120
  - Each invocation appends one record to `~/.lotics/telemetry.ndjson` — the command, its exit code, how long it took, and, on a failure, the message that was printed. Batches are sent on a later run; a failed send is retried, never dropped silently.
120
121
 
121
- Arguments contribute a **hash** and a **shape** (`records[].data.name:string`) and nothing else — no values, no file contents, no record data. The hash is the point: two failures in a row with the same hash mean the error message did not tell you enough to fix the call, which is how bad errors get found. This turns "this command failed" into "this command failed after these eleven, and the agent never recovered."
122
+ Arguments contribute a **hash** and a **shape** (`records[].data.name:string`) and nothing else — no values, no file contents, no record data. The hash is the point: two failures in a row with the same hash mean the error message did not tell you enough to fix the call.
122
123
 
123
124
  Unset, nothing is stored, nothing is sent, and no spool file is created.
124
125
 
@@ -148,14 +149,10 @@ reconstruct what you *wanted*, and the gap between the two is the report.
148
149
  | `tried` | | what you already tried, and what it said |
149
150
  | `wanted` | | what would have unblocked you |
150
151
 
151
- There is no severity or category to pick. How bad and how common are read off the corpus; what you
152
- were trying to do is not recoverable from anywhere else.
152
+ There is no severity or category to pick.
153
153
 
154
- Reading from stdin needs an explicit `-`. `report`'s only argument IS the report, so a bare
155
- invocation and a piped one look identical in argv and "is this a pipe?" cannot tell a live
156
- writer from a descriptor a supervisor left open, so guessing either hangs forever or drops a
157
- slow writer's report. With `-` the bare form always prints the frame and a piped one waits as
158
- long as it takes.
154
+ Reading from stdin needs an explicit `-`. With `-` the bare form always prints the frame and a
155
+ piped one waits as long as it takes.
159
156
 
160
157
  If `LOTICS_TELEMETRY=1` is set, the commands from your session attach themselves — don't retype
161
158
  them. It runs whether or not telemetry is on (invoking it is the consent that passive recording
@@ -163,7 +160,7 @@ needs an opt-in for), posts immediately, and tells you if it did not land.
163
160
 
164
161
  Do not paste records, file contents, or credentials.
165
162
 
166
- In an app project, `lotics app *` commands derive the credential from the directory when nothing explicit chose one: the manifest names the app's workspace, and when exactly one saved profile owns that workspace, that profile is used — the machine-wide default (which another shell can move between two of your commands) is never consulted. An explicit flag, env var, or directory pin still wins, and an org whose profile remembers a different workspace simply falls through to the announced default, exactly as before.
163
+ In an app project, `lotics app *` commands derive the credential from the directory when nothing explicit chose one: the manifest names the app's workspace, and when exactly one saved profile owns that workspace, that profile is used — the machine-wide default is never consulted. An explicit flag, env var, or directory pin still wins, and an org whose profile remembers a different workspace simply falls through to the announced default.
167
164
 
168
165
  ## Workspaces
169
166
 
@@ -313,7 +310,6 @@ cat input.json | lotics app agent run app_abc recognize # inputs via stdi
313
310
  lotics app agent run app_abc recognize --json # full run summary to stdout
314
311
  lotics app agent run app_abc recognize --session cli-123 '{}' # continue an existing thread
315
312
 
316
- # Dev-link @lotics/ui to packages/ui/src for live HMR (Vite alias; deploy bundles it)
317
313
  # Dev-link @lotics/ui to a monorepo checkout for ONE command — nothing is written to disk
318
314
  LOTICS_UI_SRC=/abs/monorepo/packages/ui/src lotics app dev
319
315
  LOTICS_UI_SRC=/abs/monorepo/packages/ui/src lotics app deploy -m "..." # warns: bundles YOUR kit copy