@soederpop/luca 0.0.6 → 0.0.8

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.
Files changed (208) hide show
  1. package/CLAUDE.md +10 -1
  2. package/RUNME.md +56 -0
  3. package/bun.lock +1 -1
  4. package/commands/build-bootstrap.ts +78 -0
  5. package/commands/build-scaffolds.ts +24 -2
  6. package/commands/try-all-challenges.ts +543 -0
  7. package/commands/try-challenge.ts +100 -0
  8. package/docs/README.md +52 -80
  9. package/docs/TABLE-OF-CONTENTS.md +82 -51
  10. package/docs/apis/clients/elevenlabs.md +232 -8
  11. package/docs/apis/clients/graph.md +59 -8
  12. package/docs/apis/clients/openai.md +362 -2
  13. package/docs/apis/clients/rest.md +122 -2
  14. package/docs/apis/clients/websocket.md +71 -17
  15. package/docs/apis/features/agi/assistant.md +9 -3
  16. package/docs/apis/features/agi/assistants-manager.md +2 -2
  17. package/docs/apis/features/agi/claude-code.md +153 -14
  18. package/docs/apis/features/agi/conversation-history.md +15 -3
  19. package/docs/apis/features/agi/conversation.md +133 -20
  20. package/docs/apis/features/agi/openai-codex.md +90 -12
  21. package/docs/apis/features/agi/skills-library.md +23 -5
  22. package/docs/apis/features/node/container-link.md +59 -0
  23. package/docs/apis/features/node/content-db.md +1 -1
  24. package/docs/apis/features/node/disk-cache.md +1 -1
  25. package/docs/apis/features/node/dns.md +1 -0
  26. package/docs/apis/features/node/docker.md +2 -1
  27. package/docs/apis/features/node/esbuild.md +4 -3
  28. package/docs/apis/features/node/file-manager.md +13 -4
  29. package/docs/apis/features/node/fs.md +726 -171
  30. package/docs/apis/features/node/git.md +1 -0
  31. package/docs/apis/features/node/google-auth.md +23 -4
  32. package/docs/apis/features/node/google-calendar.md +14 -2
  33. package/docs/apis/features/node/google-docs.md +15 -2
  34. package/docs/apis/features/node/google-drive.md +21 -3
  35. package/docs/apis/features/node/google-sheets.md +14 -2
  36. package/docs/apis/features/node/grep.md +2 -0
  37. package/docs/apis/features/node/helpers.md +29 -0
  38. package/docs/apis/features/node/ink.md +2 -2
  39. package/docs/apis/features/node/networking.md +39 -4
  40. package/docs/apis/features/node/os.md +28 -0
  41. package/docs/apis/features/node/postgres.md +26 -4
  42. package/docs/apis/features/node/proc.md +37 -28
  43. package/docs/apis/features/node/process-manager.md +33 -5
  44. package/docs/apis/features/node/repl.md +1 -1
  45. package/docs/apis/features/node/runpod.md +1 -0
  46. package/docs/apis/features/node/secure-shell.md +7 -0
  47. package/docs/apis/features/node/semantic-search.md +12 -5
  48. package/docs/apis/features/node/sqlite.md +26 -4
  49. package/docs/apis/features/node/telegram.md +30 -5
  50. package/docs/apis/features/node/tts.md +17 -2
  51. package/docs/apis/features/node/ui.md +1 -1
  52. package/docs/apis/features/node/vault.md +4 -9
  53. package/docs/apis/features/node/vm.md +3 -12
  54. package/docs/apis/features/node/window-manager.md +128 -20
  55. package/docs/apis/features/web/asset-loader.md +13 -1
  56. package/docs/apis/features/web/container-link.md +59 -0
  57. package/docs/apis/features/web/esbuild.md +4 -3
  58. package/docs/apis/features/web/helpers.md +29 -0
  59. package/docs/apis/features/web/network.md +16 -2
  60. package/docs/apis/features/web/speech.md +16 -2
  61. package/docs/apis/features/web/vault.md +4 -9
  62. package/docs/apis/features/web/vm.md +3 -12
  63. package/docs/apis/features/web/voice.md +18 -1
  64. package/docs/apis/servers/express.md +18 -2
  65. package/docs/apis/servers/mcp.md +29 -4
  66. package/docs/apis/servers/websocket.md +34 -6
  67. package/docs/bootstrap/CLAUDE.md +100 -0
  68. package/docs/bootstrap/SKILL.md +222 -0
  69. package/docs/bootstrap/templates/about-command.ts +41 -0
  70. package/docs/bootstrap/templates/docs-models.ts +22 -0
  71. package/docs/bootstrap/templates/docs-readme.md +43 -0
  72. package/docs/bootstrap/templates/example-feature.ts +53 -0
  73. package/docs/bootstrap/templates/health-endpoint.ts +15 -0
  74. package/docs/bootstrap/templates/luca-cli.ts +25 -0
  75. package/docs/bootstrap/templates/runme.md +54 -0
  76. package/docs/challenges/caching-proxy.md +16 -0
  77. package/docs/challenges/content-db-round-trip.md +14 -0
  78. package/docs/challenges/custom-command.md +9 -0
  79. package/docs/challenges/file-watcher-pipeline.md +11 -0
  80. package/docs/challenges/grep-audit-report.md +15 -0
  81. package/docs/challenges/multi-feature-dashboard.md +14 -0
  82. package/docs/challenges/process-orchestrator.md +17 -0
  83. package/docs/challenges/rest-api-server-with-client.md +12 -0
  84. package/docs/challenges/script-runner-with-vm.md +11 -0
  85. package/docs/challenges/simple-rest-api.md +15 -0
  86. package/docs/challenges/websocket-serve-and-client.md +11 -0
  87. package/docs/challenges/yaml-config-system.md +14 -0
  88. package/docs/command-system-overhaul.md +94 -0
  89. package/docs/examples/assistant/CORE.md +18 -0
  90. package/docs/examples/assistant/hooks.ts +3 -0
  91. package/docs/examples/assistant/tools.ts +10 -0
  92. package/docs/examples/window-manager-layouts.md +180 -0
  93. package/docs/in-memory-fs.md +4 -0
  94. package/docs/models.ts +13 -10
  95. package/docs/philosophy.md +4 -3
  96. package/docs/reports/console-hmr-design.md +170 -0
  97. package/docs/reports/helper-semantic-search.md +72 -0
  98. package/docs/scaffolds/client.md +29 -20
  99. package/docs/scaffolds/command.md +64 -50
  100. package/docs/scaffolds/endpoint.md +31 -36
  101. package/docs/scaffolds/feature.md +28 -18
  102. package/docs/scaffolds/selector.md +91 -0
  103. package/docs/scaffolds/server.md +18 -9
  104. package/docs/selectors.md +115 -0
  105. package/docs/sessions/custom-command/attempt-log-2.md +195 -0
  106. package/docs/sessions/file-watcher-pipeline/attempt-log-1.md +728 -0
  107. package/docs/sessions/file-watcher-pipeline/attempt-log-2.md +555 -0
  108. package/docs/sessions/grep-audit-report/attempt-log-1.md +289 -0
  109. package/docs/sessions/multi-feature-dashboard/attempt-log-2.md +679 -0
  110. package/docs/sessions/rest-api-server-with-client/attempt-log-1.md +1 -0
  111. package/docs/sessions/rest-api-server-with-client/attempt-log-3.md +920 -0
  112. package/docs/sessions/simple-rest-api/attempt-log-1.md +593 -0
  113. package/docs/sessions/websocket-serve-and-client/attempt-log-2.md +995 -0
  114. package/docs/tutorials/00-bootstrap.md +148 -0
  115. package/docs/tutorials/07-endpoints.md +7 -7
  116. package/docs/tutorials/08-commands.md +153 -72
  117. package/luca.cli.ts +3 -0
  118. package/package.json +6 -5
  119. package/public/index.html +1430 -0
  120. package/scripts/examples/using-ollama.ts +2 -1
  121. package/scripts/update-introspection-data.ts +2 -2
  122. package/src/agi/endpoints/experts.ts +1 -1
  123. package/src/agi/features/assistant.ts +7 -0
  124. package/src/agi/features/assistants-manager.ts +5 -5
  125. package/src/agi/features/claude-code.ts +263 -3
  126. package/src/agi/features/conversation-history.ts +7 -1
  127. package/src/agi/features/conversation.ts +26 -3
  128. package/src/agi/features/openai-codex.ts +26 -2
  129. package/src/agi/features/openapi.ts +6 -1
  130. package/src/agi/features/skills-library.ts +9 -1
  131. package/src/bootstrap/generated.ts +595 -0
  132. package/src/cli/cli.ts +64 -21
  133. package/src/client.ts +23 -357
  134. package/src/clients/civitai/index.ts +1 -1
  135. package/src/clients/client-template.ts +1 -1
  136. package/src/clients/comfyui/index.ts +13 -2
  137. package/src/clients/elevenlabs/index.ts +2 -1
  138. package/src/clients/graph.ts +87 -0
  139. package/src/clients/openai/index.ts +10 -1
  140. package/src/clients/rest.ts +207 -0
  141. package/src/clients/websocket.ts +176 -0
  142. package/src/command.ts +281 -34
  143. package/src/commands/bootstrap.ts +185 -0
  144. package/src/commands/chat.ts +5 -4
  145. package/src/commands/describe.ts +341 -4
  146. package/src/commands/help.ts +35 -9
  147. package/src/commands/index.ts +3 -0
  148. package/src/commands/introspect.ts +92 -2
  149. package/src/commands/prompt.ts +5 -6
  150. package/src/commands/run.ts +75 -10
  151. package/src/commands/save-api-docs.ts +49 -0
  152. package/src/commands/scaffold.ts +169 -23
  153. package/src/commands/select.ts +94 -0
  154. package/src/commands/serve.ts +10 -1
  155. package/src/container.ts +15 -0
  156. package/src/endpoint.ts +19 -0
  157. package/src/graft.ts +181 -0
  158. package/src/introspection/generated.agi.ts +12458 -8968
  159. package/src/introspection/generated.node.ts +10573 -7145
  160. package/src/introspection/generated.web.ts +1 -1
  161. package/src/introspection/index.ts +26 -0
  162. package/src/node/container.ts +6 -7
  163. package/src/node/features/content-db.ts +49 -2
  164. package/src/node/features/disk-cache.ts +16 -9
  165. package/src/node/features/dns.ts +16 -3
  166. package/src/node/features/docker.ts +16 -4
  167. package/src/node/features/esbuild.ts +22 -2
  168. package/src/node/features/file-manager.ts +184 -29
  169. package/src/node/features/fs.ts +704 -248
  170. package/src/node/features/git.ts +21 -8
  171. package/src/node/features/grep.ts +23 -3
  172. package/src/node/features/helpers.ts +372 -43
  173. package/src/node/features/networking.ts +39 -4
  174. package/src/node/features/opener.ts +28 -15
  175. package/src/node/features/os.ts +76 -0
  176. package/src/node/features/port-exposer.ts +11 -1
  177. package/src/node/features/postgres.ts +17 -1
  178. package/src/node/features/proc.ts +4 -1
  179. package/src/node/features/python.ts +63 -14
  180. package/src/node/features/repl.ts +11 -7
  181. package/src/node/features/runpod.ts +16 -3
  182. package/src/node/features/secure-shell.ts +27 -2
  183. package/src/node/features/semantic-search.ts +12 -1
  184. package/src/node/features/ui.ts +5 -69
  185. package/src/node/features/vm.ts +17 -0
  186. package/src/node/features/window-manager.ts +68 -20
  187. package/src/node.ts +5 -0
  188. package/src/scaffolds/generated.ts +492 -290
  189. package/src/scaffolds/template.ts +9 -0
  190. package/src/schemas/base.ts +46 -5
  191. package/src/selector.ts +282 -0
  192. package/src/server.ts +11 -0
  193. package/src/servers/express.ts +27 -12
  194. package/src/servers/socket.ts +45 -11
  195. package/src/web/clients/socket.ts +4 -1
  196. package/src/web/container.ts +2 -1
  197. package/src/web/features/network.ts +7 -1
  198. package/src/web/features/voice-recognition.ts +16 -1
  199. package/test/clients-servers.test.ts +2 -1
  200. package/test/command.test.ts +267 -0
  201. package/test/vm-context.test.ts +146 -0
  202. package/test-integration/assistants-manager.test.ts +10 -20
  203. package/docs/apis/features/node/launcher-app-command-listener.md +0 -145
  204. package/docs/examples/launcher-app-command-listener.md +0 -120
  205. package/docs/tasks/web-container-helper-discovery.md +0 -71
  206. package/docs/todos.md +0 -1
  207. package/scripts/test-command-listener.ts +0 -123
  208. package/src/node/features/launcher-app-command-listener.ts +0 -389
