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,85 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
//
|
|
3
|
+
import { z } from 'zod'
|
|
4
|
+
import { FeatureStateSchema, FeatureOptionsSchema } from '../../schemas/base.js'
|
|
5
|
+
import vm from '../shims/isomorphic-vm'
|
|
6
|
+
import { Feature } from "../feature.js";
|
|
7
|
+
|
|
8
|
+
export const VMStateSchema = FeatureStateSchema.extend({})
|
|
9
|
+
|
|
10
|
+
export const VMOptionsSchema = FeatureOptionsSchema.extend({
|
|
11
|
+
context: z.any().describe('VM context object').optional(),
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
export type VMState = z.infer<typeof VMStateSchema>
|
|
15
|
+
export type VMOptions = z.infer<typeof VMOptionsSchema>
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Sandboxed JavaScript execution environment for the browser.
|
|
19
|
+
*
|
|
20
|
+
* Automatically injects the container's context object into the global scope,
|
|
21
|
+
* so evaluated code can use anything provided by the container. Useful for
|
|
22
|
+
* live code playgrounds, plugin systems, and dynamic script evaluation.
|
|
23
|
+
*
|
|
24
|
+
* @extends Feature
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const vm = container.feature('vm')
|
|
29
|
+
* const result = vm.run('1 + 2 + 3') // 6
|
|
30
|
+
* const greeting = vm.run('container.uuid') // accesses container globals
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export class VM<
|
|
34
|
+
T extends VMState = VMState,
|
|
35
|
+
K extends VMOptions = VMOptions
|
|
36
|
+
> extends Feature<T, K> {
|
|
37
|
+
|
|
38
|
+
static override stateSchema = VMStateSchema
|
|
39
|
+
static override optionsSchema = VMOptionsSchema
|
|
40
|
+
static override shortcut = "features.vm" as const
|
|
41
|
+
|
|
42
|
+
static { Feature.register(this, 'vm') }
|
|
43
|
+
|
|
44
|
+
createScript(code: string) {
|
|
45
|
+
return new vm.Script(code)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
createContext(ctx: any = {}) {
|
|
49
|
+
return vm.createContext({
|
|
50
|
+
...this.container.context,
|
|
51
|
+
...ctx
|
|
52
|
+
})
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
async run(code: string, ctx: any = {}, options : any = {}) {
|
|
56
|
+
let script = this.createScript(code)
|
|
57
|
+
|
|
58
|
+
if (options.transform) {
|
|
59
|
+
const esbuild = this.container.feature('esbuild')
|
|
60
|
+
await esbuild.start()
|
|
61
|
+
const result = await esbuild.compile(code, options.transform)
|
|
62
|
+
script = this.createScript(result.code)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const context = this.createContext(ctx)
|
|
66
|
+
|
|
67
|
+
try {
|
|
68
|
+
const result = script.runInContext({
|
|
69
|
+
...context,
|
|
70
|
+
...(options.exports && { exports: options.exports })
|
|
71
|
+
})
|
|
72
|
+
|
|
73
|
+
if (options.exports) {
|
|
74
|
+
return { result, exports: options.exports, context }
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return result
|
|
78
|
+
} catch(error) {
|
|
79
|
+
console.error(`Error running code`, error)
|
|
80
|
+
return error
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export default VM;
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { z } from 'zod'
|
|
2
|
+
import { FeatureStateSchema, FeatureOptionsSchema, FeatureEventsSchema } from '../../schemas/base.js'
|
|
3
|
+
import { Feature } from "../../feature.js";
|
|
4
|
+
import { type ContainerContext } from '../container.js'
|
|
5
|
+
|
|
6
|
+
export const VoiceRecognitionOptionsSchema = FeatureOptionsSchema.extend({
|
|
7
|
+
language: z.string().optional().describe('BCP 47 language code for recognition (e.g. en-US)'),
|
|
8
|
+
continuous: z.boolean().optional().describe('Whether to continuously listen for speech'),
|
|
9
|
+
autoListen: z.boolean().optional().describe('Whether to automatically start listening on creation'),
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
export const VoiceRecognitionStateSchema = FeatureStateSchema.extend({
|
|
13
|
+
listening: z.boolean().describe('Whether the recognizer is currently listening'),
|
|
14
|
+
transcript: z.string().describe('Accumulated final transcript text'),
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
export type VoiceRecognitionOptions = z.infer<typeof VoiceRecognitionOptionsSchema>
|
|
18
|
+
export type VoiceRecognitionState = z.infer<typeof VoiceRecognitionStateSchema>
|
|
19
|
+
|
|
20
|
+
export const VoiceRecognitionEventsSchema = FeatureEventsSchema.extend({
|
|
21
|
+
result: z.tuple([
|
|
22
|
+
z.object({
|
|
23
|
+
finalTranscript: z.string().describe('Accumulated final transcript text'),
|
|
24
|
+
interimTranscript: z.string().describe('Current interim transcript text'),
|
|
25
|
+
}).describe('Recognition result payload'),
|
|
26
|
+
]).describe('Fires when speech recognition produces a result'),
|
|
27
|
+
error: z.tuple([z.string().describe('Error message from the recognizer')]).describe('Fires when speech recognition encounters an error'),
|
|
28
|
+
end: z.tuple([]).describe('Fires when speech recognition ends'),
|
|
29
|
+
start: z.tuple([]).describe('Fires when speech recognition starts listening'),
|
|
30
|
+
stop: z.tuple([]).describe('Fires when speech recognition is manually stopped'),
|
|
31
|
+
abort: z.tuple([]).describe('Fires when speech recognition is aborted'),
|
|
32
|
+
}).describe('VoiceRecognition events')
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Speech-to-text recognition using the Web Speech API (SpeechRecognition).
|
|
36
|
+
*
|
|
37
|
+
* Wraps the browser's built-in speech recognition, supporting continuous
|
|
38
|
+
* listening, interim results, and language selection. Recognized text is
|
|
39
|
+
* accumulated in state and emitted as events for real-time transcription UIs.
|
|
40
|
+
*
|
|
41
|
+
* @extends Feature
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const voice = container.feature('voice', { continuous: true, autoListen: true })
|
|
46
|
+
*
|
|
47
|
+
* voice.on('transcript', ({ text }) => {
|
|
48
|
+
* console.log('Heard:', text)
|
|
49
|
+
* })
|
|
50
|
+
*
|
|
51
|
+
* // Or start manually
|
|
52
|
+
* voice.start()
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export class VoiceRecognition<T extends VoiceRecognitionState = VoiceRecognitionState, K extends VoiceRecognitionOptions = VoiceRecognitionOptions> extends Feature<T, K> {
|
|
56
|
+
// @ts-ignore-next-line
|
|
57
|
+
private recognition: SpeechRecognition | null = null;
|
|
58
|
+
|
|
59
|
+
static override stateSchema = VoiceRecognitionStateSchema
|
|
60
|
+
static override optionsSchema = VoiceRecognitionOptionsSchema
|
|
61
|
+
static override eventsSchema = VoiceRecognitionEventsSchema
|
|
62
|
+
static override shortcut = "features.voice" as const
|
|
63
|
+
|
|
64
|
+
static { Feature.register(this as any, 'voice') }
|
|
65
|
+
|
|
66
|
+
constructor(options: K, context: ContainerContext) {
|
|
67
|
+
super(options, context);
|
|
68
|
+
|
|
69
|
+
this.state.set("listening", false);
|
|
70
|
+
this.state.set("transcript", "");
|
|
71
|
+
|
|
72
|
+
if (!('webkitSpeechRecognition' in window)) {
|
|
73
|
+
throw new Error('Voice recognition is not supported in this browser.');
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// @ts-ignore-next-line
|
|
77
|
+
this.recognition = new webkitSpeechRecognition();
|
|
78
|
+
this.recognition.lang = this.options.language || "en-US";
|
|
79
|
+
this.recognition.continuous = this.options.continuous || false;
|
|
80
|
+
this.recognition.interimResults = true;
|
|
81
|
+
|
|
82
|
+
this.recognition.onresult = (event: any) => {
|
|
83
|
+
let interimTranscript = "";
|
|
84
|
+
for (let i = event.resultIndex; i < event.results.length; i++) {
|
|
85
|
+
const transcript = event.results[i][0].transcript;
|
|
86
|
+
if (event.results[i].isFinal) {
|
|
87
|
+
this.state.set("transcript", this.state.get("transcript") + transcript);
|
|
88
|
+
} else {
|
|
89
|
+
interimTranscript += transcript;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
this.emit("result", {
|
|
93
|
+
finalTranscript: this.state.get("transcript"),
|
|
94
|
+
interimTranscript
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
this.recognition.onerror = (event: any) => {
|
|
99
|
+
this.emit("error", event.error);
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
this.recognition.onend = () => {
|
|
103
|
+
this.state.set("listening", false);
|
|
104
|
+
this.emit("end");
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
if (options?.autoListen) {
|
|
108
|
+
this.start()
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/** Whether the speech recognizer is currently listening for audio input. */
|
|
113
|
+
get listening() {
|
|
114
|
+
return !!this.state.get("listening");
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/** Returns the accumulated final transcript text from recognition results. */
|
|
118
|
+
get transcript() {
|
|
119
|
+
return this.state.get("transcript") || '';
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
async whenFinished() {
|
|
123
|
+
if(!this.listening) {
|
|
124
|
+
this.start()
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return await this.waitFor("end").then(() => this.transcript)
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
start() {
|
|
131
|
+
this.state.set('transcript', '')
|
|
132
|
+
|
|
133
|
+
if (!this.listening && this.recognition) {
|
|
134
|
+
this.recognition.start();
|
|
135
|
+
this.state.set("listening", true);
|
|
136
|
+
this.emit("start");
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
stop() {
|
|
141
|
+
if (this.listening && this.recognition) {
|
|
142
|
+
this.recognition.stop();
|
|
143
|
+
this.state.set("listening", false);
|
|
144
|
+
this.emit("stop");
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
abort() {
|
|
149
|
+
if (this.listening && this.recognition) {
|
|
150
|
+
this.recognition.abort();
|
|
151
|
+
this.state.set("listening", false);
|
|
152
|
+
this.emit("abort");
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
clearTranscript() {
|
|
157
|
+
this.state.set("transcript", "");
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export default VoiceRecognition;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
const globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function',
|
|
2
|
+
'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError',
|
|
3
|
+
'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError',
|
|
4
|
+
'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape',
|
|
5
|
+
'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape'];
|
|
6
|
+
|
|
7
|
+
class Context {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function createContext(context?: any): Context {
|
|
12
|
+
var copy = new Context();
|
|
13
|
+
|
|
14
|
+
if (typeof context === 'object') {
|
|
15
|
+
Object.keys(context).forEach(key => copy[key] = context[key]);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return copy;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
function isContext(context: any): context is Context {
|
|
22
|
+
return context instanceof Context;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function runInContext(code: string, context: Context): any {
|
|
26
|
+
const iframe = document.createElement('iframe');
|
|
27
|
+
|
|
28
|
+
if (!iframe.style) {
|
|
29
|
+
(iframe as any).style = {};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
iframe.style.display = 'none';
|
|
33
|
+
|
|
34
|
+
document.body.appendChild(iframe);
|
|
35
|
+
|
|
36
|
+
const iframeWindow: any = iframe.contentWindow;
|
|
37
|
+
let iframeEval = iframeWindow.eval;
|
|
38
|
+
|
|
39
|
+
if (!iframeEval && iframeWindow.execScript) {
|
|
40
|
+
iframeWindow.execScript.call(iframeWindow, 'null');
|
|
41
|
+
iframeEval = iframeWindow.eval;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
Object.keys(context).forEach(key => {
|
|
45
|
+
iframeWindow[key] = context[key];
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
Object.keys(globals).forEach(key => {
|
|
49
|
+
if (context[key]) {
|
|
50
|
+
iframeWindow[key] = context[key];
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const result = iframeEval.call(iframeWindow, code);
|
|
55
|
+
|
|
56
|
+
Object.keys(iframeWindow).forEach(key => {
|
|
57
|
+
if (key in context || Object.keys(iframeWindow).indexOf(key) === -1) {
|
|
58
|
+
context[key] = iframeWindow[key];
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
globals.forEach(key => {
|
|
63
|
+
if (!(key in context)) {
|
|
64
|
+
Object.defineProperty(context, key, {
|
|
65
|
+
writable: true,
|
|
66
|
+
enumerable: false,
|
|
67
|
+
configurable: true,
|
|
68
|
+
value: iframeWindow[key],
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
document.body.removeChild(iframe);
|
|
74
|
+
|
|
75
|
+
return result;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
function runInDebugContext(code: string): any {
|
|
79
|
+
return runInNewContext(code);
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
function runInNewContext(code: string, context?: any): any {
|
|
83
|
+
const contextInstance = createContext(context);
|
|
84
|
+
const result = runInContext(code, contextInstance);
|
|
85
|
+
|
|
86
|
+
if (typeof context === 'object') {
|
|
87
|
+
Object.keys(contextInstance).forEach(key => {
|
|
88
|
+
context[key] = contextInstance[key];
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return result;
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
function runInThisContext(code: string): any {
|
|
96
|
+
return (0, eval)(code);
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
class Script {
|
|
100
|
+
private code: string;
|
|
101
|
+
constructor(code: string) {
|
|
102
|
+
this.code = code;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
runInContext(context: Context) {
|
|
106
|
+
return runInContext(this.code, context);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
runInNewContext(context?: any) {
|
|
110
|
+
return runInNewContext(this.code, context);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
runInThisContext() {
|
|
114
|
+
return runInThisContext(this.code);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export interface VMContext {
|
|
119
|
+
[name: string]: any;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export interface VMScript {
|
|
123
|
+
new (code: string) : VMScript;
|
|
124
|
+
runInContext(context: VMContext) : any;
|
|
125
|
+
runInNewContext(context?: any) : any;
|
|
126
|
+
runInThisContext() : any;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export interface VM {
|
|
130
|
+
Script: VMScript;
|
|
131
|
+
createContext(context?: any): VMContext;
|
|
132
|
+
isContext(context: any): context is VMContext;
|
|
133
|
+
runInContext(code: string, context: VMContext): any;
|
|
134
|
+
runInDebugContext(code: string): any;
|
|
135
|
+
runInNewContext(code: string, context?: any): any;
|
|
136
|
+
runInThisContext(code: string): any;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export const shim: VM = <any>{
|
|
140
|
+
Script,
|
|
141
|
+
createContext,
|
|
142
|
+
isContext,
|
|
143
|
+
runInContext,
|
|
144
|
+
runInDebugContext,
|
|
145
|
+
runInNewContext,
|
|
146
|
+
runInThisContext,
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
export default shim as VM
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
// Environment setup & latest features
|
|
4
|
+
"lib": ["ESNext", "dom", "dom.iterable"],
|
|
5
|
+
"target": "ESNext",
|
|
6
|
+
"module": "Preserve",
|
|
7
|
+
"moduleDetection": "force",
|
|
8
|
+
"jsx": "react-jsx",
|
|
9
|
+
"allowJs": true,
|
|
10
|
+
|
|
11
|
+
// Bundler mode
|
|
12
|
+
"moduleResolution": "bundler",
|
|
13
|
+
"allowImportingTsExtensions": true,
|
|
14
|
+
"verbatimModuleSyntax": true,
|
|
15
|
+
"noEmit": true,
|
|
16
|
+
|
|
17
|
+
// Path mapping for absolute imports
|
|
18
|
+
"baseUrl": ".",
|
|
19
|
+
"paths": {
|
|
20
|
+
"@/experts/*": ["identities/*"],
|
|
21
|
+
"@/*": ["src/*"],
|
|
22
|
+
"@/web/*": ["src/web/*"],
|
|
23
|
+
"@/node/*": ["src/node/*"],
|
|
24
|
+
"luca": ["src/node.ts"],
|
|
25
|
+
"luca/node": ["src/node.ts"],
|
|
26
|
+
"luca/node/*": ["src/node/*"],
|
|
27
|
+
"luca/agi": ["src/agi/index.ts"],
|
|
28
|
+
"luca/agi/*": ["src/agi/*"],
|
|
29
|
+
"luca/web": ["src/browser.ts"],
|
|
30
|
+
"luca/web/*": ["src/web/*"],
|
|
31
|
+
"luca/schemas": ["src/schemas/base.ts"],
|
|
32
|
+
"luca/schemas/*": ["src/schemas/*"],
|
|
33
|
+
"luca/container": ["src/container.ts"],
|
|
34
|
+
"luca/client": ["src/client.ts"],
|
|
35
|
+
"luca/feature": ["src/feature.ts"]
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
// Best practices
|
|
39
|
+
"strict": true,
|
|
40
|
+
"skipLibCheck": true,
|
|
41
|
+
"noFallthroughCasesInSwitch": true,
|
|
42
|
+
"noUncheckedIndexedAccess": true,
|
|
43
|
+
"noImplicitOverride": true,
|
|
44
|
+
|
|
45
|
+
// Some stricter flags (disabled by default)
|
|
46
|
+
"noUnusedLocals": false,
|
|
47
|
+
"noUnusedParameters": false,
|
|
48
|
+
"noPropertyAccessFromIndexSignature": false
|
|
49
|
+
},
|
|
50
|
+
"include": ["*.ts", "src/**/*.ts", "src/**/*.tsx", "index.ts", "scripts/**/*.ts", "assistants/**/*.ts"],
|
|
51
|
+
"exclude": [
|
|
52
|
+
"playground/**",
|
|
53
|
+
"docs/**",
|
|
54
|
+
"output/**",
|
|
55
|
+
"dist/**",
|
|
56
|
+
"../contentbase/**"
|
|
57
|
+
]
|
|
58
|
+
}
|
package/uv.lock
ADDED
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2022 Emil Zaripov
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
package/dist/cli/cli.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.start = void 0;
|
|
16
|
-
const yargs_1 = __importDefault(require("yargs"));
|
|
17
|
-
const helpers_1 = require("yargs/helpers");
|
|
18
|
-
const utils_1 = require("../utils");
|
|
19
|
-
const common_1 = require("./common");
|
|
20
|
-
const run_1 = require("./run");
|
|
21
|
-
/**
|
|
22
|
-
* @docs https://yargs.js.org/docs
|
|
23
|
-
*/
|
|
24
|
-
const start = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
25
|
-
return (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
|
|
26
|
-
.usage("Luca's manual")
|
|
27
|
-
// run command
|
|
28
|
-
.command({
|
|
29
|
-
command: 'run',
|
|
30
|
-
describe: 'Run mass requests (see examples)',
|
|
31
|
-
handler: (args) => {
|
|
32
|
-
const { dict, url } = args;
|
|
33
|
-
(0, utils_1.showErrorIf)(!(0, utils_1.isString)(dict), '--dict is required', 'example: --dict=1_char');
|
|
34
|
-
(0, utils_1.showErrorIf)(!(0, utils_1.isString)(url), `--url is required', 'example: ${(0, common_1.getUrlMaskExample)()}`);
|
|
35
|
-
(0, run_1.run)(dict, url);
|
|
36
|
-
},
|
|
37
|
-
})
|
|
38
|
-
.example(`luca run ${(0, common_1.getUrlMaskExample)()} --dict=1_char`, `for built-in dictionaries (${utils_1.DICT_NAMES.join('|')})`)
|
|
39
|
-
.example(`luca run ${(0, common_1.getUrlMaskExample)()} --dict=./my-dict.txt`, 'for your txt dict path')
|
|
40
|
-
.command({
|
|
41
|
-
command: '*',
|
|
42
|
-
handler: () => void yargs_1.default.showHelp(),
|
|
43
|
-
})
|
|
44
|
-
.demandCommand()
|
|
45
|
-
.alias('h', 'help')
|
|
46
|
-
.alias('v', 'version').argv;
|
|
47
|
-
});
|
|
48
|
-
exports.start = start;
|
package/dist/cli/common.d.ts
DELETED
package/dist/cli/common.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getUrlMaskExample = exports.WORD_PATTERN = void 0;
|
|
4
|
-
exports.WORD_PATTERN = '{0}';
|
|
5
|
-
const getUrlMaskExample = (baseUrl = 'https://github.com') => `--url='${baseUrl}/${exports.WORD_PATTERN}'`;
|
|
6
|
-
exports.getUrlMaskExample = getUrlMaskExample;
|
package/dist/cli/index.d.ts
DELETED
package/dist/cli/index.js
DELETED
package/dist/cli/run.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const run: (dict: string, urlMask: string) => void;
|
package/dist/cli/run.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.run = void 0;
|
|
7
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
-
const path_1 = require("path");
|
|
9
|
-
const core_1 = require("../core");
|
|
10
|
-
const write_1 = require("../core/write");
|
|
11
|
-
const utils_1 = require("../utils");
|
|
12
|
-
const common_1 = require("./common");
|
|
13
|
-
// [x] Github username
|
|
14
|
-
// [x] Npm package
|
|
15
|
-
// [ ] Telegram username/botname
|
|
16
|
-
// [ ] Whois small size domains
|
|
17
|
-
const formatUrl = (urlMask) => {
|
|
18
|
-
if (!['http', 'https'].includes(urlMask)) {
|
|
19
|
-
return `https://${urlMask}`;
|
|
20
|
-
}
|
|
21
|
-
return urlMask;
|
|
22
|
-
};
|
|
23
|
-
const getUrlByMask = (urlMask) => (word) => {
|
|
24
|
-
const formatted = formatUrl(urlMask);
|
|
25
|
-
if (formatted.includes(common_1.WORD_PATTERN)) {
|
|
26
|
-
return formatted.replace(common_1.WORD_PATTERN, word);
|
|
27
|
-
}
|
|
28
|
-
return `${formatted}/${word}`;
|
|
29
|
-
};
|
|
30
|
-
const run = (dict, urlMask) => {
|
|
31
|
-
const isBuiltInDict = utils_1.DICT_NAMES.includes(dict);
|
|
32
|
-
const dictPath = isBuiltInDict ? (0, utils_1.getDict)(dict) : (0, path_1.resolve)(dict);
|
|
33
|
-
(0, core_1.luca)(dictPath, getUrlByMask(urlMask)).subscribe({
|
|
34
|
-
next: ({ res }) => (0, utils_1.log)(`${(0, utils_1.ifSuccessResponse)(res.status, chalk_1.default.green, chalk_1.default.red)} ${res.config.url}`)(),
|
|
35
|
-
complete: (0, utils_1.log)(`\n${chalk_1.default.green('Luca finished')} ${(0, path_1.resolve)(write_1.LUCA_LOG_PATH)}`),
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
|
-
exports.run = run;
|
package/dist/core/index.d.ts
DELETED
package/dist/core/index.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.luca = void 0;
|
|
16
|
-
const axios_1 = __importDefault(require("axios"));
|
|
17
|
-
const rxjs_1 = require("rxjs");
|
|
18
|
-
const read_1 = require("./read");
|
|
19
|
-
const write_1 = require("./write");
|
|
20
|
-
const luca = (dict, getUrl) => (0, read_1.parse)(dict).pipe((0, rxjs_1.concatMap)((arr) => arr.map((item) => (0, rxjs_1.of)(getUrl(item)).pipe((0, rxjs_1.delay)(500), (0, rxjs_1.map)((url) => axios_1.default.get(url)), (0, rxjs_1.mergeMap)((res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
|
-
try {
|
|
22
|
-
return yield res;
|
|
23
|
-
}
|
|
24
|
-
catch (error) {
|
|
25
|
-
return error.response;
|
|
26
|
-
}
|
|
27
|
-
})), (0, rxjs_1.map)((res) => {
|
|
28
|
-
return {
|
|
29
|
-
res: res,
|
|
30
|
-
};
|
|
31
|
-
}), (0, rxjs_1.tap)(({ res }) => (0, write_1.writeLog)(res.config.url, res.status))))), (0, rxjs_1.concatAll)());
|
|
32
|
-
exports.luca = luca;
|
package/dist/core/read.d.ts
DELETED