luca 2.0.0 ā 3.0.2
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/.github/workflows/release.yaml +170 -0
- package/AGENTS.md +99 -0
- package/CLAUDE.md +123 -0
- package/CNAME +1 -0
- package/README.md +275 -9
- package/RUNME.md +56 -0
- package/assistants/codingAssistant/ABOUT.md +5 -0
- package/assistants/codingAssistant/CORE.md +33 -0
- package/assistants/codingAssistant/hooks.ts +21 -0
- package/assistants/codingAssistant/tools.ts +12 -0
- package/assistants/inkbot/ABOUT.md +16 -0
- package/assistants/inkbot/CORE.md +330 -0
- package/assistants/inkbot/hooks.ts +6 -0
- package/assistants/inkbot/tools.ts +53 -0
- package/assistants/researcher/ABOUT.md +5 -0
- package/assistants/researcher/CORE.md +46 -0
- package/assistants/researcher/hooks.ts +16 -0
- package/assistants/researcher/tools.ts +237 -0
- package/bun.lock +2667 -0
- package/bunfig.toml +3 -0
- package/commands/audit-docs.ts +740 -0
- package/commands/build-bootstrap.ts +117 -0
- package/commands/build-python-bridge.ts +42 -0
- package/commands/build-scaffolds.ts +175 -0
- package/commands/bundle-consumer-project.ts +521 -0
- package/commands/generate-api-docs.ts +114 -0
- package/commands/inkbot.ts +874 -0
- package/commands/release.ts +80 -0
- package/commands/try-all-challenges.ts +543 -0
- package/commands/try-challenge.ts +100 -0
- package/dist/agi/container.server.d.ts +63 -0
- package/dist/agi/container.server.d.ts.map +1 -0
- package/dist/agi/endpoints/ask.d.ts +20 -0
- package/dist/agi/endpoints/ask.d.ts.map +1 -0
- package/dist/agi/endpoints/conversations/[id].d.ts +27 -0
- package/dist/agi/endpoints/conversations/[id].d.ts.map +1 -0
- package/dist/agi/endpoints/conversations.d.ts +18 -0
- package/dist/agi/endpoints/conversations.d.ts.map +1 -0
- package/dist/agi/endpoints/experts.d.ts +8 -0
- package/dist/agi/endpoints/experts.d.ts.map +1 -0
- package/dist/agi/feature.d.ts +9 -0
- package/dist/agi/feature.d.ts.map +1 -0
- package/dist/agi/features/assistant.d.ts +509 -0
- package/dist/agi/features/assistant.d.ts.map +1 -0
- package/dist/agi/features/assistants-manager.d.ts +236 -0
- package/dist/agi/features/assistants-manager.d.ts.map +1 -0
- package/dist/agi/features/autonomous-assistant.d.ts +281 -0
- package/dist/agi/features/autonomous-assistant.d.ts.map +1 -0
- package/dist/agi/features/browser-use.d.ts +479 -0
- package/dist/agi/features/browser-use.d.ts.map +1 -0
- package/dist/agi/features/claude-code.d.ts +824 -0
- package/dist/agi/features/claude-code.d.ts.map +1 -0
- package/dist/agi/features/conversation-history.d.ts +245 -0
- package/dist/agi/features/conversation-history.d.ts.map +1 -0
- package/dist/agi/features/conversation.d.ts +464 -0
- package/dist/agi/features/conversation.d.ts.map +1 -0
- package/dist/agi/features/docs-reader.d.ts +72 -0
- package/dist/agi/features/docs-reader.d.ts.map +1 -0
- package/dist/agi/features/file-tools.d.ts +110 -0
- package/dist/agi/features/file-tools.d.ts.map +1 -0
- package/dist/agi/features/luca-coder.d.ts +323 -0
- package/dist/agi/features/luca-coder.d.ts.map +1 -0
- package/dist/agi/features/openai-codex.d.ts +381 -0
- package/dist/agi/features/openai-codex.d.ts.map +1 -0
- package/dist/agi/features/openapi.d.ts +200 -0
- package/dist/agi/features/openapi.d.ts.map +1 -0
- package/dist/agi/features/skills-library.d.ts +167 -0
- package/dist/agi/features/skills-library.d.ts.map +1 -0
- package/dist/agi/index.d.ts +5 -0
- package/dist/agi/index.d.ts.map +1 -0
- package/dist/agi/lib/interceptor-chain.d.ts +44 -0
- package/dist/agi/lib/interceptor-chain.d.ts.map +1 -0
- package/dist/agi/lib/token-counter.d.ts +13 -0
- package/dist/agi/lib/token-counter.d.ts.map +1 -0
- package/dist/bootstrap/generated.d.ts +5 -0
- package/dist/bootstrap/generated.d.ts.map +1 -0
- package/dist/browser.d.ts +12 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/bus.d.ts +29 -0
- package/dist/bus.d.ts.map +1 -0
- package/dist/cli/build-info.d.ts +4 -0
- package/dist/cli/build-info.d.ts.map +1 -0
- package/dist/cli/cli.d.ts +3 -12
- package/dist/cli/cli.d.ts.map +1 -0
- package/dist/client.d.ts +60 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/clients/civitai/index.d.ts +472 -0
- package/dist/clients/civitai/index.d.ts.map +1 -0
- package/dist/clients/client-template.d.ts +30 -0
- package/dist/clients/client-template.d.ts.map +1 -0
- package/dist/clients/comfyui/index.d.ts +281 -0
- package/dist/clients/comfyui/index.d.ts.map +1 -0
- package/dist/clients/elevenlabs/index.d.ts +197 -0
- package/dist/clients/elevenlabs/index.d.ts.map +1 -0
- package/dist/clients/graph.d.ts +64 -0
- package/dist/clients/graph.d.ts.map +1 -0
- package/dist/clients/openai/index.d.ts +247 -0
- package/dist/clients/openai/index.d.ts.map +1 -0
- package/dist/clients/rest.d.ts +92 -0
- package/dist/clients/rest.d.ts.map +1 -0
- package/dist/clients/supabase/index.d.ts +176 -0
- package/dist/clients/supabase/index.d.ts.map +1 -0
- package/dist/clients/websocket.d.ts +127 -0
- package/dist/clients/websocket.d.ts.map +1 -0
- package/dist/command.d.ts +163 -0
- package/dist/command.d.ts.map +1 -0
- package/dist/commands/bootstrap.d.ts +20 -0
- package/dist/commands/bootstrap.d.ts.map +1 -0
- package/dist/commands/chat.d.ts +37 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/code.d.ts +28 -0
- package/dist/commands/code.d.ts.map +1 -0
- package/dist/commands/console.d.ts +22 -0
- package/dist/commands/console.d.ts.map +1 -0
- package/dist/commands/describe.d.ts +50 -0
- package/dist/commands/describe.d.ts.map +1 -0
- package/dist/commands/eval.d.ts +23 -0
- package/dist/commands/eval.d.ts.map +1 -0
- package/dist/commands/help.d.ts +25 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/index.d.ts +18 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/introspect.d.ts +24 -0
- package/dist/commands/introspect.d.ts.map +1 -0
- package/dist/commands/mcp.d.ts +35 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/prompt.d.ts +38 -0
- package/dist/commands/prompt.d.ts.map +1 -0
- package/dist/commands/run.d.ts +24 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/sandbox-mcp.d.ts +34 -0
- package/dist/commands/sandbox-mcp.d.ts.map +1 -0
- package/dist/commands/save-api-docs.d.ts +21 -0
- package/dist/commands/save-api-docs.d.ts.map +1 -0
- package/dist/commands/scaffold.d.ts +24 -0
- package/dist/commands/scaffold.d.ts.map +1 -0
- package/dist/commands/select.d.ts +22 -0
- package/dist/commands/select.d.ts.map +1 -0
- package/dist/commands/serve.d.ts +29 -0
- package/dist/commands/serve.d.ts.map +1 -0
- package/dist/container-describer.d.ts +144 -0
- package/dist/container-describer.d.ts.map +1 -0
- package/dist/container.d.ts +451 -0
- package/dist/container.d.ts.map +1 -0
- package/dist/endpoint.d.ts +113 -0
- package/dist/endpoint.d.ts.map +1 -0
- package/dist/feature.d.ts +47 -0
- package/dist/feature.d.ts.map +1 -0
- package/dist/graft.d.ts +29 -0
- package/dist/graft.d.ts.map +1 -0
- package/dist/hash-object.d.ts +8 -0
- package/dist/hash-object.d.ts.map +1 -0
- package/dist/helper.d.ts +209 -0
- package/dist/helper.d.ts.map +1 -0
- package/dist/introspection/generated.node.d.ts +44623 -0
- package/dist/introspection/generated.node.d.ts.map +1 -0
- package/dist/introspection/generated.web.d.ts +1412 -0
- package/dist/introspection/generated.web.d.ts.map +1 -0
- package/dist/introspection/index.d.ts +156 -0
- package/dist/introspection/index.d.ts.map +1 -0
- package/dist/introspection/scan.d.ts +147 -0
- package/dist/introspection/scan.d.ts.map +1 -0
- package/dist/node/container.d.ts +256 -0
- package/dist/node/container.d.ts.map +1 -0
- package/dist/node/feature.d.ts +9 -0
- package/dist/node/feature.d.ts.map +1 -0
- package/dist/node/features/container-link.d.ts +213 -0
- package/dist/node/features/container-link.d.ts.map +1 -0
- package/dist/node/features/content-db.d.ts +354 -0
- package/dist/node/features/content-db.d.ts.map +1 -0
- package/dist/node/features/disk-cache.d.ts +236 -0
- package/dist/node/features/disk-cache.d.ts.map +1 -0
- package/dist/node/features/dns.d.ts +511 -0
- package/dist/node/features/dns.d.ts.map +1 -0
- package/dist/node/features/docker.d.ts +485 -0
- package/dist/node/features/docker.d.ts.map +1 -0
- package/dist/node/features/downloader.d.ts +73 -0
- package/dist/node/features/downloader.d.ts.map +1 -0
- package/dist/node/features/figlet-fonts.d.ts +4 -0
- package/dist/node/features/figlet-fonts.d.ts.map +1 -0
- package/dist/node/features/file-manager.d.ts +177 -0
- package/dist/node/features/file-manager.d.ts.map +1 -0
- package/dist/node/features/fs.d.ts +635 -0
- package/dist/node/features/fs.d.ts.map +1 -0
- package/dist/node/features/git.d.ts +329 -0
- package/dist/node/features/git.d.ts.map +1 -0
- package/dist/node/features/google-auth.d.ts +200 -0
- package/dist/node/features/google-auth.d.ts.map +1 -0
- package/dist/node/features/google-calendar.d.ts +194 -0
- package/dist/node/features/google-calendar.d.ts.map +1 -0
- package/dist/node/features/google-docs.d.ts +138 -0
- package/dist/node/features/google-docs.d.ts.map +1 -0
- package/dist/node/features/google-drive.d.ts +202 -0
- package/dist/node/features/google-drive.d.ts.map +1 -0
- package/dist/node/features/google-mail.d.ts +221 -0
- package/dist/node/features/google-mail.d.ts.map +1 -0
- package/dist/node/features/google-sheets.d.ts +157 -0
- package/dist/node/features/google-sheets.d.ts.map +1 -0
- package/dist/node/features/grep.d.ts +207 -0
- package/dist/node/features/grep.d.ts.map +1 -0
- package/dist/node/features/helpers.d.ts +236 -0
- package/dist/node/features/helpers.d.ts.map +1 -0
- package/dist/node/features/ink.d.ts +332 -0
- package/dist/node/features/ink.d.ts.map +1 -0
- package/dist/node/features/ipc-socket.d.ts +298 -0
- package/dist/node/features/ipc-socket.d.ts.map +1 -0
- package/dist/node/features/json-tree.d.ts +140 -0
- package/dist/node/features/json-tree.d.ts.map +1 -0
- package/dist/node/features/networking.d.ts +373 -0
- package/dist/node/features/networking.d.ts.map +1 -0
- package/dist/node/features/nlp.d.ts +125 -0
- package/dist/node/features/nlp.d.ts.map +1 -0
- package/dist/node/features/opener.d.ts +93 -0
- package/dist/node/features/opener.d.ts.map +1 -0
- package/dist/node/features/os.d.ts +168 -0
- package/dist/node/features/os.d.ts.map +1 -0
- package/dist/node/features/package-finder.d.ts +419 -0
- package/dist/node/features/package-finder.d.ts.map +1 -0
- package/dist/node/features/postgres.d.ts +173 -0
- package/dist/node/features/postgres.d.ts.map +1 -0
- package/dist/node/features/proc.d.ts +285 -0
- package/dist/node/features/proc.d.ts.map +1 -0
- package/dist/node/features/process-manager.d.ts +427 -0
- package/dist/node/features/process-manager.d.ts.map +1 -0
- package/dist/node/features/python.d.ts +477 -0
- package/dist/node/features/python.d.ts.map +1 -0
- package/dist/node/features/redis.d.ts +247 -0
- package/dist/node/features/redis.d.ts.map +1 -0
- package/dist/node/features/repl.d.ts +84 -0
- package/dist/node/features/repl.d.ts.map +1 -0
- package/dist/node/features/runpod.d.ts +527 -0
- package/dist/node/features/runpod.d.ts.map +1 -0
- package/dist/node/features/secure-shell.d.ts +145 -0
- package/dist/node/features/secure-shell.d.ts.map +1 -0
- package/dist/node/features/semantic-search.d.ts +207 -0
- package/dist/node/features/semantic-search.d.ts.map +1 -0
- package/dist/node/features/sqlite.d.ts +180 -0
- package/dist/node/features/sqlite.d.ts.map +1 -0
- package/dist/node/features/telegram.d.ts +173 -0
- package/dist/node/features/telegram.d.ts.map +1 -0
- package/dist/node/features/transpiler.d.ts +51 -0
- package/dist/node/features/transpiler.d.ts.map +1 -0
- package/dist/node/features/tts.d.ts +108 -0
- package/dist/node/features/tts.d.ts.map +1 -0
- package/dist/node/features/ui.d.ts +562 -0
- package/dist/node/features/ui.d.ts.map +1 -0
- package/dist/node/features/vault.d.ts +90 -0
- package/dist/node/features/vault.d.ts.map +1 -0
- package/dist/node/features/vm.d.ts +285 -0
- package/dist/node/features/vm.d.ts.map +1 -0
- package/dist/node/features/yaml-tree.d.ts +118 -0
- package/dist/node/features/yaml-tree.d.ts.map +1 -0
- package/dist/node/features/yaml.d.ts +127 -0
- package/dist/node/features/yaml.d.ts.map +1 -0
- package/dist/node.d.ts +67 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/python/generated.d.ts +2 -0
- package/dist/python/generated.d.ts.map +1 -0
- package/dist/react/index.d.ts +36 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/registry.d.ts +97 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/scaffolds/generated.d.ts +13 -0
- package/dist/scaffolds/generated.d.ts.map +1 -0
- package/dist/scaffolds/template.d.ts +11 -0
- package/dist/scaffolds/template.d.ts.map +1 -0
- package/dist/schemas/base.d.ts +254 -0
- package/dist/schemas/base.d.ts.map +1 -0
- package/dist/selector.d.ts +130 -0
- package/dist/selector.d.ts.map +1 -0
- package/dist/server.d.ts +89 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/servers/express.d.ts +104 -0
- package/dist/servers/express.d.ts.map +1 -0
- package/dist/servers/mcp.d.ts +201 -0
- package/dist/servers/mcp.d.ts.map +1 -0
- package/dist/servers/socket.d.ts +121 -0
- package/dist/servers/socket.d.ts.map +1 -0
- package/dist/state.d.ts +24 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/web/clients/socket.d.ts +37 -0
- package/dist/web/clients/socket.d.ts.map +1 -0
- package/dist/web/container.d.ts +55 -0
- package/dist/web/container.d.ts.map +1 -0
- package/dist/web/extension.d.ts +4 -0
- package/dist/web/extension.d.ts.map +1 -0
- package/dist/web/feature.d.ts +8 -0
- package/dist/web/feature.d.ts.map +1 -0
- package/dist/web/features/asset-loader.d.ts +35 -0
- package/dist/web/features/asset-loader.d.ts.map +1 -0
- package/dist/web/features/container-link.d.ts +167 -0
- package/dist/web/features/container-link.d.ts.map +1 -0
- package/dist/web/features/esbuild.d.ts +51 -0
- package/dist/web/features/esbuild.d.ts.map +1 -0
- package/dist/web/features/helpers.d.ts +140 -0
- package/dist/web/features/helpers.d.ts.map +1 -0
- package/dist/web/features/network.d.ts +69 -0
- package/dist/web/features/network.d.ts.map +1 -0
- package/dist/web/features/speech.d.ts +71 -0
- package/dist/web/features/speech.d.ts.map +1 -0
- package/dist/web/features/vault.d.ts +62 -0
- package/dist/web/features/vault.d.ts.map +1 -0
- package/dist/web/features/vm.d.ts +48 -0
- package/dist/web/features/vm.d.ts.map +1 -0
- package/dist/web/features/voice-recognition.d.ts +96 -0
- package/dist/web/features/voice-recognition.d.ts.map +1 -0
- package/dist/web/shims/isomorphic-vm.d.ts +22 -0
- package/dist/web/shims/isomorphic-vm.d.ts.map +1 -0
- package/index.html +1457 -0
- package/index.ts +1 -0
- package/install.sh +84 -0
- package/luca.cli.ts +16 -0
- package/luca.console.ts +9 -0
- package/main.py +6 -0
- package/package.json +219 -58
- package/public/index.html +1457 -0
- package/public/slides-ai-native.html +902 -0
- package/public/slides-intro.html +974 -0
- package/pyproject.toml +7 -0
- package/scripts/build-web.ts +28 -0
- package/scripts/examples/ask-luca-expert.ts +42 -0
- package/scripts/examples/assistant-questions.ts +12 -0
- package/scripts/examples/excalidraw-expert.ts +75 -0
- package/scripts/examples/expert-chat.ts +0 -0
- package/scripts/examples/file-manager.ts +14 -0
- package/scripts/examples/ideas.ts +12 -0
- package/scripts/examples/interactive-chat.ts +20 -0
- package/scripts/examples/openai-tool-calls.ts +113 -0
- package/scripts/examples/opening-a-web-browser.ts +5 -0
- package/scripts/examples/telegram-bot.ts +79 -0
- package/scripts/examples/using-assistant-with-mcp.ts +555 -0
- package/scripts/examples/using-claude-code.ts +10 -0
- package/scripts/examples/using-contentdb.ts +35 -0
- package/scripts/examples/using-conversations.ts +35 -0
- package/scripts/examples/using-disk-cache.ts +10 -0
- package/scripts/examples/using-docker-shell.ts +75 -0
- package/scripts/examples/using-elevenlabs.ts +25 -0
- package/scripts/examples/using-google-calendar.ts +57 -0
- package/scripts/examples/using-google-docs.ts +74 -0
- package/scripts/examples/using-google-drive.ts +74 -0
- package/scripts/examples/using-google-sheets.ts +89 -0
- package/scripts/examples/using-nlp.ts +55 -0
- package/scripts/examples/using-ollama.ts +11 -0
- package/scripts/examples/using-postgres.ts +55 -0
- package/scripts/examples/using-runpod.ts +32 -0
- package/scripts/examples/using-tts.ts +40 -0
- package/scripts/scaffold.ts +391 -0
- package/scripts/scratch.ts +15 -0
- package/scripts/stamp-build.sh +12 -0
- package/scripts/test-assistant-hooks.ts +13 -0
- package/scripts/test-docs-reader.ts +10 -0
- package/scripts/test-linux-binary.sh +80 -0
- package/scripts/update-introspection-data.ts +58 -0
- package/src/agi/README.md +14 -0
- package/src/agi/container.server.ts +156 -0
- package/src/agi/feature.ts +13 -0
- package/src/agi/features/agent-memory.ts +694 -0
- package/src/agi/features/assistant.ts +1653 -0
- package/src/agi/features/assistants-manager.ts +534 -0
- package/src/agi/features/autonomous-assistant.ts +431 -0
- package/src/agi/features/browser-use.ts +672 -0
- package/src/agi/features/claude-code.ts +1584 -0
- package/src/agi/features/coding-tools.ts +175 -0
- package/src/agi/features/conversation-history.ts +672 -0
- package/src/agi/features/conversation.ts +1494 -0
- package/src/agi/features/docs-reader.ts +167 -0
- package/src/agi/features/file-tools.ts +340 -0
- package/src/agi/features/luca-coder.ts +641 -0
- package/src/agi/features/mcp-bridge.ts +532 -0
- package/src/agi/features/openai-codex.ts +651 -0
- package/src/agi/features/openapi.ts +445 -0
- package/src/agi/features/skills-library.ts +557 -0
- package/src/agi/index.ts +6 -0
- package/src/agi/lib/interceptor-chain.ts +89 -0
- package/src/agi/lib/token-counter.ts +202 -0
- package/src/bootstrap/generated.ts +9791 -0
- package/src/browser.ts +25 -0
- package/src/bus.ts +122 -0
- package/src/cli/build-info.ts +4 -0
- package/src/cli/cli.ts +355 -0
- package/src/client.ts +170 -0
- package/src/clients/civitai/index.ts +537 -0
- package/src/clients/client-template.ts +41 -0
- package/src/clients/comfyui/index.ts +604 -0
- package/src/clients/elevenlabs/index.ts +317 -0
- package/src/clients/graph.ts +87 -0
- package/src/clients/openai/index.ts +456 -0
- package/src/clients/rest.ts +207 -0
- package/src/clients/supabase/index.ts +357 -0
- package/src/clients/voicebox/index.ts +300 -0
- package/src/clients/websocket.ts +251 -0
- package/src/command.ts +506 -0
- package/src/commands/bootstrap.ts +244 -0
- package/src/commands/chat.ts +309 -0
- package/src/commands/code.ts +371 -0
- package/src/commands/console.ts +189 -0
- package/src/commands/describe.ts +243 -0
- package/src/commands/eval.ts +67 -0
- package/src/commands/help.ts +240 -0
- package/src/commands/index.ts +19 -0
- package/src/commands/introspect.ts +218 -0
- package/src/commands/mcp.ts +64 -0
- package/src/commands/prompt.ts +1014 -0
- package/src/commands/run.ts +278 -0
- package/src/commands/sandbox-mcp.ts +343 -0
- package/src/commands/save-api-docs.ts +51 -0
- package/src/commands/scaffold.ts +225 -0
- package/src/commands/select.ts +99 -0
- package/src/commands/serve.ts +208 -0
- package/src/container-describer.ts +1091 -0
- package/src/container.ts +1199 -0
- package/src/endpoint.ts +365 -0
- package/src/entity.ts +173 -0
- package/src/feature.ts +118 -0
- package/src/graft.ts +181 -0
- package/src/hash-object.ts +97 -0
- package/src/helper.ts +849 -0
- package/src/introspection/generated.agi.ts +41200 -0
- package/src/introspection/generated.node.ts +28773 -0
- package/src/introspection/generated.web.ts +2272 -0
- package/src/introspection/index.ts +296 -0
- package/src/introspection/scan.ts +1136 -0
- package/src/node/container.ts +409 -0
- package/src/node/feature.ts +13 -0
- package/src/node/features/container-link.ts +559 -0
- package/src/node/features/content-db.ts +849 -0
- package/src/node/features/disk-cache.ts +388 -0
- package/src/node/features/display-result.ts +57 -0
- package/src/node/features/dns.ts +669 -0
- package/src/node/features/docker.ts +921 -0
- package/src/node/features/downloader.ts +79 -0
- package/src/node/features/figlet-fonts.ts +600 -0
- package/src/node/features/file-manager.ts +535 -0
- package/src/node/features/fs.ts +1050 -0
- package/src/node/features/git.ts +592 -0
- package/src/node/features/google-auth.ts +504 -0
- package/src/node/features/google-calendar.ts +306 -0
- package/src/node/features/google-docs.ts +412 -0
- package/src/node/features/google-drive.ts +346 -0
- package/src/node/features/google-mail.ts +540 -0
- package/src/node/features/google-sheets.ts +286 -0
- package/src/node/features/grep.ts +427 -0
- package/src/node/features/helpers.ts +762 -0
- package/src/node/features/ink.ts +490 -0
- package/src/node/features/ipc-socket.ts +649 -0
- package/src/node/features/json-tree.ts +170 -0
- package/src/node/features/networking.ts +961 -0
- package/src/node/features/nlp.ts +212 -0
- package/src/node/features/opener.ts +180 -0
- package/src/node/features/os.ts +403 -0
- package/src/node/features/package-finder.ts +540 -0
- package/src/node/features/postgres.ts +289 -0
- package/src/node/features/proc.ts +503 -0
- package/src/node/features/process-manager.ts +844 -0
- package/src/node/features/python.ts +912 -0
- package/src/node/features/redis.ts +446 -0
- package/src/node/features/repl.ts +212 -0
- package/src/node/features/runpod.ts +811 -0
- package/src/node/features/secure-shell.ts +261 -0
- package/src/node/features/semantic-search.ts +935 -0
- package/src/node/features/sqlite.ts +289 -0
- package/src/node/features/telegram.ts +343 -0
- package/src/node/features/transpiler.ts +160 -0
- package/src/node/features/tts.ts +185 -0
- package/src/node/features/ui.ts +791 -0
- package/src/node/features/vault.ts +153 -0
- package/src/node/features/vm.ts +462 -0
- package/src/node/features/yaml-tree.ts +148 -0
- package/src/node/features/yaml.ts +133 -0
- package/src/node.ts +76 -0
- package/src/python/bridge.py +220 -0
- package/src/python/generated.ts +226 -0
- package/src/react/index.ts +175 -0
- package/src/registry.ts +210 -0
- package/src/scaffolds/generated.ts +1814 -0
- package/src/scaffolds/template.ts +46 -0
- package/src/schemas/base.ts +296 -0
- package/src/selector.ts +352 -0
- package/src/server.ts +229 -0
- package/src/servers/express.ts +283 -0
- package/src/servers/mcp.ts +802 -0
- package/src/servers/socket.ts +258 -0
- package/src/state.ts +101 -0
- package/src/web/clients/socket.ts +99 -0
- package/src/web/container.ts +75 -0
- package/src/web/extension.ts +30 -0
- package/src/web/feature.ts +12 -0
- package/src/web/features/asset-loader.ts +72 -0
- package/src/web/features/container-link.ts +382 -0
- package/src/web/features/esbuild.ts +93 -0
- package/src/web/features/helpers.ts +291 -0
- package/src/web/features/network.ts +85 -0
- package/src/web/features/speech.ts +104 -0
- package/src/web/features/vault.ts +207 -0
- package/src/web/features/vm.ts +85 -0
- package/src/web/features/voice-recognition.ts +161 -0
- package/src/web/shims/isomorphic-vm.ts +149 -0
- package/tsconfig.build.json +12 -0
- package/tsconfig.json +58 -0
- package/uv.lock +8 -0
- package/LICENSE +0 -21
- package/dist/cli/cli.js +0 -48
- package/dist/cli/common.d.ts +0 -2
- package/dist/cli/common.js +0 -6
- package/dist/cli/index.d.ts +0 -2
- package/dist/cli/index.js +0 -5
- package/dist/cli/run.d.ts +0 -1
- package/dist/cli/run.js +0 -38
- package/dist/core/index.d.ts +0 -4
- package/dist/core/index.js +0 -32
- package/dist/core/read.d.ts +0 -2
- package/dist/core/read.js +0 -29
- package/dist/core/request.d.ts +0 -1
- package/dist/core/request.js +0 -2
- package/dist/core/write.d.ts +0 -2
- package/dist/core/write.js +0 -21
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -5
- package/dist/utils/common.d.ts +0 -9
- package/dist/utils/common.js +0 -57
- package/dist/utils/consts.d.ts +0 -3
- package/dist/utils/consts.js +0 -11
- package/dist/utils/dict.d.ts +0 -1
- package/dist/utils/dict.js +0 -7
- package/dist/utils/index.d.ts +0 -5
- package/dist/utils/index.js +0 -21
- package/dist/utils/log.d.ts +0 -1
- package/dist/utils/log.js +0 -5
- package/dist/utils/types.d.ts +0 -1
- package/dist/utils/types.js +0 -2
- package/dist/utils/utils.test.d.ts +0 -1
- package/dist/utils/utils.test.js +0 -7
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { z } from 'zod'
|
|
2
|
+
import type { ContainerContext } from 'luca'
|
|
3
|
+
import { CommandOptionsSchema } from 'luca/schemas'
|
|
4
|
+
|
|
5
|
+
export const argsSchema = CommandOptionsSchema.extend({})
|
|
6
|
+
|
|
7
|
+
async function buildBootstrap(options: z.infer<typeof argsSchema>, context: ContainerContext) {
|
|
8
|
+
const container = context.container as any
|
|
9
|
+
const fs = container.feature('fs')
|
|
10
|
+
|
|
11
|
+
const sourceDir = 'docs/bootstrap'
|
|
12
|
+
const outputPath = 'src/bootstrap/generated.ts'
|
|
13
|
+
|
|
14
|
+
if (!fs.exists(sourceDir)) {
|
|
15
|
+
console.log(`Source directory ${sourceDir} not found`)
|
|
16
|
+
return
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// 1. Collect top-level markdown files (SKILL.md, CLAUDE.md, etc.)
|
|
20
|
+
const allFiles = await fs.readdir(sourceDir)
|
|
21
|
+
const mdFiles = allFiles.filter((f: string) => f.endsWith('.md'))
|
|
22
|
+
const entries: Record<string, string> = {}
|
|
23
|
+
|
|
24
|
+
for (const file of mdFiles) {
|
|
25
|
+
const content = await fs.readFileAsync(`${sourceDir}/${file}`)
|
|
26
|
+
const name = file.replace(/\.md$/, '')
|
|
27
|
+
entries[name] = content
|
|
28
|
+
console.log(` ${name}: ${content.length} chars`)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// 2. Collect template files (docs/bootstrap/templates/*)
|
|
32
|
+
const templates: Record<string, string> = {}
|
|
33
|
+
const templatesDir = `${sourceDir}/templates`
|
|
34
|
+
if (fs.exists(templatesDir)) {
|
|
35
|
+
const templateFiles = await fs.readdir(templatesDir)
|
|
36
|
+
for (const file of templateFiles) {
|
|
37
|
+
const content = await fs.readFileAsync(`${templatesDir}/${file}`)
|
|
38
|
+
const name = file.replace(/\.[^.]+$/, '') // strip any extension
|
|
39
|
+
templates[name] = content
|
|
40
|
+
console.log(` template/${name}: ${content.length} chars`)
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// 3. Collect docs/examples/*.md
|
|
45
|
+
const examples: Record<string, string> = {}
|
|
46
|
+
const examplesDir = 'docs/examples'
|
|
47
|
+
if (fs.exists(examplesDir)) {
|
|
48
|
+
const exampleFiles = (await fs.readdir(examplesDir)).filter((f: string) => f.endsWith('.md'))
|
|
49
|
+
for (const file of exampleFiles) {
|
|
50
|
+
const content = await fs.readFileAsync(`${examplesDir}/${file}`)
|
|
51
|
+
examples[file] = content
|
|
52
|
+
console.log(` example/${file}: ${content.length} chars`)
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// 4. Collect docs/tutorials/*.md
|
|
57
|
+
const tutorials: Record<string, string> = {}
|
|
58
|
+
const tutorialsDir = 'docs/tutorials'
|
|
59
|
+
if (fs.exists(tutorialsDir)) {
|
|
60
|
+
const tutorialFiles = (await fs.readdir(tutorialsDir)).filter((f: string) => f.endsWith('.md'))
|
|
61
|
+
for (const file of tutorialFiles) {
|
|
62
|
+
const content = await fs.readFileAsync(`${tutorialsDir}/${file}`)
|
|
63
|
+
tutorials[file] = content
|
|
64
|
+
console.log(` tutorial/${file}: ${content.length} chars`)
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const escapeForTemplate = (s: string) => s.replace(/\\/g, '\\\\').replace(/`/g, '\\`').replace(/\$\{/g, '\\${')
|
|
69
|
+
|
|
70
|
+
const fileEntries = Object.entries(entries).map(([name, content]) =>
|
|
71
|
+
` ${JSON.stringify(name)}: \`${escapeForTemplate(content)}\``
|
|
72
|
+
).join(',\n')
|
|
73
|
+
|
|
74
|
+
const templateEntries = Object.entries(templates).map(([name, content]) =>
|
|
75
|
+
` ${JSON.stringify(name)}: \`${escapeForTemplate(content)}\``
|
|
76
|
+
).join(',\n')
|
|
77
|
+
|
|
78
|
+
const exampleEntries = Object.entries(examples).map(([name, content]) =>
|
|
79
|
+
` ${JSON.stringify(name)}: \`${escapeForTemplate(content)}\``
|
|
80
|
+
).join(',\n')
|
|
81
|
+
|
|
82
|
+
const tutorialEntries = Object.entries(tutorials).map(([name, content]) =>
|
|
83
|
+
` ${JSON.stringify(name)}: \`${escapeForTemplate(content)}\``
|
|
84
|
+
).join(',\n')
|
|
85
|
+
|
|
86
|
+
const output = `// Auto-generated bootstrap content
|
|
87
|
+
// Source: docs/bootstrap/*.md, docs/bootstrap/templates/*, docs/examples/*.md, docs/tutorials/*.md
|
|
88
|
+
//
|
|
89
|
+
// Do not edit manually. Run: luca build-bootstrap
|
|
90
|
+
|
|
91
|
+
export const bootstrapFiles: Record<string, string> = {
|
|
92
|
+
${fileEntries}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export const bootstrapTemplates: Record<string, string> = {
|
|
96
|
+
${templateEntries}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export const bootstrapExamples: Record<string, string> = {
|
|
100
|
+
${exampleEntries}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export const bootstrapTutorials: Record<string, string> = {
|
|
104
|
+
${tutorialEntries}
|
|
105
|
+
}
|
|
106
|
+
`
|
|
107
|
+
|
|
108
|
+
fs.ensureFolder('src/bootstrap')
|
|
109
|
+
await fs.writeFileAsync(outputPath, output)
|
|
110
|
+
console.log(`\nGenerated ${outputPath}`)
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export default {
|
|
114
|
+
description: 'Bundle docs/bootstrap/*.md into src/bootstrap/generated.ts for the compiled binary',
|
|
115
|
+
argsSchema,
|
|
116
|
+
handler: buildBootstrap,
|
|
117
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from 'zod'
|
|
2
|
+
import type { ContainerContext } from 'luca'
|
|
3
|
+
import { CommandOptionsSchema } from 'luca/schemas'
|
|
4
|
+
|
|
5
|
+
export const argsSchema = CommandOptionsSchema.extend({})
|
|
6
|
+
|
|
7
|
+
async function buildPythonBridge(options: z.infer<typeof argsSchema>, context: ContainerContext) {
|
|
8
|
+
const container = context.container as any
|
|
9
|
+
const fs = container.feature('fs')
|
|
10
|
+
|
|
11
|
+
const sourcePath = 'src/python/bridge.py'
|
|
12
|
+
const outputPath = 'src/python/generated.ts'
|
|
13
|
+
|
|
14
|
+
if (!fs.exists(sourcePath)) {
|
|
15
|
+
console.error(` ā ${sourcePath} not found`)
|
|
16
|
+
process.exit(1)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const content = fs.readFile(sourcePath)
|
|
20
|
+
console.log(` š bridge.py: ${content.length} chars`)
|
|
21
|
+
|
|
22
|
+
const escapeForTemplate = (s: string) =>
|
|
23
|
+
s.replace(/\\/g, '\\\\').replace(/`/g, '\\`').replace(/\$\{/g, '\\${')
|
|
24
|
+
|
|
25
|
+
const output = `// Auto-generated Python bridge script
|
|
26
|
+
// Source: src/python/bridge.py
|
|
27
|
+
//
|
|
28
|
+
// Do not edit manually. Run: luca build-python-bridge
|
|
29
|
+
|
|
30
|
+
export const bridgeScript = \`${escapeForTemplate(content)}\`
|
|
31
|
+
`
|
|
32
|
+
|
|
33
|
+
fs.ensureFolder('src/python')
|
|
34
|
+
await fs.writeFileAsync(outputPath, output)
|
|
35
|
+
console.log(`\n⨠Generated ${outputPath}`)
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export default {
|
|
39
|
+
description: 'Bundle the Python bridge script into src/python/generated.ts',
|
|
40
|
+
argsSchema,
|
|
41
|
+
handler: buildPythonBridge,
|
|
42
|
+
}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { z } from 'zod'
|
|
2
|
+
import type { ContainerContext } from 'luca'
|
|
3
|
+
import { CommandOptionsSchema } from 'luca/schemas'
|
|
4
|
+
|
|
5
|
+
export const argsSchema = CommandOptionsSchema.extend({})
|
|
6
|
+
|
|
7
|
+
interface ScaffoldSection {
|
|
8
|
+
heading: string
|
|
9
|
+
code: string
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
interface ScaffoldData {
|
|
13
|
+
sections: ScaffoldSection[]
|
|
14
|
+
full: string
|
|
15
|
+
tutorial: string
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Parse a markdown file to extract code blocks grouped by their nearest heading.
|
|
20
|
+
* Also extracts the "Complete Example" code block as the `full` template.
|
|
21
|
+
*/
|
|
22
|
+
function parseScaffoldMarkdown(content: string): ScaffoldData {
|
|
23
|
+
const sections: ScaffoldSection[] = []
|
|
24
|
+
let full = ''
|
|
25
|
+
|
|
26
|
+
let currentHeading = ''
|
|
27
|
+
const lines = content.split('\n')
|
|
28
|
+
let inCodeBlock = false
|
|
29
|
+
let codeBlockLang = ''
|
|
30
|
+
let codeBlockLines: string[] = []
|
|
31
|
+
|
|
32
|
+
for (const line of lines) {
|
|
33
|
+
// Track headings
|
|
34
|
+
const headingMatch = line.match(/^##\s+(.+)/)
|
|
35
|
+
if (headingMatch && !inCodeBlock) {
|
|
36
|
+
currentHeading = headingMatch[1].trim()
|
|
37
|
+
continue
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// Track code fences
|
|
41
|
+
const fenceMatch = line.match(/^```(\w*)/)
|
|
42
|
+
if (fenceMatch && !inCodeBlock) {
|
|
43
|
+
inCodeBlock = true
|
|
44
|
+
codeBlockLang = fenceMatch[1] || ''
|
|
45
|
+
codeBlockLines = []
|
|
46
|
+
continue
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (line.startsWith('```') && inCodeBlock) {
|
|
50
|
+
inCodeBlock = false
|
|
51
|
+
const code = codeBlockLines.join('\n')
|
|
52
|
+
|
|
53
|
+
// Only collect ts/js code blocks
|
|
54
|
+
if (codeBlockLang === 'ts' || codeBlockLang === 'typescript' || codeBlockLang === 'js') {
|
|
55
|
+
sections.push({ heading: currentHeading, code })
|
|
56
|
+
|
|
57
|
+
if (currentHeading === 'Complete Example') {
|
|
58
|
+
full = code
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
continue
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (inCodeBlock) {
|
|
65
|
+
codeBlockLines.push(line)
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return { sections, full, tutorial: content }
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
async function buildScaffolds(options: z.infer<typeof argsSchema>, context: ContainerContext) {
|
|
73
|
+
const container = context.container as any
|
|
74
|
+
const fs = container.feature('fs')
|
|
75
|
+
|
|
76
|
+
const scaffoldDir = 'docs/scaffolds'
|
|
77
|
+
const readmePath = 'docs/mcp/readme.md'
|
|
78
|
+
const outputPath = 'src/scaffolds/generated.ts'
|
|
79
|
+
|
|
80
|
+
const types = ['feature', 'client', 'server', 'command', 'endpoint', 'selector']
|
|
81
|
+
const scaffolds: Record<string, ScaffoldData> = {}
|
|
82
|
+
|
|
83
|
+
for (const type of types) {
|
|
84
|
+
const filePath = `${scaffoldDir}/${type}.md`
|
|
85
|
+
if (!fs.exists(filePath)) {
|
|
86
|
+
console.log(` ā ${filePath} (not found, skipping)`)
|
|
87
|
+
continue
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const content = fs.readFile(filePath)
|
|
91
|
+
scaffolds[type] = parseScaffoldMarkdown(content)
|
|
92
|
+
console.log(` š ${type}: ${scaffolds[type].sections.length} sections, full template: ${scaffolds[type].full ? 'yes' : 'no'}`)
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Bundle the assistant example as a multi-file scaffold
|
|
96
|
+
const assistantDir = 'docs/examples/assistant'
|
|
97
|
+
const assistantFiles: Record<string, string> = {}
|
|
98
|
+
const assistantFileNames = ['CORE.md', 'tools.ts', 'hooks.ts']
|
|
99
|
+
for (const fileName of assistantFileNames) {
|
|
100
|
+
const filePath = `${assistantDir}/${fileName}`
|
|
101
|
+
if (fs.exists(filePath)) {
|
|
102
|
+
assistantFiles[fileName] = fs.readFile(filePath)
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (Object.keys(assistantFiles).length > 0) {
|
|
106
|
+
console.log(` š assistant: ${Object.keys(assistantFiles).length} files (${Object.keys(assistantFiles).join(', ')})`)
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// Read the MCP readme
|
|
110
|
+
let mcpReadme = ''
|
|
111
|
+
if (fs.exists(readmePath)) {
|
|
112
|
+
mcpReadme = fs.readFile(readmePath)
|
|
113
|
+
console.log(` š MCP readme: ${mcpReadme.length} chars`)
|
|
114
|
+
} else {
|
|
115
|
+
console.log(` ā ļø ${readmePath} not found`)
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Generate the output file
|
|
119
|
+
const escapeForTemplate = (s: string) => s.replace(/\\/g, '\\\\').replace(/`/g, '\\`').replace(/\$\{/g, '\\${')
|
|
120
|
+
|
|
121
|
+
const scaffoldEntries = Object.entries(scaffolds).map(([type, data]) => {
|
|
122
|
+
const sectionsStr = data.sections.map(s =>
|
|
123
|
+
` { heading: ${JSON.stringify(s.heading)}, code: \`${escapeForTemplate(s.code)}\` }`
|
|
124
|
+
).join(',\n')
|
|
125
|
+
|
|
126
|
+
return ` ${type}: {
|
|
127
|
+
sections: [
|
|
128
|
+
${sectionsStr}
|
|
129
|
+
],
|
|
130
|
+
full: \`${escapeForTemplate(data.full)}\`,
|
|
131
|
+
tutorial: \`${escapeForTemplate(data.tutorial)}\`,
|
|
132
|
+
}`
|
|
133
|
+
}).join(',\n')
|
|
134
|
+
|
|
135
|
+
const assistantFilesEntries = Object.entries(assistantFiles).map(([name, content]) =>
|
|
136
|
+
` ${JSON.stringify(name)}: \`${escapeForTemplate(content)}\``
|
|
137
|
+
).join(',\n')
|
|
138
|
+
|
|
139
|
+
const output = `// Auto-generated scaffold and MCP readme content
|
|
140
|
+
// Source: docs/scaffolds/*.md, docs/examples/assistant/, and docs/mcp/readme.md
|
|
141
|
+
//
|
|
142
|
+
// Do not edit manually. Run: luca build-scaffolds
|
|
143
|
+
|
|
144
|
+
export interface ScaffoldSection {
|
|
145
|
+
heading: string
|
|
146
|
+
code: string
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export interface ScaffoldData {
|
|
150
|
+
sections: ScaffoldSection[]
|
|
151
|
+
full: string
|
|
152
|
+
tutorial: string
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export const scaffolds: Record<string, ScaffoldData> = {
|
|
156
|
+
${scaffoldEntries}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export const assistantFiles: Record<string, string> = {
|
|
160
|
+
${assistantFilesEntries}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export const mcpReadme = \`${escapeForTemplate(mcpReadme)}\`
|
|
164
|
+
`
|
|
165
|
+
|
|
166
|
+
fs.ensureFolder('src/scaffolds')
|
|
167
|
+
await fs.writeFileAsync(outputPath, output)
|
|
168
|
+
console.log(`\n⨠Generated ${outputPath}`)
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export default {
|
|
172
|
+
description: 'Generate scaffold templates and MCP readme from docs/scaffolds/*.md',
|
|
173
|
+
argsSchema,
|
|
174
|
+
handler: buildScaffolds,
|
|
175
|
+
}
|