@@ -1,6 +1,6 @@
1
1
  # Conversation (features.conversation)
2
2
 
3
- No description provided
3
+ A self-contained conversation with OpenAI that supports streaming, tool calling, and message state management.
4
4
 
5
5
  ## Usage
6
6
 
@@ -174,115 +174,228 @@ Append a message to the conversation state.
174
174
 
175
175
  ### summarizeStart
176
176
 
177
- Event emitted by Conversation
177
+ Fired before generating a conversation summary
178
178
 
179
179
 
180
180
 
181
181
  ### summarizeEnd
182
182
 
183
- Event emitted by Conversation
183
+ Fired after the summary is generated
184
+
185
+ **Event Arguments:**
186
+
187
+ | Name | Type | Description |
188
+ |------|------|-------------|
189
+ | `arg0` | `string` | The generated summary text |
184
190
 
185
191
 
186
192
 
187
193
  ### compactStart
188
194
 
189
- Event emitted by Conversation
195
+ Fired before compacting the conversation history
196
+
197
+ **Event Arguments:**
198
+
199
+ | Name | Type | Description |
200
+ |------|------|-------------|
201
+ | `messageCount` | `number` | |
202
+ | `keepRecent` | `number` | |
190
203
 
191
204
 
192
205
 
193
206
  ### compactEnd
