lua-cli 3.54.0 → 3.55.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/docs/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # lua-cli v3.54.0
1
+ # lua-cli v3.55.0
2
2
 
3
- Welcome to the comprehensive API documentation for lua-cli v3.54.0. This guide covers every API, class, and function exported by the package.
3
+ Welcome to the comprehensive API documentation for lua-cli v3.55.0. This guide covers every API, class, and function exported by the package.
4
4
 
5
5
  ## 📚 Documentation Index
6
6
 
@@ -263,7 +263,7 @@ Each API doc includes:
263
263
 
264
264
  ---
265
265
 
266
- **Version:** 3.54.0
266
+ **Version:** 3.55.0
267
267
  **Last Updated:** October 2026
268
268
 
269
269
  ---
package/docs/api/Data.md CHANGED
@@ -93,7 +93,7 @@ for (const movie of results) {
93
93
  }
94
94
  ```
95
95
 
96
- ### `Data.create(collectionName, data, searchText?)`
96
+ ### `Data.create(collectionName, data, searchTextOrOptions?)`
97
97
 
98
98
  Creates a new entry in a collection.
99
99
 
@@ -101,7 +101,14 @@ Creates a new entry in a collection.
101
101
 
102
102
  - `collectionName` (string) - Collection name
103
103
  - `data` (object) - Data to store
104
- - `searchText` (string, optional) - Text to use for vector search indexing
104
+ - `searchTextOrOptions` (string or `{ searchText?, index? }`, optional) - A bare string is the text to use for
105
+ vector search indexing. The options object adds `index`: the `data` fields you filter on, as a path
106
+ (`'business_id'`) or a compound of up to 2 paths (`['country', 'business_id']`); at most 3 per call and 5 built
107
+ per agent (per shared collection on `Data.shared`). The platform builds each index within minutes, reports it in
108
+ `collections()`, and drops it 14 days after the last declaration or filtered read. The same in `lua test`,
109
+ deployed agents (skills, jobs, webhooks, workflow steps other than `tier: 'job'`, which have no `Data`) and voice
110
+ hooks. `Data.update` (4th argument),
111
+ `Data.patch` (`mutation.index`), `entry.update` and `entry.save` accept it too.
105
112
 
106
113
  **Returns:** `Promise<DataEntryInstance>`
107
114
 
@@ -309,6 +316,14 @@ const names = await map.collections();
309
316
  can only ever reach its own organization's shared collections.
310
317
  - **Audit.** Every write records the agent, the collection and the entry id (never the value) in the
311
318
  organization's audit log.
319
+ - **Managed indexes.** A writer declares them like on `Data`, on its writes:
320
+ `map.create('api_endpoints', row, { index: [['repoKey', 'service']] })` (also `update`, `patch`, `entry.update`).
321
+ The index belongs to the shared collection, not to the agent that declared it: at most 5 are built across all its
322
+ sub-collections (`'per-shared-collection cap (5) reached'` beyond that), they serve every reader's filtered `get`,
323
+ and they are dropped 14 days after the last declaration or filtered read by any agent. `collections()` reports
324
+ each one's status (`pending`, `building`, `ready`, `failed`, `rejected`) to readers and writers. Readers cannot
325
+ declare (they cannot write). Declare compound indexes so their first field serves the single-field filters too:
326
+ `[repoKey, service]` already serves a filter on `repoKey` alone in the same sub-collection.
312
327
  - **Test sessions** may read a shared collection but not write it (`shared_data_test_session_write_refused`, 409).
313
328
  - **Local runs** (`lua test`) have no org ACL to consult: every call rejects with
314
329
  `code === 'shared_data_unavailable_offline'`.
@@ -370,7 +385,7 @@ A change applies to the next `Data.shared` call. Re-creating a deleted name star
370
385
 
371
386
  Data entries have convenient methods:
372
387
 
373
- ### `entry.update(data, searchText?)`
388
+ ### `entry.update(data, searchTextOrOptions?)`
374
389
 
375
390
  Updates this entry.
376
391
 
@@ -401,7 +416,7 @@ if (oldMovie) {
401
416
  }
402
417
  ```
403
418
 
404
- ### `entry.save(searchText?)`
419
+ ### `entry.save(searchTextOrOptions?)`
405
420
 
406
421
  Saves modifications to this entry.
407
422
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lua-cli",
3
- "version": "3.54.0",
3
+ "version": "3.55.0",
4
4
  "description": "Build, test, and deploy AI agents with custom tools, webhooks, and scheduled jobs. Features LuaAgent unified configuration, streaming chat, and batch deployment.",
5
5
  "readmeFilename": "README.md",
6
6
  "main": "dist/api-exports.js",
@@ -114,6 +114,7 @@
114
114
  "stripe": "^19.2.0",
115
115
  "ts-node": "^10.9.2",
116
116
  "tsup": "^8.5.1",
117
+ "tsx": "4.21.0",
117
118
  "@lua/sandbox-runtime": "0.0.1",
118
119
  "@lua/shared-sandbox": "0.0.1",
119
120
  "@lua/shared-source-sync": "0.0.1",
@@ -20,7 +20,7 @@
20
20
  "inquirer": "^12.9.6",
21
21
  "stripe": "^17.5.0",
22
22
  "js-yaml": "^4.1.0",
23
- "lua-cli": "^3.54.0",
23
+ "lua-cli": "^3.55.0",
24
24
  "openai": "^5.23.0",
25
25
  "uuid": "^13.0.0",
26
26
  "zod": "^3.24.1"
@@ -8,9 +8,8 @@
8
8
  },
9
9
  "dependencies": {
10
10
  "@base-ui/react": "~1.8.0",
11
- "@lua-ai-global/app-chat": "~0.0.1",
12
- "@lua-ai-global/app-client": "~0.0.3",
13
- "@lua-ai-global/ui": "~0.2.3",
11
+ "@lua-ai-global/app-client": "~0.1.0",
12
+ "@lua-ai-global/ui": "~0.3.0",
14
13
  "@phosphor-icons/react": "~2.1.10",
15
14
  "react": "~19.3.0",
16
15
  "react-dom": "~19.3.0"
@@ -1,5 +1,3 @@
1
1
  @import '@lua-ai-global/ui/styles.css';
2
- /* The agent pane's styles: after the design system's, on its tokens. */
3
- @import '@lua-ai-global/app-chat/styles.css';
4
2
  /* Tailwind scans the design system's compiled components for the classes they use. */
5
3
  @source '../node_modules/@lua-ai-global/ui/dist';
@@ -2,19 +2,11 @@ import { StrictMode } from 'react';
2
2
  import { createRoot } from 'react-dom/client';
3
3
  import { App } from './App';
4
4
  import { lua } from '@lua-ai-global/app-client';
5
- import { AgentPaneLayout } from '@lua-ai-global/app-chat';
6
5
  import './index.css';
7
6
 
8
- // Theme follows the shell: first from the bootstrap, then from the host's `init`.
9
- document.documentElement.classList.toggle('dark', lua.theme === 'dark');
10
- lua.onInit((init) => document.documentElement.classList.toggle('dark', init.theme === 'dark'));
11
-
12
7
  createRoot(document.getElementById('root')!).render(
13
8
  <StrictMode>
14
- {/* The agent pane: the person's own conversation with this app's agent, docked beside the page. */}
15
- <AgentPaneLayout>
16
- <App />
17
- </AgentPaneLayout>
9
+ <App />
18
10
  </StrictMode>
19
11
  );
20
12
  void lua.start();