@lotics/cli 0.91.0 → 0.92.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 CHANGED
@@ -20,7 +20,7 @@ package (reachable at `node_modules/@lotics/cli/docs/*.md` once installed):
20
20
  create → generate → chain lifecycle, and the marker capabilities.
21
21
  - [`docs/knowledge_docs.md`](docs/knowledge_docs.md) — the AI's rulebook layer: authoring the
22
22
  workspace facts an agent can't guess, the access-vs-activation model, and the
23
- search → grep → read retrieval funnel agents use to pull only the lines they need.
23
+ catalog-then-stage retrieval model agents use to pull only the lines they need.
24
24
 
25
25
  Both point to `lotics tools <name>` for exact input schemas.
26
26
 
@@ -164,6 +164,22 @@ Edits mutate the file in place via an atomic temp-file + rename. Unknown OOXML c
164
164
 
165
165
  Run `lotics xlsx` or `lotics docx` with no subcommand for the full list.
166
166
 
167
+ ## Knowledge docs
168
+
169
+ A file-native surface over the workspace's knowledge docs — the AI's rulebook layer. The body is a Markdown file: `create`/`update` read it from your filesystem, `get` writes it back. See [`docs/knowledge_docs.md`](docs/knowledge_docs.md) for the model.
170
+
171
+ ```bash
172
+ lotics knowledge list # catalog: id, name, description (--json)
173
+ lotics knowledge create --name "Shipping tariffs" \
174
+ --description "HS-coded rates; searchable by lane and code" \
175
+ --from ./tariffs.md # or --content '<inline>'; prints the new id
176
+ lotics knowledge get kdc_... -o ./tariffs.md # body → file (omit -o for stdout; --json = full doc)
177
+ lotics knowledge update kdc_... --from ./tariffs.md # send only what changed (--name / --description too)
178
+ lotics knowledge rm kdc_... # archive
179
+ ```
180
+
181
+ `create` / `update` send the body inline; the server mints and version-chains the content file (and `update` diffs + resolves concurrency internally — no token to pass). `get` is the one content-read path, hydrating the body server-side.
182
+
167
183
  ## Custom-code apps
168
184
 
169
185
  ```bash
@@ -58628,7 +58628,7 @@ ${e.toString()}`);
58628
58628
  const r = grid.get(ri);
58629
58629
  if (!r) continue;
58630
58630
  const cells = [...r.values()].sort((a, b) => a.column - b.column);
58631
- rows.push({ index: ri, height: sheet.defaultRowHeight, cells, hidden: false });
58631
+ rows.push({ index: ri + 1, height: sheet.defaultRowHeight, cells, hidden: false });
58632
58632
  }
58633
58633
  sheet.rows = rows;
58634
58634
  sheet.totalRowCount = maxRow + 1;
@@ -58636,12 +58636,12 @@ ${e.toString()}`);
58636
58636
  return sheet;
58637
58637
  }
58638
58638
  function textCell(column, text) {
58639
- return { column, value: text, typedValue: text, content: { type: "plain", text }, style: {} };
58639
+ return { column: column + 1, value: text, typedValue: text, content: { type: "plain", text }, style: {} };
58640
58640
  }
58641
58641
  function numberCell(column, num2, numFmt) {
58642
58642
  const value = Number.isFinite(num2) ? String(num2) : "";
58643
58643
  return {
58644
- column,
58644
+ column: column + 1,
58645
58645
  value,
58646
58646
  rawValue: num2,
58647
58647
  typedValue: num2,
@@ -58655,7 +58655,7 @@ ${e.toString()}`);
58655
58655
  const kind = body[6];
58656
58656
  if (kind === 1) {
58657
58657
  const b = body[8] !== 0;
58658
- return { column, value: b ? "TRUE" : "FALSE", typedValue: b, content: { type: "plain", text: b ? "TRUE" : "FALSE" }, style: {} };
58658
+ return { column: column + 1, value: b ? "TRUE" : "FALSE", typedValue: b, content: { type: "plain", text: b ? "TRUE" : "FALSE" }, style: {} };
58659
58659
  }
58660
58660
  return null;
58661
58661
  }