194
207
 
195
- Event emitted by Conversation
208
+ Fired after compaction completes
209
+
210
+ **Event Arguments:**
211
+
212
+ | Name | Type | Description |
213
+ |------|------|-------------|
214
+ | `summary` | `string` | |
215
+ | `removedCount` | `number` | |
216
+ | `estimatedTokens` | `number` | |
217
+ | `compactionCount` | `number` | |
196
218
 
197
219
 
198
220
 
199
221
  ### autoCompactTriggered
200
222
 
201
- Event emitted by Conversation
223
+ Fired when auto-compact kicks in because tokens exceeded the threshold
224
+
225
+ **Event Arguments:**
226
+
227
+ | Name | Type | Description |
228
+ |------|------|-------------|
229
+ | `estimated` | `number` | |
230
+ | `limit` | `number` | |
231
+ | `contextWindow` | `number` | |
202
232
 
203
233
 
204
234
 
205
235
  ### userMessage
206
236
 
207
- Event emitted by Conversation
237
+ Fired when a user message is added to the conversation
238
+
239
+ **Event Arguments:**
240
+
241
+ | Name | Type | Description |
242
+ |------|------|-------------|
243
+ | `arg0` | `any` | The user message content (string or ContentPart[]) |
208
244
 
209
245
 
210
246
 
