@lotics/cli 0.205.2 → 0.206.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
@@ -14,6 +14,7 @@ conventions are, and where the traps are.
14
14
  | [docs/data_model.md](./docs/data_model.md) | How tables RELATE — one entity per table and the NAME-OVERLAP probe that says when a split has broken, one vocabulary wherever values are copied between tables, a copy boundary that accounts for every source field, provenance as a link rather than a flag, a declared natural key so find-or-create never compares rendered text, and why derived DEPTH costs more than row count. Separate from building_an_app because every workspace starts with tables and many never get an app. The within-table half (one fact, one column) is stated at `create_table` / `update_table`, where you meet it while deciding. |
15
15
  | [docs/document_templates.md](./docs/document_templates.md) | Generating PDF/Excel/Word/email from reusable templates. |
16
16
  | [docs/knowledge_docs.md](./docs/knowledge_docs.md) | Authoring the workspace facts an agent can't guess; access-vs-activation; catalog-then-stage retrieval. |
17
+ | [docs/migration.md](./docs/migration.md) | What to DO when a release changes the shape of a project this CLI owns. Read once, when something already on disk no longer matches what the CLI writes — currently: an app built from a plan is `app.json` rendered by `@lotics/app-runtime`, not a tree of TSX. |
17
18
  | [README.md](./README.md) | Install, auth, and worked examples. |
18
19
 
19
20
  ## Two surfaces, and the trap between them
package/README.md CHANGED
@@ -34,6 +34,8 @@ package (reachable at `node_modules/@lotics/cli/docs/*.md` once installed):
34
34
  - [`docs/document_templates.md`](docs/document_templates.md) — generate finished documents
35
35
  (PDF, Excel, Word, email) by filling reusable templates: the five template types, the
36
36
  create → generate → chain lifecycle, and the marker capabilities.
37
+ - [`docs/migration.md`](docs/migration.md) — what to do when a release changes the shape of a
38
+ project this CLI owns; read once, when something on disk no longer matches what the CLI writes.
37
39
  - [`docs/knowledge_docs.md`](docs/knowledge_docs.md) — the AI's rulebook layer: authoring the
38
40
  workspace facts an agent can't guess, the access-vs-activation model, and the
39
41
  catalog-then-stage retrieval model agents use to pull only the lines they need.
@@ -90,6 +92,10 @@ lotics setup model.json --email you@company.com
90
92
  It creates no apps of its own: build one in the workspace afterwards
91
93
  (`lotics docs building_an_app`), or name a published package in the file's `apply` list and it is
92
94
  copied in — bound onto the tables the model just made — as part of the same run.
95
+ For a model that declares apps, `lotics workspace build model.json` is the whole path in one
96
+ command — check, apply where the workspace differs, then create or regenerate each app beside the
97
+ model file and check it, deploying each under `--deploy`. An app that conflicts or checks red is
98
+ named and the rest still run; `--dry-run` writes nothing anywhere.
93
99
  `setup` refuses a table name your workspace already has; `lotics scaffold apply model.json` is the
94
100
  additive verb — it adopts that table, adds what the model declares beyond it, and deletes nothing.
95
101
  Because it never renames, the file and the workspace drift: `lotics scaffold diff model.json`
@@ -375,6 +381,15 @@ lotics app api unpublish # end the promise
375
381
  # use this after a rename, or when a pull ran offline.
376
382
  lotics app codegen # import { F, OPT } from "../.lotics/app_fields"
377
383
 
384
+ # Install @lotics/ui or @lotics/app-sdk from your CHECKOUT, to prove a kit change
385
+ # on a real app before it is published: build, pack into .lotics/kit/, install by
386
+ # file specifier, then hash one built file on both sides — a repack under the same
387
+ # name is otherwise served from the lockfile's first tarball. `app check` warns and
388
+ # `app deploy` refuses (--allow-local-kit ships it anyway), because that tarball is
389
+ # not in the source archive. --published puts the registry version back.
390
+ lotics app kit ../lotics/packages/ui
391
+ lotics app kit ../lotics/packages/ui --published
392
+
378
393
  # Every deploy pre-flight, WITHOUT the build or the version row: the app's own
379
394
  # typecheck over regenerated .lotics types, agent schemas vs the live app, aliases
380
395
  # the code calls that nothing bound, undeclared capabilities, query drift. Exits 1 on what a deploy refuses, so CI can gate on it.
@@ -413,6 +428,14 @@ lotics app workflow set issueInvoice # push the edited src/workflows/issu
413
428
  # authoritative, so the next `app deploy` re-syncs it — keep the manifest current.
414
429
  lotics app query set openInvoices # push package.json#lotics.queries.openInvoices
415
430
 
431
+ # Move one alias out of this app and into another of the same workspace — the
432
+ # declaration (and a workflow's body) land in the target project, the target is
433
+ # bound to its OWN row, and the source is unbound and undeclared here. No release
434
+ # either side. Run it in the source project; refused while anything here still
435
+ # calls the alias, unless you say --even-if-invoked.
436
+ lotics app query move openInvoices --to ../ke-toan
437
+ lotics app workflow move issueInvoice --to ../ke-toan
438
+
416
439
  # Run a bound app agent end-to-end (no deployed UI needed — app row + declaration
417
440
  # + member auth). Streams progress to stderr; reports the SETTLED run (structured
418
441
  # output / final text) to stdout; exits 0 only when the run completed.