211
247
  ### turnStart
212
248
 
213
- Event emitted by Conversation
249
+ Fired at the start of each completion turn
250
+
251
+ **Event Arguments:**
252
+
253
+ | Name | Type | Description |
254
+ |------|------|-------------|
255
+ | `turn` | `number` | |
256
+ | `isFollowUp` | `boolean` | |
214
257
 
215
258
 
216
259
 
217
260
  ### rawEvent
218
261
 
219
- Event emitted by Conversation
262
+ Fired for every raw event from the Responses API stream
263
+
264
+ **Event Arguments:**
265
+
266
+ | Name | Type | Description |
267
+ |------|------|-------------|
268
+ | `arg0` | `any` | Raw stream event from the API |
220
269
 
221
270
 
222
271
 
223
272
  ### mcpEvent
224
273
 
225
- Event emitted by Conversation
274
+ Fired for MCP-related events from the Responses API
275
+
276
+ **Event Arguments:**
277
+
278
+ | Name | Type | Description |
279
+ |------|------|-------------|
280
+ | `arg0` | `any` | MCP-related stream event |
226
281
 
227
282
 
228
283
 
229
284
  ### chunk
230
285
 
231
- Event emitted by Conversation
286
+ Fired for each streaming text delta
287
+
288
+ **Event Arguments:**
289
+
290
+ | Name | Type | Description |
291
+ |------|------|-------------|
292
+ | `arg0` | `string` | Text delta from the stream |
232
293
 
233
294
 
234
295
 
235
296
  ### preview
236
297
 
237
- Event emitted by Conversation
298
+ Fired after each chunk with the full accumulated text
299
+
300
+ **Event Arguments:**
301
+
302
+ | Name | Type | Description |
303
+ |------|------|-------------|
304
+ | `arg0` | `string` | Accumulated text so far |
238
305
 
239
306
 
240
307
 
241
308
  ### responseCompleted
242
309
 
243
- Event emitted by Conversation
310
+ Fired when the Responses API stream completes
311
+
312
+ **Event Arguments:**
313
+
314
+ | Name | Type | Description |
315
+ |------|------|-------------|
316
+ | `arg0` | `any` | The completed OpenAI Response object |
244
317
 
245
318
 
246
319
 
247
320
  ### toolCallsStart
248
321
 
249
- Event emitted by Conversation
322
+ Fired when the model begins a batch of tool calls
323
+
324
+ **Event Arguments:**
325
+
326
+ | Name | Type | Description |
327
+ |------|------|-------------|
328
+ | `arg0` | `any` | Array of tool call objects from the model |
250
329
 
251
330
 
252
331
 
253
332
  ### toolError
254
333
 
255
- Event emitted by Conversation
334
+ Fired when a tool handler throws or the tool is unknown
335
+
336
+ **Event Arguments:**
337
+
338
+ | Name | Type | Description |
339
+ |------|------|-------------|
340
+ | `arg0` | `string` | Tool name |
341
+ | `arg1` | `any` | Error object or message |
256
342
 
257
343
 
258
344
 
259
345
  ### toolCall
260
346
 
261
- Event emitted by Conversation
347
+ Fired before invoking a single tool handler
348
+
349
+ **Event Arguments:**
350
+
351
+ | Name | Type | Description |
352
+ |------|------|-------------|
353
+ | `arg0` | `string` | Tool name |
354
+ | `arg1` | `any` | Parsed arguments object |
262
355
 
263
356
 
264
357
 
265
358
  ### toolResult
266
359
 
267
- Event emitted by Conversation
360
+ Fired after a tool handler returns successfully
361
+
362
+ **Event Arguments:**
363
+
364
+ | Name | Type | Description |
365
+ |------|------|-------------|
366
+ | `arg0` | `string` | Tool name |
367
+ | `arg1` | `string` | Serialized result |
268
368
 
269
369
 
270
370
 
271
371
  ### toolCallsEnd
272
372
 
273
- Event emitted by Conversation
373
+ Fired after all tool calls in a turn have been executed
274
374
 
275
375
 
276
376
 
277
377
  ### turnEnd
278
378
 
279
- Event emitted by Conversation
379
+ Fired at the end of each completion turn
380
+
381
+ **Event Arguments:**
382
+
383
+ | Name | Type | Description |
384
+ |------|------|-------------|
385
+ | `turn` | `number` | |
386
+ | `hasToolCalls` | `boolean` | |
280
387
 
281
388
 
282
389
 
283
390
  ### response
284
391
 
285
- Event emitted by Conversation
392
+ Fired when the final text response is produced
393
+
394
+ **Event Arguments:**
395
+
396
+ | Name | Type | Description |
397
+ |------|------|-------------|
398
+ | `arg0` | `string` | Final accumulated response text |
286
399
 
287
400
 
288
401
 
@@ -1,6 +1,6 @@
1
1
  # OpenAICodex (features.openaiCodex)
2
2
 
3
- No description provided
3
+ OpenAI Codex CLI wrapper feature. Spawns and manages Codex sessions as subprocesses, streaming structured JSON events back through the container's event system. Mirrors the ClaudeCode feature pattern: each call to `run()` spawns a `codex exec --json` process, parses NDJSON from stdout line-by-line, and emits typed events on the feature's event bus.
4
4
 
5
5
  ## Usage
6
6
 
@@ -199,67 +199,145 @@ Enable the feature. Delegates to the base Feature enable() lifecycle.
199
199
 
200
200
  ### session:event
201
201
 
202
- Event emitted by OpenAICodex
202
+ Fired for every parsed JSON event from the Codex CLI stream
203
+
204
+ **Event Arguments:**
205
+
206
+ | Name | Type | Description |
207
+ |------|------|-------------|
208
+ | `sessionId` | `string` | |
209
+ | `event` | `any` | |
203
210
 
204
211
 
205
212
 
206
213
  ### session:delta
207
214
 
208
- Event emitted by OpenAICodex
215
+ Fired for each text delta from an agent message
216
+
217
+ **Event Arguments:**
218
+
219
+ | Name | Type | Description |
220
+ |------|------|-------------|
221
+ | `sessionId` | `string` | |
222
+ | `text` | `string` | |
223
+ | `role` | `string` | |
209
224
 
210
225
 
211
226
 
212
227
  ### session:message
213
228
 
214
- Event emitted by OpenAICodex
229
+ Fired when a complete agent message is received
230
+
231
+ **Event Arguments:**
232
+
233
+ | Name | Type | Description |
234
+ |------|------|-------------|
235
+ | `sessionId` | `string` | |
236
+ | `message` | `any` | |
215
237
 
216
238
 
217
239
 
218
240
  ### session:exec
219
241
 
220
- Event emitted by OpenAICodex
242
+ Fired when a command execution item completes
243
+
244
+ **Event Arguments:**
245
+
246
+ | Name | Type | Description |
247
+ |------|------|-------------|
248
+ | `sessionId` | `string` | |
249
+ | `exec` | `any` | |
221
250
 
222
251
 
223
252
 
224
253
  ### session:reasoning
225
254
 
226
- Event emitted by OpenAICodex
255
+ Fired when a reasoning item is received
256
+
257
+ **Event Arguments:**
258
+
259
+ | Name | Type | Description |
260
+ |------|------|-------------|
261
+ | `sessionId` | `string` | |
262
+ | `text` | `string` | |
227
263
 
228
264
 
229
265
 
230
266
  ### session:exec-start
231
267
 
232
- Event emitted by OpenAICodex
268
+ Fired when a command execution item starts
269
+
270
+ **Event Arguments:**
271
+
272
+ | Name | Type | Description |
273
+ |------|------|-------------|
274
+ | `sessionId` | `string` | |
275
+ | `command` | `string` | |
233
276
 
234
277
 
235
278
 
236
279
  ### session:start
237
280
 
238
- Event emitted by OpenAICodex
281
+ Fired when a new Codex session is spawned
282
+
283
+ **Event Arguments:**
284
+
285
+ | Name | Type | Description |
286
+ |------|------|-------------|
287
+ | `sessionId` | `string` | |
288
+ | `prompt` | `string` | |
239
289
 
240
290
 
241
291
 
242
292
  ### session:error
243
293
 
244
- Event emitted by OpenAICodex
294
+ Fired when a session encounters an error
295
+
296
+ **Event Arguments:**
297
+
298
+ | Name | Type | Description |
299
+ |------|------|-------------|
300
+ | `sessionId` | `string` | |
301
+ | `error` | `any` | |
302
+ | `exitCode` | `number` | |
245
303
 
246
304
 
247
305
 
248
306
  ### session:parse-error
249
307
 
250
- Event emitted by OpenAICodex
308
+ Fired when a JSON line from the CLI cannot be parsed
309
+
310
+ **Event Arguments:**
311
+
312
+ | Name | Type | Description |
313
+ |------|------|-------------|
314
+ | `sessionId` | `string` | |
315
+ | `line` | `string` | |
251
316
 
252
317
 
253
318
 
254
319
  ### session:result
255
320
 
256
- Event emitted by OpenAICodex
321
+ Fired when a session completes with a final result
322
+
323
+ **Event Arguments:**
324
+
325
+ | Name | Type | Description |
326
+ |------|------|-------------|
327
+ | `sessionId` | `string` | |
328
+ | `result` | `string` | |
257
329
 
258
330
 
259
331
 
260
332
  ### session:abort
261
333
 
262
- Event emitted by OpenAICodex
334
+ Fired when a session is aborted by the user
335
+
336
+ **Event Arguments:**
337
+
338
+ | Name | Type | Description |
339
+ |------|------|-------------|
340
+ | `sessionId` | `string` | |
263
341
 
264
342
 
265
343
 
@@ -1,6 +1,6 @@
1
1
  # SkillsLibrary (features.skillsLibrary)
2
2
 
3
- No description provided
3
+ Manages two contentbase collections of skills following the Claude Code SKILL.md format. Project-level skills live in .claude/skills/ and user-level skills live in ~/.luca/skills/. Skills can be discovered, searched, created, updated, and removed at runtime.
4
4
 
5
5
  ## Usage
6
6
 
@@ -162,25 +162,43 @@ Generates a markdown block listing all available skills with names and descripti
162
162
 
163
163
  ### loaded
164
164
 
165
- Event emitted by SkillsLibrary
165
+ Fired after both project and user skill collections are loaded
166
166
 
167
167
 
168
168
 
169
169
  ### skillCreated
170
170
 
171
- Event emitted by SkillsLibrary
171
+ Fired after a new skill is written to disk
172
+
173
+ **Event Arguments:**
174
+
175
+ | Name | Type | Description |
176
+ |------|------|-------------|
177
+ | `arg0` | `any` | The created SkillEntry object |
172
178
 
173
179
 
174
180
 
175
181
  ### skillUpdated
176
182
 
177
- Event emitted by SkillsLibrary
183
+ Fired after an existing skill is updated
184
+
185
+ **Event Arguments:**
186
+
187
+ | Name | Type | Description |
188
+ |------|------|-------------|
189
+ | `arg0` | `any` | The updated SkillEntry object |
178
190
 
179
191
 
180
192
 
181
193
  ### skillRemoved
182
194
 
183
- Event emitted by SkillsLibrary
195
+ Fired after a skill is deleted
196
+
197
+ **Event Arguments:**
198
+
199
+ | Name | Type | Description |
200
+ |------|------|-------------|
201
+ | `arg0` | `string` | The name of the removed skill |
184
202
 
185
203
 
186
204
 
@@ -102,6 +102,65 @@ Event emitted by ContainerLink
102
102
 
103
103
 
104
104
 
105
+ ### disconnection
106
+
107
+ Emitted when a web container disconnects
108
+
109
+ **Event Arguments:**
110
+
111
+ | Name | Type | Description |
112
+ |------|------|-------------|
113
+ | `arg0` | `string` | Container UUID |
114
+ | `arg1` | `string` | Reason |
115
+
116
+
117
+
118
+ ### error
119
+
120
+ Event emitted by ContainerLink
121
+
122
+
123
+
124
+ ### connection
125
+
126
+ Emitted when a web container connects and registers
127
+
128
+ **Event Arguments:**
129
+
130
+ | Name | Type | Description |
131
+ |------|------|-------------|
132
+ | `arg0` | `string` | Container UUID |
133
+ | `arg1` | `any` | Connection metadata |
134
+
135
+
136
+
137
+ ### evalResult
138
+
139
+ Emitted when an eval result is received
140
+
141
+ **Event Arguments:**
142
+
143
+ | Name | Type | Description |
144
+ |------|------|-------------|
145
+ | `arg0` | `string` | Request ID |
146
+ | `arg1` | `any` | Result or error |
147
+
148
+
149
+
150
+ ### event
151
+
152
+ Emitted when a web container sends a structured event
153
+
154
+ **Event Arguments:**
155
+
156
+ | Name | Type | Description |
157
+ |------|------|-------------|
158
+ | `arg0` | `string` | Container UUID |
159
+ | `arg1` | `string` | Event name |
160
+ | `arg2` | `any` | Event data |
161
+
162
+
163
+
105
164
  ## State (Zod v4 schema)
106
165
 
107
166
  | Property | Type | Description |
@@ -244,7 +244,7 @@ Rebuild the entire search index from scratch.
244
244
 
245
245
  ### reloaded
246
246
 
247
- Event emitted by ContentDb
247
+ When the content collection is reloaded from disk
248
248
 
249
249
 
250
250
 
@@ -223,7 +223,7 @@ Create a cacache instance with the specified path
223
223
 
224
224
  | Name | Type | Required | Description |
225
225
  |------|------|----------|-------------|
226
- | `path` | `string` | | Optional cache directory path (defaults to options.path or node_modules/.cache/luca-disk-cache) |
226
+ | `path` | `string` | | Optional cache directory path (defaults to options.path or ~/.cache/luca/disk-cache-{cwdHash}) |
227
227
 
228
228
  **Returns:** `void`
229
229
 
@@ -457,6 +457,7 @@ const verified = await dns.hasTxtRecord('example.com', 'google-site-verification
457
457
  | Property | Type | Description |
458
458
  |----------|------|-------------|
459
459
  | `proc` | `any` | |
460
+ | `digPath` | `string` | Resolved path to the dig binary |
460
461
 
461
462
  ## State (Zod v4 schema)
462
463
 
@@ -551,7 +551,8 @@ Initialize the Docker feature by checking availability and optionally refreshing
551
551
 
552
552
  | Property | Type | Description |
553
553
  |----------|------|-------------|
554
- | `proc` | `any` | Get the proc feature for executing shell commands |
554
+ | `proc` | `any` | |
555
+ | `dockerPath` | `string` | Resolve the docker binary path via `which`, caching the result. Options take precedence. |
555
556
 
556
557
  ## State (Zod v4 schema)
557
558
 
@@ -1,6 +1,6 @@
1
1
  # Esbuild (features.esbuild)
2
2
 
3
- Esbuild helper
3
+ Browser-side TypeScript/ESM compilation feature using esbuild-wasm. Loads esbuild's WebAssembly build via the AssetLoader, then provides `compile()` and `transform()` methods that work entirely in the browser. Useful for live playgrounds, in-browser REPLs, and client-side bundling.
4
4
 
5
5
  ## Usage
6
6
 
@@ -53,7 +53,8 @@ container.feature('esbuild')
53
53
 
54
54
  ```ts
55
55
  const esbuild = container.feature('esbuild')
56
- const result = esbuild.transformSync('const x: number = 1')
57
- console.log(result.code) // 'const x = 1;\n'
56
+ await esbuild.start()
57
+ const result = await esbuild.compile('const x: number = 1')
58
+ console.log(result.code)
58
59
  ```
59
60
 
@@ -89,18 +89,19 @@ Scans the files in the project and updates the file manager state.
89
89
 
90
90
  ### watch
91
91
 
92
- Watches the files in the project and updates the file manager state.
92
+ Watches directories for file changes. Can be called multiple times to add more directories to an existing watcher. Tracks all watched paths in state. When called without `paths`, watches the project's `directoryIds` (default behavior). When called with `paths`, watches only those specific directories/globs. Subsequent calls add to the existing watcher — they never replace what's already watched.
93
93
 
94
94
  **Parameters:**
95
95
 
96
96
  | Name | Type | Required | Description |
97
97
  |------|------|----------|-------------|
98
- | `options` | `{ exclude?: string | string[] }` | | Options for the file manager |
98
+ | `options` | `{ paths?: string | string[]; exclude?: string | string[] }` | | Options for the file manager |
99
99
 
100
- `{ exclude?: string | string[] }` properties:
100
+ `{ paths?: string | string[]; exclude?: string | string[] }` properties:
101
101
 
102
102
  | Property | Type | Description |
103
103
  |----------|------|-------------|
104
+ | `paths` | `any` | Specific directories or globs to watch. Defaults to project directoryIds. |
104
105
  | `exclude` | `any` | The patterns to exclude from the watch |
105
106
 
106
107
  **Returns:** `void`
@@ -148,13 +149,21 @@ Watches the files in the project and updates the file manager state.
148
149
  | `isStarted` | `any` | Whether the file manager has completed its initial scan. |
149
150
  | `isStarting` | `any` | Whether the file manager is currently performing its initial scan. |
150
151
  | `isWatching` | `any` | Whether the file watcher is actively monitoring for changes. |
152
+ | `watchedPaths` | `string[]` | Returns the list of directories currently being watched. |
151
153
  | `watchedFiles` | `Record<string, string[]>` | Returns the directories and files currently being watched by chokidar. |
152
154
 
153
155
  ## Events (Zod v4 schema)
154
156
 
155
157
  ### file:change
156
158
 
157
- Event emitted by FileManager
159
+ Emitted when a watched file is added, changed, or deleted
160
+
161
+ **Event Arguments:**
162
+
163
+ | Name | Type | Description |
164
+ |------|------|-------------|
165
+ | `type` | `'add' | 'change' | 'delete'` | The type of file change |
166
+ | `path` | `string` | Absolute path to the changed file |
158
167
 
159
168
 
160
169