From 17eea0e05fdaa3f336dfe0af5d1298b21014a535 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Burak=20Emre=20Kabakc=C4=B1?= Date: Sat, 2 May 2026 00:46:17 +0100 Subject: [PATCH 1/3] chore: rename packages --- .claude/commands/triage-pr.md | 4 +- .github/actions/setup-submodule/action.yml | 10 +- .github/triage-config.yml | 2 +- .github/workflows/build-images.yml | 8 +- .github/workflows/ci.yml | 52 +-- .github/workflows/pr-validation.yml | 12 +- .github/workflows/submodule-drift.yml | 26 +- .gitignore | 10 +- .gitmodules | 4 +- AGENTS.md | 18 +- CLAUDE.md | 4 +- Makefile | 22 +- README.md | 2 +- bun.lock | 390 ++++++++++-------- config/biome.config.json | 16 +- config/knip.ts | 12 +- .../20260417100000_add_entity_identities.sql | 2 +- ...260420120000_extend_reserved_org_slugs.sql | 2 +- .../20260427160000_drop_dead_schema.sql | 6 +- db/schema.sql | 2 +- docker/app/Dockerfile | 71 ++-- docker/app/start.sh | 2 +- docker/embeddings-service/Dockerfile | 25 +- docker/worker/Dockerfile | 43 +- docs/RELEASING.md | 4 +- docs/plans/lobu-apply.md | 4 +- docs/plans/lobu-pull.md | 6 +- docs/plans/lobu-secrets-push.md | 12 +- docs/plans/mcp-multi-org-and-execute.md | 8 +- docs/plans/owletto-absorption.md | 12 +- docs/plans/owletto-cli-merge.md | 8 +- docs/plans/world-model.md | 2 +- package.json | 22 +- .../{worker => agent-worker}/package.json | 2 +- .../audio-provider-suggestions.test.ts | 0 .../src/__tests__/custom-tools.test.ts | 0 .../embedded-just-bash-bootstrap.test.ts | 0 .../__tests__/embedded-mcp-cli-bash.test.ts | 0 .../src/__tests__/embedded-tools.test.ts | 0 .../src/__tests__/exec-sandbox.test.ts | 0 .../src/__tests__/generated-media.test.ts | 0 .../src/__tests__/instructions.test.ts | 0 .../src/__tests__/mcp-cli-commands.test.ts | 0 .../__tests__/memory-flush-runtime.test.ts | 0 .../src/__tests__/memory-flush.test.ts | 0 .../src/__tests__/model-resolver.test.ts | 0 .../src/__tests__/processor.test.ts | 0 .../replace-base-prompt-identity.test.ts | 0 .../src/__tests__/sandbox-leak.test.ts | 0 .../src/__tests__/setup.ts | 0 .../src/__tests__/sse-client.test.ts | 0 .../__tests__/tool-implementations.test.ts | 0 .../src/__tests__/tool-policy.test.ts | 0 .../src/__tests__/worker.test.ts | 0 .../src/core/error-handler.ts | 0 .../src/core/project-scanner.ts | 0 .../src/core/types.ts | 0 .../src/core/workspace.ts | 0 .../src/embedded/exec-sandbox.ts | 0 .../src/embedded/just-bash-bootstrap.ts | 0 .../src/embedded/mcp-cli-commands.ts | 0 .../src/gateway/gateway-integration.ts | 0 .../src/gateway/message-batcher.ts | 0 .../src/gateway/sse-client.ts | 0 .../src/gateway/types.ts | 0 .../{worker => agent-worker}/src/index.ts | 0 .../src/instructions/builder.ts | 0 .../src/instructions/providers.ts | 0 .../src/modules/lifecycle.ts | 0 .../src/openclaw/custom-tools.ts | 0 .../src/openclaw/instructions.ts | 0 .../src/openclaw/model-resolver.ts | 0 .../src/openclaw/plugin-loader.ts | 0 .../src/openclaw/processor.ts | 0 .../src/openclaw/sandbox-leak.ts | 0 .../src/openclaw/session-context.ts | 0 .../src/openclaw/tool-policy.ts | 0 .../src/openclaw/tools.ts | 0 .../src/openclaw/worker.ts | 0 .../{worker => agent-worker}/src/server.ts | 0 .../src/shared/audio-provider-suggestions.ts | 0 .../src/shared/processor-utils.ts | 0 .../src/shared/provider-auth-hints.ts | 0 .../src/shared/tool-display-config.ts | 0 .../src/shared/tool-implementations.ts | 0 .../src/shared/worker-env-keys.ts | 0 .../{worker => agent-worker}/tsconfig.json | 0 .../manifest.json | 0 .../package.json | 2 +- .../src/assets/icons/icon-128-mono.png | Bin .../src/assets/icons/icon-128.png | Bin .../src/assets/icons/icon-16-mono.png | Bin .../src/assets/icons/icon-16.png | Bin .../src/assets/icons/icon-48-mono.png | Bin .../src/assets/icons/icon-48.png | Bin .../src/background/api-client.ts | 0 .../src/background/auth.ts | 0 .../src/background/service-worker.ts | 0 .../src/background/state-manager.ts | 0 .../src/callback/callback.html | 0 .../src/callback/callback.ts | 0 .../src/content/dom-interpreter.ts | 0 .../src/content/index.ts | 0 .../src/offscreen/document.html | 0 .../src/offscreen/worker.ts | 0 .../src/popup/Popup.tsx | 0 .../src/popup/index.html | 0 .../src/popup/main.tsx | 0 .../src/popup/popup.css | 0 .../src/sidebar/App.tsx | 0 .../src/sidebar/app.css | 0 .../src/sidebar/index.html | 0 .../src/sidebar/main.tsx | 0 .../tsconfig.json | 0 .../vite.config.ts | 0 packages/cli/README.md | 2 +- packages/cli/package.json | 2 +- packages/cli/scripts/build.cjs | 12 +- .../src/commands/_lib/apply/desired-state.ts | 4 +- packages/cli/src/commands/dev.ts | 13 +- .../commands/memory/_lib/browser-auth-cmd.ts | 2 +- .../commands/memory/_lib/install-targets.ts | 6 +- .../cli/src/commands/memory/_lib/schema.ts | 4 +- packages/cli/src/internal/oauth.ts | 2 +- packages/connector-sdk/package.json | 59 +++ .../src/api-paginated.ts | 0 .../src/base.ts | 0 .../src/browser-network.ts | 0 .../src/browser-paginated.ts | 0 .../src/browser/acquire.ts | 0 .../src/browser/cdp-page.ts | 0 .../src/browser/cdp.ts | 0 .../src/browser/launcher.ts | 0 .../src/browser/stealth.ts | 0 .../src/connector-runtime.ts | 0 .../src/connector-types.ts | 0 .../src/event-taxonomy.ts | 0 .../src/http.ts | 0 .../src/identity-normalize.ts | 0 .../src/identity-types.ts | 0 .../src/index.ts | 0 .../src/logger.ts | 2 +- .../src/paginated.ts | 0 .../src/reaction-sdk.ts | 2 +- .../src/retry.ts | 0 .../src/scoring.ts | 0 .../src/types.ts | 0 .../src/watcher-time.ts | 0 .../tsconfig.json | 0 .../.dev.vars | 0 .../README.md | 6 +- .../subprocess-source-mode.test.ts | 0 .../integration-tests/subprocess.test.ts | 2 +- packages/connector-worker/package.json | 70 ++++ .../src/__tests__/redact.test.ts | 0 .../src/bin.ts | 4 +- .../src/daemon/client.ts | 0 .../src/daemon/executor.ts | 2 +- .../src/daemon/index.ts | 0 .../src/daemon/worker.ts | 0 .../src/embeddings.ts | 0 .../src/executor/child-runner.ts | 6 +- .../src/executor/interface.ts | 2 +- .../src/executor/redact.ts | 0 .../src/executor/runtime.ts | 2 +- .../src/executor/subprocess.ts | 0 .../src/index.ts | 2 +- .../src/runtime-deps.ts | 12 +- packages/connector-worker/src/types.ts | 1 + .../tsconfig.json | 0 packages/connectors/package.json | 31 ++ .../src/README.md | 6 +- .../src/browser-scraper-utils.ts | 2 +- .../src/capterra.ts | 2 +- .../src/g2.ts | 2 +- .../src/github.ts | 2 +- .../src/glassdoor.ts | 2 +- .../src/gmaps.ts | 2 +- .../src/google_calendar.ts | 2 +- .../src/google_gmail.ts | 2 +- .../src/google_photos.ts | 4 +- .../src/google_play.ts | 2 +- .../src/hackernews.ts | 2 +- packages/connectors/src/index.ts | 23 ++ .../src/ios_appstore.ts | 2 +- .../src/linkedin.ts | 2 +- .../src/microsoft_outlook.ts | 2 +- .../src/producthunt.ts | 2 +- .../src/reddit.ts | 2 +- .../src/rss.ts | 2 +- .../src/spotify.ts | 2 +- .../src/trustpilot.ts | 2 +- .../src/website.ts | 2 +- .../src/whatsapp.ts | 2 +- .../src/x.ts | 2 +- .../src/youtube.ts | 2 +- .../tsconfig.json | 0 packages/embeddings/package.json | 53 +++ .../src/embedding-utils.ts | 0 .../src/embeddings.ts | 0 packages/embeddings/src/index.ts | 3 + .../src/openai.ts | 0 .../src/server.ts | 0 .../tsconfig.json | 2 +- .../landing/scripts/gen-platform-configs.ts | 2 +- packages/landing/src/connect-from-config.ts | 10 +- .../filesystem-vs-database-agent-memory.mdx | 2 +- .../src/content/docs/guides/agent-settings.md | 6 +- .../src/content/docs/guides/architecture.mdx | 4 +- .../content/docs/guides/troubleshooting.md | 4 +- .../landing/src/content/docs/reference/cli.md | 2 +- .../src/content/docs/reference/lobu-memory.md | 4 +- .../README.md | 4 +- packages/openclaw-plugin/openclaw.plugin.json | 55 +++ packages/openclaw-plugin/package.json | 45 ++ .../src/index.ts | 2 +- .../src/owletto-guidance.ts | 0 .../src/types.ts | 0 .../test/e2e/device-auth.test.ts | 0 .../test/e2e/helpers.ts | 4 +- .../test/e2e/mcp-tools.test.ts | 0 .../test/e2e/memory-loop.test.ts | 16 +- .../test/e2e/vitest.config.ts | 0 .../tsconfig.json | 0 packages/owletto-connectors/package.json | 29 +- packages/owletto-embeddings/package.json | 38 +- .../owletto-openclaw/openclaw.plugin.json | 2 +- packages/owletto-openclaw/package.json | 48 +-- packages/owletto-sdk/package.json | 61 +-- packages/owletto-web | 1 - packages/owletto-worker/package.json | 76 +--- packages/owletto-worker/src/types.ts | 1 - .../{owletto-backend => server}/package.json | 6 +- .../scripts/build-server-bundle.mjs | 0 .../classifiers/classifiers-crud.test.ts | 0 .../classifiers/classifiers-isolation.test.ts | 0 .../connectors/entity-links-contract.test.ts | 0 .../integration/cross-org/isolation.test.ts | 0 .../integration/entities/entity-crud.test.ts | 0 .../entities/entity-history-contract.test.ts | 0 .../entities/member-privacy-contract.test.ts | 0 .../entity-schema/entity-types.test.ts | 0 .../content-distribution-contract.test.ts | 0 .../events/delete-content-tombstone.test.ts | 0 .../events/get-content-visibility.test.ts | 0 .../events/scheduling-contract.test.ts | 0 .../search-content-embedding-only.test.ts | 0 .../events/search-content-org-scope.test.ts | 0 .../integration/identity/engine.test.ts | 2 +- .../founder-to-member-migration.test.ts | 0 .../integration/mcp/auth-wire.test.ts | 0 .../__tests__/integration/mcp/auth.test.ts | 0 .../mcp/member-write-access.test.ts | 0 .../integration/mcp/query-tool.test.ts | 0 .../integration/oauth/discovery.test.ts | 0 .../pages/public-pages-contract.test.ts | 0 .../pages/resolve-path-contract.test.ts | 0 .../relationships-contract.test.ts | 0 .../sandbox/client-sdk-org.test.ts | 0 .../integration/sandbox/execute-wire.test.ts | 0 .../sandbox/namespace-dispatch.test.ts | 0 .../sandbox/run-script-runtime.test.ts | 0 .../watchers/automation-contract.test.ts | 2 +- .../watchers/feedback-contract.test.ts | 0 .../integration/watchers/group-edit.test.ts | 0 .../watchers/watchers-crud.test.ts | 0 .../src/__tests__/setup/global-setup.ts | 0 .../src/__tests__/setup/pglite-backend.ts | 0 .../src/__tests__/setup/test-db.ts | 0 .../src/__tests__/setup/test-fixtures.ts | 0 .../src/__tests__/setup/test-helpers.ts | 0 .../src/__tests__/setup/test-mcp-client.ts | 0 .../src/__tests__/setup/test-workspace.ts | 0 .../unit/benchmarks/memory-benchmark.test.ts | 0 .../unit/bootstrap-pat-file-mode.test.ts | 0 .../unit/build-org-scope-where.test.ts | 0 .../unit/connectors/linkedin.test.ts | 2 +- .../unit/connectors/repair-agent.test.ts | 0 .../unit/connectors/whatsapp.test.ts | 2 +- .../src/__tests__/unit/csp.test.ts | 0 .../unit/delete-content-access.test.ts | 0 .../get-content-include-superseded.test.ts | 0 .../unit/google-identity-connector.test.ts | 0 .../unit/http/spa-route-filter.test.ts | 0 .../src/__tests__/unit/lobu/gateway.test.ts | 0 .../__tests__/unit/oauth-scope-filter.test.ts | 0 .../unit/resolve-path-redaction.test.ts | 0 .../src/__tests__/unit/sandbox/_helpers.ts | 0 .../src/__tests__/unit/sandbox/abort.test.ts | 0 .../unit/sandbox/cross-org-gate.test.ts | 0 .../unit/sandbox/method-metadata.test.ts | 0 .../__tests__/unit/sandbox/read-only.test.ts | 0 .../__tests__/unit/sandbox/sdk-search.test.ts | 0 .../unit/sandbox/typebox-to-signature.test.ts | 0 .../unit/save-content-access.test.ts | 0 .../unit/subdomain-reserved-parity.test.ts | 8 +- .../src/agents/LICENSE | 0 .../src/auth/__tests__/config.test.ts | 0 .../personal-org-provisioning.test.ts | 0 .../src/auth/__tests__/token-routes.test.ts | 0 .../src/auth/__tests__/tool-access.test.ts | 6 +- .../src/auth/base-url.ts | 0 .../src/auth/config.ts | 0 .../src/auth/credentials.ts | 0 .../src/auth/index.tsx | 0 .../src/auth/middleware.ts | 0 .../src/auth/oauth/clients.ts | 0 .../src/auth/oauth/provider.ts | 0 .../src/auth/oauth/routes.ts | 2 +- .../src/auth/oauth/scopes.ts | 0 .../src/auth/oauth/types.ts | 0 .../src/auth/oauth/utils.ts | 0 .../src/auth/personal-org-provisioning.ts | 0 .../src/auth/routes.ts | 0 .../src/auth/social-login-provisioning.ts | 0 .../src/auth/subject-identities.ts | 0 .../src/auth/tokens.ts | 0 .../src/auth/tool-access.ts | 0 .../src/benchmarks/memory/adapters/command.ts | 0 .../memory/adapters/owletto-inprocess.ts | 0 .../benchmarks/memory/adapters/owletto-mcp.ts | 0 .../src/benchmarks/memory/answerer.ts | 0 .../src/benchmarks/memory/config.ts | 0 .../src/benchmarks/memory/mcp-client.ts | 0 .../memory/public-datasets/locomo.ts | 0 .../memory/public-datasets/longmemeval.ts | 0 .../src/benchmarks/memory/publish.ts | 0 .../src/benchmarks/memory/runner.ts | 0 .../src/benchmarks/memory/scoring.ts | 0 .../src/benchmarks/memory/suite.ts | 0 .../src/benchmarks/memory/types.ts | 0 .../src/connect/oauth-providers.ts | 0 .../src/connect/routes.ts | 0 .../src/connectors/repair-agent-packet.ts | 0 .../src/connectors/repair-agent.ts | 0 .../src/db/__tests__/client.test.ts | 0 .../src/db/client.ts | 2 +- .../src/db/migration-loader.ts | 0 .../src/email/send.ts | 2 +- .../src/email/templates/BrandedEmail.tsx | 0 .../src/email/templates/invitation.tsx | 0 .../src/email/templates/magic-link.tsx | 0 .../src/email/templates/password-reset.tsx | 0 .../src/events/emitter.ts | 0 .../__tests__/agent-config-routes.test.ts | 0 .../__tests__/agent-history-routes.test.ts | 0 .../gateway/__tests__/agent-ownership.test.ts | 0 .../gateway/__tests__/agent-routes.test.ts | 0 .../__tests__/agent-settings-store.test.ts | 0 .../__tests__/base-deployment-grants.test.ts | 0 .../__tests__/bedrock-model-catalog.test.ts | 0 .../__tests__/bedrock-openai-service.test.ts | 0 .../__tests__/bedrock-provider-module.test.ts | 0 .../__tests__/chat-history-store.test.ts | 0 .../chat-instance-manager-slack.test.ts | 0 .../__tests__/chat-response-bridge.test.ts | 0 .../__tests__/config-memory-plugins.test.ts | 2 +- .../__tests__/connection-routes.test.ts | 0 .../core-services-store-selection.test.ts | 0 .../__tests__/declared-agent-registry.test.ts | 0 .../src/gateway/__tests__/device-auth.test.ts | 0 .../__tests__/egress-judge-cache.test.ts | 0 .../egress-judge-circuit-breaker.test.ts | 0 .../__tests__/egress-judge-composer.test.ts | 0 .../gateway/__tests__/egress-judge.test.ts | 0 .../__tests__/embedded-deployment.test.ts | 6 +- .../__tests__/file-loader-egress.test.ts | 0 .../__tests__/file-loader-memory.test.ts | 0 .../__tests__/file-loader-platforms.test.ts | 0 .../__tests__/file-loader-providers.test.ts | 0 .../__tests__/file-loader-tools.test.ts | 0 .../src/gateway/__tests__/file-routes.test.ts | 0 .../fixtures/in-memory-state-adapter.ts | 0 .../__tests__/fixtures/slack-signing.ts | 0 .../src/gateway/__tests__/grant-store.test.ts | 0 .../src/gateway/__tests__/helpers/db-setup.ts | 0 .../__tests__/http-proxy-judge.test.ts | 0 .../src/gateway/__tests__/http-proxy.test.ts | 0 .../__tests__/instruction-service.test.ts | 0 ...interaction-bridge-action-handlers.test.ts | 0 .../interaction-bridge-slack-webhook.test.ts | 0 .../gateway/__tests__/link-buttons.test.ts | 0 .../__tests__/mcp-config-service.test.ts | 0 .../src/gateway/__tests__/mcp-proxy.test.ts | 0 .../__tests__/message-handler-bridge.test.ts | 0 .../gateway/__tests__/model-selection.test.ts | 0 .../__tests__/oauth-state-store.test.ts | 0 .../gateway/__tests__/oauth-templates.test.ts | 0 .../platform-adapter-slack-send.test.ts | 0 .../__tests__/platform-file-handler.test.ts | 0 .../platform-helpers-model-resolution.test.ts | 12 +- .../gateway/__tests__/policy-store.test.ts | 0 .../provider-config-resolver.test.ts | 0 .../__tests__/provider-inheritance.test.ts | 0 .../provider-registry-service.test.ts | 0 .../__tests__/routes/interactions.test.ts | 0 .../__tests__/routes/mcp-oauth.test.ts | 0 .../gateway/__tests__/routes/media.test.ts | 0 .../__tests__/runs-queue-integration.test.ts | 0 .../gateway/__tests__/secret-proxy.test.ts | 0 .../gateway/__tests__/secret-store.test.ts | 0 .../gateway/__tests__/session-manager.test.ts | 0 .../src/gateway/__tests__/setup.ts | 0 .../__tests__/skill-and-mcp-registry.test.ts | 0 .../slack-connection-coordinator.test.ts | 0 .../__tests__/slack-platform-bridge.test.ts | 0 .../gateway/__tests__/slack-routes.test.ts | 0 .../src/gateway/__tests__/sse-manager.test.ts | 0 .../__tests__/transcription-service.test.ts | 0 .../__tests__/unified-thread-consumer.test.ts | 0 .../__tests__/user-auth-profile-store.test.ts | 0 .../__tests__/utils/rate-limiter.test.ts | 0 .../worker-connection-manager.test.ts | 0 .../worker-gateway-session-context.test.ts | 0 .../__tests__/worker-job-router.test.ts | 0 .../src/gateway/api/index.ts | 0 .../src/gateway/api/platform.ts | 0 .../src/gateway/api/response-renderer.ts | 0 .../src/gateway/auth/agent-metadata-store.ts | 0 .../src/gateway/auth/api-auth-middleware.ts | 0 .../gateway/auth/api-key-provider-module.ts | 0 .../src/gateway/auth/base-provider-module.ts | 0 .../gateway/auth/bedrock/provider-module.ts | 0 .../auth/chatgpt/chatgpt-oauth-module.ts | 0 .../auth/chatgpt/device-code-client.ts | 0 .../src/gateway/auth/chatgpt/index.ts | 0 .../src/gateway/auth/claude/oauth-module.ts | 0 .../gateway/auth/cli-backend-only-module.ts | 0 .../src/gateway/auth/external/client.ts | 0 .../auth/external/device-code-client.ts | 0 .../src/gateway/auth/gemini/cli-module.ts | 0 .../src/gateway/auth/gemini/index.ts | 0 .../src/gateway/auth/mcp/config-service.ts | 0 .../src/gateway/auth/mcp/oauth-discovery.ts | 0 .../src/gateway/auth/mcp/oauth-flow.ts | 0 .../gateway/auth/mcp/pending-tool-store.ts | 0 .../src/gateway/auth/mcp/proxy.ts | 0 .../gateway/auth/mcp/resume-after-oauth.ts | 0 .../gateway/auth/mcp/string-substitution.ts | 0 .../src/gateway/auth/mcp/tool-cache.ts | 0 .../src/gateway/auth/oauth-templates.ts | 0 .../src/gateway/auth/oauth/base-client.ts | 0 .../src/gateway/auth/oauth/client.ts | 0 .../src/gateway/auth/oauth/credentials.ts | 0 .../src/gateway/auth/oauth/providers.ts | 0 .../src/gateway/auth/oauth/state-store.ts | 0 .../src/gateway/auth/provider-catalog.ts | 0 .../gateway/auth/provider-model-options.ts | 0 .../auth/settings/agent-settings-store.ts | 0 .../auth/settings/auth-profiles-manager.ts | 0 .../src/gateway/auth/settings/index.ts | 0 .../auth/settings/model-preference-store.ts | 0 .../gateway/auth/settings/model-selection.ts | 0 .../auth/settings/resolved-settings-view.ts | 0 .../gateway/auth/settings/template-utils.ts | 0 .../gateway/auth/settings/token-service.ts | 0 .../auth/settings/user-auth-profile-store.ts | 0 .../src/gateway/auth/system-env-store.ts | 0 .../src/gateway/auth/user-agents-store.ts | 0 .../src/gateway/channels/binding-service.ts | 0 .../src/gateway/channels/index.ts | 0 .../src/gateway/cli/gateway.ts | 0 .../src/gateway/cli/index.ts | 0 .../src/gateway/commands/built-in-commands.ts | 0 .../gateway/commands/command-dispatcher.ts | 0 .../commands/command-reply-adapters.ts | 0 .../src/gateway/config/file-loader.ts | 0 .../src/gateway/config/index.ts | 14 +- .../src/gateway/config/network-allowlist.ts | 0 .../connections/chat-connection-store.ts | 0 .../connections/chat-instance-manager.ts | 0 .../connections/chat-response-bridge.ts | 0 .../connections/conversation-state-store.ts | 0 .../src/gateway/connections/index.ts | 0 .../gateway/connections/interaction-bridge.ts | 0 .../connections/message-handler-bridge.ts | 0 .../connections/platform-auth-methods.ts | 0 .../async-push-iterator.ts | 0 .../connections/platform-strategies/index.ts | 0 .../slack-connection-coordinator.ts | 0 .../connections/slack-instruction-provider.ts | 0 .../connections/slack-platform-bridge.ts | 0 .../src/gateway/connections/state-adapter.ts | 0 .../src/gateway/connections/types.ts | 0 .../src/gateway/embedded.ts | 0 .../src/gateway/files/artifact-store.ts | 0 .../src/gateway/gateway-main.ts | 0 .../src/gateway/gateway/connection-manager.ts | 0 .../src/gateway/gateway/index.ts | 0 .../src/gateway/gateway/job-router.ts | 0 .../src/gateway/index.ts | 2 +- .../queue/__tests__/runs-queue.test.ts | 0 .../src/gateway/infrastructure/queue/index.ts | 0 .../infrastructure/queue/queue-producer.ts | 0 .../infrastructure/queue/runs-queue.ts | 0 .../src/gateway/infrastructure/queue/types.ts | 0 .../src/gateway/interactions.ts | 0 .../src/gateway/metrics/prometheus.ts | 0 .../src/gateway/modules/module-system.ts | 0 .../orchestration/base-deployment-manager.ts | 0 .../gateway/orchestration/deployment-utils.ts | 0 .../orchestration/impl/embedded-deployment.ts | 2 +- .../src/gateway/orchestration/impl/index.ts | 0 .../src/gateway/orchestration/index.ts | 0 .../gateway/orchestration/message-consumer.ts | 2 +- .../gateway/permissions/approval-policy.ts | 0 .../src/gateway/permissions/grant-store.ts | 0 .../src/gateway/permissions/policy-store.ts | 0 .../src/gateway/platform.ts | 0 .../src/gateway/platform/file-handler.ts | 0 .../src/gateway/platform/link-buttons.ts | 0 .../src/gateway/platform/response-renderer.ts | 0 .../platform/unified-thread-consumer.ts | 0 .../proxy/egress-judge/anthropic-client.ts | 0 .../src/gateway/proxy/egress-judge/cache.ts | 0 .../proxy/egress-judge/circuit-breaker.ts | 0 .../src/gateway/proxy/egress-judge/index.ts | 0 .../src/gateway/proxy/egress-judge/judge.ts | 0 .../proxy/egress-judge/policy-composer.ts | 0 .../src/gateway/proxy/egress-judge/types.ts | 0 .../src/gateway/proxy/http-proxy.ts | 0 .../src/gateway/proxy/proxy-manager.ts | 0 .../src/gateway/proxy/secret-proxy.ts | 0 .../src/gateway/proxy/token-refresh-job.ts | 0 .../src/gateway/routes/internal/audio.ts | 0 .../gateway/routes/internal/device-auth.ts | 0 .../src/gateway/routes/internal/files.ts | 0 .../src/gateway/routes/internal/history.ts | 0 .../src/gateway/routes/internal/images.ts | 0 .../gateway/routes/internal/interactions.ts | 0 .../src/gateway/routes/internal/middleware.ts | 0 .../src/gateway/routes/internal/types.ts | 0 .../src/gateway/routes/openapi-auto.ts | 0 .../src/gateway/routes/public/agent-config.ts | 0 .../gateway/routes/public/agent-history.ts | 0 .../src/gateway/routes/public/agent.ts | 0 .../src/gateway/routes/public/agents.ts | 0 .../src/gateway/routes/public/channels.ts | 0 .../src/gateway/routes/public/connect-auth.ts | 0 .../src/gateway/routes/public/connections.ts | 0 .../src/gateway/routes/public/files.ts | 0 .../src/gateway/routes/public/landing.ts | 0 .../src/gateway/routes/public/mcp-oauth.ts | 0 .../src/gateway/routes/public/oauth.ts | 0 .../gateway/routes/public/settings-auth.ts | 0 .../src/gateway/routes/public/slack.ts | 0 .../gateway/routes/shared/agent-ownership.ts | 0 .../src/gateway/routes/shared/helpers.ts | 0 .../gateway/routes/shared/token-verifier.ts | 0 .../src/gateway/secrets/index.ts | 0 .../src/gateway/services/agent-threads.ts | 2 +- .../gateway/services/bedrock-model-catalog.ts | 0 .../services/bedrock-openai-service.ts | 0 .../src/gateway/services/core-services.ts | 0 .../services/declared-agent-registry.ts | 0 .../services/image-generation-service.ts | 0 .../gateway/services/instruction-service.ts | 0 .../src/gateway/services/mcp-registry.ts | 0 .../src/gateway/services/platform-helpers.ts | 2 +- .../services/provider-config-resolver.ts | 0 .../services/provider-registry-service.ts | 0 .../src/gateway/services/session-manager.ts | 0 .../src/gateway/services/settings-resolver.ts | 0 .../src/gateway/services/sse-manager.ts | 0 .../gateway/services/transcription-service.ts | 0 .../src/gateway/session.ts | 0 .../src/gateway/spaces/index.ts | 0 .../src/gateway/spaces/space-resolver.ts | 0 .../src/gateway/stores/base-agent-store.ts | 0 .../gateway/stores/in-memory-agent-store.ts | 0 .../src/gateway/utils/public-url.ts | 0 .../src/gateway/utils/rate-limiter.ts | 0 .../src/gateway/watchers/run-tracker.ts | 0 .../src/http/spa-route-filter.ts | 0 .../src/identity/auth-hook.ts | 0 .../src/identity/capability-registry.ts | 2 +- .../src/identity/connectors/google.ts | 4 +- .../src/identity/connectors/index.ts | 0 .../src/identity/engine.ts | 4 +- .../src/identity/lock.ts | Bin .../src/identity/rules.ts | 2 +- .../src/identity/types.ts | 2 +- .../src/identity/validate.ts | 2 +- .../{owletto-backend => server}/src/index.ts | 20 +- .../src/instrument.ts | 0 .../src/lib/feed-sync.ts | 2 +- .../lobu/__tests__/agent-routes-apply.test.ts | 0 .../src/lobu/agent-routes.ts | 2 +- .../src/lobu/client-routes.ts | 0 .../src/lobu/gateway.ts | 0 .../src/lobu/service-token.ts | 0 .../postgres-agent-config-store.test.ts | 0 .../__tests__/postgres-secret-store.test.ts | 0 .../stores/__tests__/postgres-stores.test.ts | 0 .../src/lobu/stores/index.ts | 0 .../src/lobu/stores/org-context.ts | 0 .../src/lobu/stores/postgres-secret-store.ts | 0 .../src/lobu/stores/postgres-stores.ts | 0 .../src/mcp-handler.ts | 0 .../src/mcp-proxy/client.ts | 0 .../src/mcp-proxy/credential-resolver.ts | 0 .../src/mcp-proxy/types.ts | 0 .../src/mcp-session-store.ts | 0 .../src/notifications/routes.ts | 0 .../src/notifications/service.ts | 0 .../src/notifications/triggers.ts | 0 .../src/operations/catalog.ts | 0 .../src/operations/types.ts | 0 .../src/public-pages.ts | 0 .../src/rest-api.ts | 0 .../src/sandbox/client-sdk.ts | 0 .../src/sandbox/method-metadata.ts | 0 .../src/sandbox/namespaces/action-call.ts | 0 .../src/sandbox/namespaces/auth-profiles.ts | 0 .../src/sandbox/namespaces/classifiers.ts | 0 .../src/sandbox/namespaces/connections.ts | 0 .../src/sandbox/namespaces/entities.ts | 0 .../src/sandbox/namespaces/entity-schema.ts | 0 .../src/sandbox/namespaces/feeds.ts | 0 .../src/sandbox/namespaces/index.ts | 0 .../src/sandbox/namespaces/knowledge.ts | 0 .../src/sandbox/namespaces/operations.ts | 0 .../src/sandbox/namespaces/organizations.ts | 0 .../src/sandbox/namespaces/view-templates.ts | 0 .../src/sandbox/namespaces/watchers.ts | 0 .../src/sandbox/run-script.ts | 0 .../src/sandbox/sdk-manifest.ts | 0 .../src/sandbox/typebox-to-signature.ts | 0 .../__tests__/task-scheduler.test.ts | 0 .../src/scheduled/check-due-feeds.ts | 0 .../src/scheduled/check-stalled-executions.ts | 2 +- .../classification-reconciliation.ts | 0 .../src/scheduled/jobs.ts | 2 +- .../src/scheduled/scheduler-health.ts | 0 .../src/scheduled/task-scheduler.ts | 0 .../src/scheduled/trigger-embed-backfill.ts | 0 .../{owletto-backend => server}/src/sentry.ts | 0 .../{owletto-backend => server}/src/server.ts | 8 +- .../src/start-local.ts | 4 +- .../tools/__tests__/search-cross-org.test.ts | 0 .../tools/admin/__tests__/query_sql.test.ts | 0 .../src/tools/admin/action-router.ts | 0 .../admin/connector-definition-helpers.ts | 0 .../tools/admin/helpers/connection-helpers.ts | 0 .../helpers/connector-definition-list.ts | 0 .../src/tools/admin/helpers/db-helpers.ts | 0 .../src/tools/admin/helpers/feed-helpers.ts | 0 .../src/tools/admin/index.ts | 0 .../src/tools/admin/manage_auth_profiles.ts | 0 .../src/tools/admin/manage_classifiers.ts | 0 .../src/tools/admin/manage_connections.ts | 0 .../src/tools/admin/manage_entity.ts | 0 .../src/tools/admin/manage_entity_schema.ts | 2 +- .../src/tools/admin/manage_feeds.ts | 0 .../src/tools/admin/manage_operations.ts | 2 +- .../src/tools/admin/manage_view_templates.ts | 0 .../src/tools/admin/manage_watchers.ts | 0 .../src/tools/admin/notify.ts | 0 .../src/tools/admin/query_sql.ts | 0 .../src/tools/admin/schemas/common-fields.ts | 0 .../src/tools/admin/view-template-helpers.ts | 0 .../src/tools/delete_content.ts | 0 .../src/tools/execute.ts | 0 .../src/tools/get_content.ts | 4 +- .../src/tools/get_watchers.ts | 2 +- .../src/tools/organizations.ts | 0 .../src/tools/registry.ts | 0 .../src/tools/resolve_path.ts | 0 .../src/tools/save_content.ts | 2 +- .../src/tools/sdk_run.ts | 0 .../src/tools/sdk_search.ts | 0 .../src/tools/search.ts | 0 .../src/types/isolated-vm.d.ts | 0 .../src/types/templates.ts | 0 .../src/types/watchers.ts | 0 .../src/utils/__tests__/auth-profiles.test.ts | 0 .../utils/__tests__/connector-auth.test.ts | 0 .../utils/__tests__/connector-catalog.test.ts | 2 +- .../__tests__/content-query-filters.test.ts | 0 .../src/utils/__tests__/date-aliases.test.ts | 0 .../__tests__/entity-link-upsert.test.ts | 2 +- .../__tests__/entity-link-validation.test.ts | 2 +- .../entity-management-schema-search.test.ts | 2 +- .../__tests__/identity-normalize.test.ts | 2 +- .../__tests__/markdown-formatter.test.ts | 0 .../__tests__/mcp-install-targets.test.ts | 4 +- .../utils/__tests__/migrations-format.test.ts | 0 .../__tests__/owletto-guidance-sync.test.ts | 2 +- .../src/utils/__tests__/public-origin.test.ts | 0 .../src/utils/__tests__/runtime-info.test.ts | 0 .../utils/__tests__/sql-validation.test.ts | 0 .../src/utils/__tests__/table-schema.test.ts | 0 .../src/utils/__tests__/url-builder.test.ts | 0 .../src/utils/__tests__/watcher-time.test.ts | 2 +- .../src/utils/__tests__/window-utils.test.ts | 0 .../src/utils/ajv-singleton.ts | 0 .../src/utils/auth-profiles.ts | 2 +- .../src/utils/auto-linker.ts | 0 .../src/utils/classification-query.ts | 0 .../src/utils/compiler-core.ts | 4 +- .../src/utils/connect-tokens.ts | 0 .../src/utils/connector-auth.ts | 2 +- .../src/utils/connector-catalog.ts | 10 +- .../src/utils/connector-compiler.ts | 2 +- .../src/utils/connector-definition-install.ts | 0 .../src/utils/content-query-filters.ts | 0 .../src/utils/content-scoring.ts | 0 .../src/utils/content-search.ts | 4 +- .../src/utils/cron.ts | 0 .../src/utils/csp.ts | 0 .../src/utils/date-aliases.ts | 2 +- .../src/utils/embeddings.ts | 0 .../src/utils/ensure-connector-installed.ts | 0 .../src/utils/entity-hooks.ts | 0 .../src/utils/entity-link-overrides.ts | 2 +- .../src/utils/entity-link-upsert.ts | 4 +- .../src/utils/entity-link-validation.ts | 2 +- .../src/utils/entity-management.ts | 2 +- .../src/utils/env.ts | 0 .../src/utils/errors.ts | 0 .../src/utils/event-kind-validation.ts | 0 .../src/utils/execute-data-sources.ts | 0 .../src/utils/execution-context.ts | 0 .../src/utils/insert-event.ts | 0 .../src/utils/json.ts | 0 .../src/utils/jwt.ts | 0 .../src/utils/logger.ts | 0 .../src/utils/markdown-formatter.ts | 0 .../src/utils/member-entity-type.ts | 0 .../src/utils/member-entity.ts | 0 .../src/utils/member-redaction.ts | 0 .../src/utils/oauth-connection-state.ts | 0 .../src/utils/oauth-scopes.ts | 0 .../src/utils/openapi-generator.ts | 0 .../src/utils/organization-access.ts | 0 .../src/utils/pg-errors.ts | 0 .../src/utils/provisioned-connection.ts | 0 .../src/utils/public-origin.ts | 20 +- .../src/utils/query-expansion.ts | 0 .../src/utils/queue-helpers.ts | 0 .../src/utils/race-abort.ts | 0 .../src/utils/rate-limiter.ts | 0 .../src/utils/relationship-validation.ts | 0 .../src/utils/reserved.ts | 0 .../src/utils/resolve-usernames.ts | 0 .../src/utils/run-statuses.ts | 0 .../src/utils/runtime-info.ts | 0 .../src/utils/schema-validation.ts | 0 .../src/utils/scoring-profiles.ts | 0 .../src/utils/sql-validation.ts | 0 .../src/utils/stable-keys.test.ts | 0 .../src/utils/stable-keys.ts | 0 .../src/utils/table-schema.ts | 0 .../src/utils/template-renderer.ts | 0 .../src/utils/ttl-cache.ts | 0 .../src/utils/url-builder.ts | 0 .../src/utils/vector-math.ts | 0 .../src/utils/watcher-feedback.ts | 0 .../src/utils/watcher-reactions.ts | 0 .../src/utils/window-utils.ts | 2 +- .../src/utils/workspace-instructions.ts | 0 .../src/watchers/automation.ts | 2 +- .../src/watchers/classifier-extraction.ts | 0 .../src/watchers/reaction-executor.ts | 2 +- .../src/watchers/renderer.ts | 0 .../src/watchers/run-completion.ts | 0 .../src/watchers/validator.ts | 0 .../src/worker-api.ts | 0 .../multi-tenant-auth-source.test.ts | 0 .../src/workspace/index.ts | 0 .../src/workspace/join-public.ts | 0 .../src/workspace/multi-tenant.ts | 0 .../src/workspace/types.ts | 0 .../{owletto-backend => server}/tsconfig.json | 0 .../vitest.config.ts | 0 packages/web | 1 + release-please-config.json | 42 +- scripts/bump-version.mjs | 10 +- scripts/check-connector-runtime-deps.mjs | 13 +- scripts/dev-native.sh | 10 +- scripts/e2e-lobu-apply.sh | 2 +- scripts/owletto/dry-run-connector.ts | 2 +- scripts/owletto/install-connectors.ts | 10 +- scripts/owletto/prepare-locomo-suite.ts | 2 +- scripts/owletto/prepare-longmemeval-suite.ts | 2 +- scripts/owletto/run-memory-benchmark.ts | 2 +- scripts/owletto/sync-local.ts | 2 +- scripts/owletto/sync-owletto-guidance.ts | 2 +- scripts/publish-packages.mjs | 105 ++++- skills/lobu/SKILL.md | 2 +- tsconfig.json | 36 +- 791 files changed, 1276 insertions(+), 821 deletions(-) rename packages/{worker => agent-worker}/package.json (96%) rename packages/{worker => agent-worker}/src/__tests__/audio-provider-suggestions.test.ts (100%) rename packages/{worker => agent-worker}/src/__tests__/custom-tools.test.ts (100%) rename packages/{worker => agent-worker}/src/__tests__/embedded-just-bash-bootstrap.test.ts (100%) rename packages/{worker => agent-worker}/src/__tests__/embedded-mcp-cli-bash.test.ts (100%) rename packages/{worker => agent-worker}/src/__tests__/embedded-tools.test.ts (100%) rename packages/{worker => agent-worker}/src/__tests__/exec-sandbox.test.ts (100%) rename packages/{worker => agent-worker}/src/__tests__/generated-media.test.ts (100%) rename packages/{worker => agent-worker}/src/__tests__/instructions.test.ts (100%) rename packages/{worker => agent-worker}/src/__tests__/mcp-cli-commands.test.ts (100%) rename packages/{worker => agent-worker}/src/__tests__/memory-flush-runtime.test.ts (100%) rename packages/{worker => agent-worker}/src/__tests__/memory-flush.test.ts (100%) rename packages/{worker => agent-worker}/src/__tests__/model-resolver.test.ts (100%) rename packages/{worker => agent-worker}/src/__tests__/processor.test.ts (100%) rename packages/{worker => agent-worker}/src/__tests__/replace-base-prompt-identity.test.ts (100%) rename packages/{worker => agent-worker}/src/__tests__/sandbox-leak.test.ts (100%) rename packages/{worker => agent-worker}/src/__tests__/setup.ts (100%) rename packages/{worker => agent-worker}/src/__tests__/sse-client.test.ts (100%) rename packages/{worker => agent-worker}/src/__tests__/tool-implementations.test.ts (100%) rename packages/{worker => agent-worker}/src/__tests__/tool-policy.test.ts (100%) rename packages/{worker => agent-worker}/src/__tests__/worker.test.ts (100%) rename packages/{worker => agent-worker}/src/core/error-handler.ts (100%) rename packages/{worker => agent-worker}/src/core/project-scanner.ts (100%) rename packages/{worker => agent-worker}/src/core/types.ts (100%) rename packages/{worker => agent-worker}/src/core/workspace.ts (100%) rename packages/{worker => agent-worker}/src/embedded/exec-sandbox.ts (100%) rename packages/{worker => agent-worker}/src/embedded/just-bash-bootstrap.ts (100%) rename packages/{worker => agent-worker}/src/embedded/mcp-cli-commands.ts (100%) rename packages/{worker => agent-worker}/src/gateway/gateway-integration.ts (100%) rename packages/{worker => agent-worker}/src/gateway/message-batcher.ts (100%) rename packages/{worker => agent-worker}/src/gateway/sse-client.ts (100%) rename packages/{worker => agent-worker}/src/gateway/types.ts (100%) rename packages/{worker => agent-worker}/src/index.ts (100%) rename packages/{worker => agent-worker}/src/instructions/builder.ts (100%) rename packages/{worker => agent-worker}/src/instructions/providers.ts (100%) rename packages/{worker => agent-worker}/src/modules/lifecycle.ts (100%) rename packages/{worker => agent-worker}/src/openclaw/custom-tools.ts (100%) rename packages/{worker => agent-worker}/src/openclaw/instructions.ts (100%) rename packages/{worker => agent-worker}/src/openclaw/model-resolver.ts (100%) rename packages/{worker => agent-worker}/src/openclaw/plugin-loader.ts (100%) rename packages/{worker => agent-worker}/src/openclaw/processor.ts (100%) rename packages/{worker => agent-worker}/src/openclaw/sandbox-leak.ts (100%) rename packages/{worker => agent-worker}/src/openclaw/session-context.ts (100%) rename packages/{worker => agent-worker}/src/openclaw/tool-policy.ts (100%) rename packages/{worker => agent-worker}/src/openclaw/tools.ts (100%) rename packages/{worker => agent-worker}/src/openclaw/worker.ts (100%) rename packages/{worker => agent-worker}/src/server.ts (100%) rename packages/{worker => agent-worker}/src/shared/audio-provider-suggestions.ts (100%) rename packages/{worker => agent-worker}/src/shared/processor-utils.ts (100%) rename packages/{worker => agent-worker}/src/shared/provider-auth-hints.ts (100%) rename packages/{worker => agent-worker}/src/shared/tool-display-config.ts (100%) rename packages/{worker => agent-worker}/src/shared/tool-implementations.ts (100%) rename packages/{worker => agent-worker}/src/shared/worker-env-keys.ts (100%) rename packages/{worker => agent-worker}/tsconfig.json (100%) rename packages/{owletto-extension => browser-extension}/manifest.json (100%) rename packages/{owletto-extension => browser-extension}/package.json (94%) rename packages/{owletto-extension => browser-extension}/src/assets/icons/icon-128-mono.png (100%) rename packages/{owletto-extension => browser-extension}/src/assets/icons/icon-128.png (100%) rename packages/{owletto-extension => browser-extension}/src/assets/icons/icon-16-mono.png (100%) rename packages/{owletto-extension => browser-extension}/src/assets/icons/icon-16.png (100%) rename packages/{owletto-extension => browser-extension}/src/assets/icons/icon-48-mono.png (100%) rename packages/{owletto-extension => browser-extension}/src/assets/icons/icon-48.png (100%) rename packages/{owletto-extension => browser-extension}/src/background/api-client.ts (100%) rename packages/{owletto-extension => browser-extension}/src/background/auth.ts (100%) rename packages/{owletto-extension => browser-extension}/src/background/service-worker.ts (100%) rename packages/{owletto-extension => browser-extension}/src/background/state-manager.ts (100%) rename packages/{owletto-extension => browser-extension}/src/callback/callback.html (100%) rename packages/{owletto-extension => browser-extension}/src/callback/callback.ts (100%) rename packages/{owletto-extension => browser-extension}/src/content/dom-interpreter.ts (100%) rename packages/{owletto-extension => browser-extension}/src/content/index.ts (100%) rename packages/{owletto-extension => browser-extension}/src/offscreen/document.html (100%) rename packages/{owletto-extension => browser-extension}/src/offscreen/worker.ts (100%) rename packages/{owletto-extension => browser-extension}/src/popup/Popup.tsx (100%) rename packages/{owletto-extension => browser-extension}/src/popup/index.html (100%) rename packages/{owletto-extension => browser-extension}/src/popup/main.tsx (100%) rename packages/{owletto-extension => browser-extension}/src/popup/popup.css (100%) rename packages/{owletto-extension => browser-extension}/src/sidebar/App.tsx (100%) rename packages/{owletto-extension => browser-extension}/src/sidebar/app.css (100%) rename packages/{owletto-extension => browser-extension}/src/sidebar/index.html (100%) rename packages/{owletto-extension => browser-extension}/src/sidebar/main.tsx (100%) rename packages/{owletto-extension => browser-extension}/tsconfig.json (100%) rename packages/{owletto-extension => browser-extension}/vite.config.ts (100%) create mode 100644 packages/connector-sdk/package.json rename packages/{owletto-sdk => connector-sdk}/src/api-paginated.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/base.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/browser-network.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/browser-paginated.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/browser/acquire.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/browser/cdp-page.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/browser/cdp.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/browser/launcher.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/browser/stealth.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/connector-runtime.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/connector-types.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/event-taxonomy.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/http.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/identity-normalize.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/identity-types.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/index.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/logger.ts (88%) rename packages/{owletto-sdk => connector-sdk}/src/paginated.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/reaction-sdk.ts (93%) rename packages/{owletto-sdk => connector-sdk}/src/retry.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/scoring.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/types.ts (100%) rename packages/{owletto-sdk => connector-sdk}/src/watcher-time.ts (100%) rename packages/{owletto-sdk => connector-sdk}/tsconfig.json (100%) rename packages/{owletto-worker => connector-worker}/.dev.vars (100%) rename packages/{owletto-worker => connector-worker}/README.md (92%) rename packages/{owletto-worker => connector-worker}/integration-tests/subprocess-source-mode.test.ts (100%) rename packages/{owletto-worker => connector-worker}/integration-tests/subprocess.test.ts (98%) create mode 100644 packages/connector-worker/package.json rename packages/{owletto-worker => connector-worker}/src/__tests__/redact.test.ts (100%) rename packages/{owletto-worker => connector-worker}/src/bin.ts (97%) rename packages/{owletto-worker => connector-worker}/src/daemon/client.ts (100%) rename packages/{owletto-worker => connector-worker}/src/daemon/executor.ts (99%) rename packages/{owletto-worker => connector-worker}/src/daemon/index.ts (100%) rename packages/{owletto-worker => connector-worker}/src/daemon/worker.ts (100%) rename packages/{owletto-worker => connector-worker}/src/embeddings.ts (100%) rename packages/{owletto-worker => connector-worker}/src/executor/child-runner.ts (98%) rename packages/{owletto-worker => connector-worker}/src/executor/interface.ts (98%) rename packages/{owletto-worker => connector-worker}/src/executor/redact.ts (100%) rename packages/{owletto-worker => connector-worker}/src/executor/runtime.ts (99%) rename packages/{owletto-worker => connector-worker}/src/executor/subprocess.ts (100%) rename packages/{owletto-worker => connector-worker}/src/index.ts (88%) rename packages/{owletto-worker => connector-worker}/src/runtime-deps.ts (78%) create mode 100644 packages/connector-worker/src/types.ts rename packages/{owletto-worker => connector-worker}/tsconfig.json (100%) create mode 100644 packages/connectors/package.json rename packages/{owletto-connectors => connectors}/src/README.md (99%) rename packages/{owletto-connectors => connectors}/src/browser-scraper-utils.ts (99%) rename packages/{owletto-connectors => connectors}/src/capterra.ts (99%) rename packages/{owletto-connectors => connectors}/src/g2.ts (99%) rename packages/{owletto-connectors => connectors}/src/github.ts (99%) rename packages/{owletto-connectors => connectors}/src/glassdoor.ts (99%) rename packages/{owletto-connectors => connectors}/src/gmaps.ts (99%) rename packages/{owletto-connectors => connectors}/src/google_calendar.ts (99%) rename packages/{owletto-connectors => connectors}/src/google_gmail.ts (99%) rename packages/{owletto-connectors => connectors}/src/google_photos.ts (99%) rename packages/{owletto-connectors => connectors}/src/google_play.ts (99%) rename packages/{owletto-connectors => connectors}/src/hackernews.ts (99%) create mode 100644 packages/connectors/src/index.ts rename packages/{owletto-connectors => connectors}/src/ios_appstore.ts (99%) rename packages/{owletto-connectors => connectors}/src/linkedin.ts (99%) rename packages/{owletto-connectors => connectors}/src/microsoft_outlook.ts (99%) rename packages/{owletto-connectors => connectors}/src/producthunt.ts (99%) rename packages/{owletto-connectors => connectors}/src/reddit.ts (99%) rename packages/{owletto-connectors => connectors}/src/rss.ts (99%) rename packages/{owletto-connectors => connectors}/src/spotify.ts (99%) rename packages/{owletto-connectors => connectors}/src/trustpilot.ts (99%) rename packages/{owletto-connectors => connectors}/src/website.ts (99%) rename packages/{owletto-connectors => connectors}/src/whatsapp.ts (99%) rename packages/{owletto-connectors => connectors}/src/x.ts (99%) rename packages/{owletto-connectors => connectors}/src/youtube.ts (99%) rename packages/{owletto-connectors => connectors}/tsconfig.json (100%) create mode 100644 packages/embeddings/package.json rename packages/{owletto-embeddings => embeddings}/src/embedding-utils.ts (100%) rename packages/{owletto-embeddings => embeddings}/src/embeddings.ts (100%) create mode 100644 packages/embeddings/src/index.ts rename packages/{owletto-embeddings => embeddings}/src/openai.ts (100%) rename packages/{owletto-embeddings => embeddings}/src/server.ts (100%) rename packages/{owletto-embeddings => embeddings}/tsconfig.json (95%) rename packages/{owletto-openclaw => openclaw-plugin}/README.md (95%) create mode 100644 packages/openclaw-plugin/openclaw.plugin.json create mode 100644 packages/openclaw-plugin/package.json rename packages/{owletto-openclaw => openclaw-plugin}/src/index.ts (99%) rename packages/{owletto-openclaw => openclaw-plugin}/src/owletto-guidance.ts (100%) rename packages/{owletto-openclaw => openclaw-plugin}/src/types.ts (100%) rename packages/{owletto-openclaw => openclaw-plugin}/test/e2e/device-auth.test.ts (100%) rename packages/{owletto-openclaw => openclaw-plugin}/test/e2e/helpers.ts (99%) rename packages/{owletto-openclaw => openclaw-plugin}/test/e2e/mcp-tools.test.ts (100%) rename packages/{owletto-openclaw => openclaw-plugin}/test/e2e/memory-loop.test.ts (90%) rename packages/{owletto-openclaw => openclaw-plugin}/test/e2e/vitest.config.ts (100%) rename packages/{owletto-openclaw => openclaw-plugin}/tsconfig.json (100%) delete mode 160000 packages/owletto-web delete mode 100644 packages/owletto-worker/src/types.ts rename packages/{owletto-backend => server}/package.json (93%) rename packages/{owletto-backend => server}/scripts/build-server-bundle.mjs (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/classifiers/classifiers-crud.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/classifiers/classifiers-isolation.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/connectors/entity-links-contract.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/cross-org/isolation.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/entities/entity-crud.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/entities/entity-history-contract.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/entities/member-privacy-contract.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/entity-schema/entity-types.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/events/content-distribution-contract.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/events/delete-content-tombstone.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/events/get-content-visibility.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/events/scheduling-contract.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/events/search-content-embedding-only.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/events/search-content-org-scope.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/identity/engine.test.ts (99%) rename packages/{owletto-backend => server}/src/__tests__/integration/identity/founder-to-member-migration.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/mcp/auth-wire.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/mcp/auth.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/mcp/member-write-access.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/mcp/query-tool.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/oauth/discovery.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/pages/public-pages-contract.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/pages/resolve-path-contract.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/relationships/relationships-contract.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/sandbox/client-sdk-org.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/sandbox/execute-wire.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/sandbox/namespace-dispatch.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/sandbox/run-script-runtime.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/watchers/automation-contract.test.ts (98%) rename packages/{owletto-backend => server}/src/__tests__/integration/watchers/feedback-contract.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/watchers/group-edit.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/integration/watchers/watchers-crud.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/setup/global-setup.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/setup/pglite-backend.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/setup/test-db.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/setup/test-fixtures.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/setup/test-helpers.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/setup/test-mcp-client.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/setup/test-workspace.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/benchmarks/memory-benchmark.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/bootstrap-pat-file-mode.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/build-org-scope-where.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/connectors/linkedin.test.ts (95%) rename packages/{owletto-backend => server}/src/__tests__/unit/connectors/repair-agent.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/connectors/whatsapp.test.ts (99%) rename packages/{owletto-backend => server}/src/__tests__/unit/csp.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/delete-content-access.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/get-content-include-superseded.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/google-identity-connector.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/http/spa-route-filter.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/lobu/gateway.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/oauth-scope-filter.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/resolve-path-redaction.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/sandbox/_helpers.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/sandbox/abort.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/sandbox/cross-org-gate.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/sandbox/method-metadata.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/sandbox/read-only.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/sandbox/sdk-search.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/sandbox/typebox-to-signature.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/save-content-access.test.ts (100%) rename packages/{owletto-backend => server}/src/__tests__/unit/subdomain-reserved-parity.test.ts (83%) rename packages/{owletto-backend => server}/src/agents/LICENSE (100%) rename packages/{owletto-backend => server}/src/auth/__tests__/config.test.ts (100%) rename packages/{owletto-backend => server}/src/auth/__tests__/personal-org-provisioning.test.ts (100%) rename packages/{owletto-backend => server}/src/auth/__tests__/token-routes.test.ts (100%) rename packages/{owletto-backend => server}/src/auth/__tests__/tool-access.test.ts (98%) rename packages/{owletto-backend => server}/src/auth/base-url.ts (100%) rename packages/{owletto-backend => server}/src/auth/config.ts (100%) rename packages/{owletto-backend => server}/src/auth/credentials.ts (100%) rename packages/{owletto-backend => server}/src/auth/index.tsx (100%) rename packages/{owletto-backend => server}/src/auth/middleware.ts (100%) rename packages/{owletto-backend => server}/src/auth/oauth/clients.ts (100%) rename packages/{owletto-backend => server}/src/auth/oauth/provider.ts (100%) rename packages/{owletto-backend => server}/src/auth/oauth/routes.ts (99%) rename packages/{owletto-backend => server}/src/auth/oauth/scopes.ts (100%) rename packages/{owletto-backend => server}/src/auth/oauth/types.ts (100%) rename packages/{owletto-backend => server}/src/auth/oauth/utils.ts (100%) rename packages/{owletto-backend => server}/src/auth/personal-org-provisioning.ts (100%) rename packages/{owletto-backend => server}/src/auth/routes.ts (100%) rename packages/{owletto-backend => server}/src/auth/social-login-provisioning.ts (100%) rename packages/{owletto-backend => server}/src/auth/subject-identities.ts (100%) rename packages/{owletto-backend => server}/src/auth/tokens.ts (100%) rename packages/{owletto-backend => server}/src/auth/tool-access.ts (100%) rename packages/{owletto-backend => server}/src/benchmarks/memory/adapters/command.ts (100%) rename packages/{owletto-backend => server}/src/benchmarks/memory/adapters/owletto-inprocess.ts (100%) rename packages/{owletto-backend => server}/src/benchmarks/memory/adapters/owletto-mcp.ts (100%) rename packages/{owletto-backend => server}/src/benchmarks/memory/answerer.ts (100%) rename packages/{owletto-backend => server}/src/benchmarks/memory/config.ts (100%) rename packages/{owletto-backend => server}/src/benchmarks/memory/mcp-client.ts (100%) rename packages/{owletto-backend => server}/src/benchmarks/memory/public-datasets/locomo.ts (100%) rename packages/{owletto-backend => server}/src/benchmarks/memory/public-datasets/longmemeval.ts (100%) rename packages/{owletto-backend => server}/src/benchmarks/memory/publish.ts (100%) rename packages/{owletto-backend => server}/src/benchmarks/memory/runner.ts (100%) rename packages/{owletto-backend => server}/src/benchmarks/memory/scoring.ts (100%) rename packages/{owletto-backend => server}/src/benchmarks/memory/suite.ts (100%) rename packages/{owletto-backend => server}/src/benchmarks/memory/types.ts (100%) rename packages/{owletto-backend => server}/src/connect/oauth-providers.ts (100%) rename packages/{owletto-backend => server}/src/connect/routes.ts (100%) rename packages/{owletto-backend => server}/src/connectors/repair-agent-packet.ts (100%) rename packages/{owletto-backend => server}/src/connectors/repair-agent.ts (100%) rename packages/{owletto-backend => server}/src/db/__tests__/client.test.ts (100%) rename packages/{owletto-backend => server}/src/db/client.ts (99%) rename packages/{owletto-backend => server}/src/db/migration-loader.ts (100%) rename packages/{owletto-backend => server}/src/email/send.ts (98%) rename packages/{owletto-backend => server}/src/email/templates/BrandedEmail.tsx (100%) rename packages/{owletto-backend => server}/src/email/templates/invitation.tsx (100%) rename packages/{owletto-backend => server}/src/email/templates/magic-link.tsx (100%) rename packages/{owletto-backend => server}/src/email/templates/password-reset.tsx (100%) rename packages/{owletto-backend => server}/src/events/emitter.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/agent-config-routes.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/agent-history-routes.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/agent-ownership.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/agent-routes.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/agent-settings-store.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/base-deployment-grants.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/bedrock-model-catalog.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/bedrock-openai-service.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/bedrock-provider-module.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/chat-history-store.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/chat-instance-manager-slack.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/chat-response-bridge.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/config-memory-plugins.test.ts (96%) rename packages/{owletto-backend => server}/src/gateway/__tests__/connection-routes.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/core-services-store-selection.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/declared-agent-registry.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/device-auth.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/egress-judge-cache.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/egress-judge-circuit-breaker.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/egress-judge-composer.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/egress-judge.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/embedded-deployment.test.ts (98%) rename packages/{owletto-backend => server}/src/gateway/__tests__/file-loader-egress.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/file-loader-memory.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/file-loader-platforms.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/file-loader-providers.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/file-loader-tools.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/file-routes.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/fixtures/in-memory-state-adapter.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/fixtures/slack-signing.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/grant-store.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/helpers/db-setup.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/http-proxy-judge.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/http-proxy.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/instruction-service.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/interaction-bridge-action-handlers.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/interaction-bridge-slack-webhook.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/link-buttons.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/mcp-config-service.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/mcp-proxy.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/message-handler-bridge.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/model-selection.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/oauth-state-store.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/oauth-templates.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/platform-adapter-slack-send.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/platform-file-handler.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/platform-helpers-model-resolution.test.ts (97%) rename packages/{owletto-backend => server}/src/gateway/__tests__/policy-store.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/provider-config-resolver.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/provider-inheritance.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/provider-registry-service.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/routes/interactions.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/routes/mcp-oauth.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/routes/media.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/runs-queue-integration.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/secret-proxy.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/secret-store.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/session-manager.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/setup.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/skill-and-mcp-registry.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/slack-connection-coordinator.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/slack-platform-bridge.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/slack-routes.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/sse-manager.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/transcription-service.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/unified-thread-consumer.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/user-auth-profile-store.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/utils/rate-limiter.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/worker-connection-manager.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/worker-gateway-session-context.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/__tests__/worker-job-router.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/api/index.ts (100%) rename packages/{owletto-backend => server}/src/gateway/api/platform.ts (100%) rename packages/{owletto-backend => server}/src/gateway/api/response-renderer.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/agent-metadata-store.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/api-auth-middleware.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/api-key-provider-module.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/base-provider-module.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/bedrock/provider-module.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/chatgpt/chatgpt-oauth-module.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/chatgpt/device-code-client.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/chatgpt/index.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/claude/oauth-module.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/cli-backend-only-module.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/external/client.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/external/device-code-client.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/gemini/cli-module.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/gemini/index.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/mcp/config-service.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/mcp/oauth-discovery.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/mcp/oauth-flow.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/mcp/pending-tool-store.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/mcp/proxy.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/mcp/resume-after-oauth.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/mcp/string-substitution.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/mcp/tool-cache.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/oauth-templates.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/oauth/base-client.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/oauth/client.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/oauth/credentials.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/oauth/providers.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/oauth/state-store.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/provider-catalog.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/provider-model-options.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/settings/agent-settings-store.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/settings/auth-profiles-manager.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/settings/index.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/settings/model-preference-store.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/settings/model-selection.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/settings/resolved-settings-view.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/settings/template-utils.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/settings/token-service.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/settings/user-auth-profile-store.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/system-env-store.ts (100%) rename packages/{owletto-backend => server}/src/gateway/auth/user-agents-store.ts (100%) rename packages/{owletto-backend => server}/src/gateway/channels/binding-service.ts (100%) rename packages/{owletto-backend => server}/src/gateway/channels/index.ts (100%) rename packages/{owletto-backend => server}/src/gateway/cli/gateway.ts (100%) rename packages/{owletto-backend => server}/src/gateway/cli/index.ts (100%) rename packages/{owletto-backend => server}/src/gateway/commands/built-in-commands.ts (100%) rename packages/{owletto-backend => server}/src/gateway/commands/command-dispatcher.ts (100%) rename packages/{owletto-backend => server}/src/gateway/commands/command-reply-adapters.ts (100%) rename packages/{owletto-backend => server}/src/gateway/config/file-loader.ts (100%) rename packages/{owletto-backend => server}/src/gateway/config/index.ts (97%) rename packages/{owletto-backend => server}/src/gateway/config/network-allowlist.ts (100%) rename packages/{owletto-backend => server}/src/gateway/connections/chat-connection-store.ts (100%) rename packages/{owletto-backend => server}/src/gateway/connections/chat-instance-manager.ts (100%) rename packages/{owletto-backend => server}/src/gateway/connections/chat-response-bridge.ts (100%) rename packages/{owletto-backend => server}/src/gateway/connections/conversation-state-store.ts (100%) rename packages/{owletto-backend => server}/src/gateway/connections/index.ts (100%) rename packages/{owletto-backend => server}/src/gateway/connections/interaction-bridge.ts (100%) rename packages/{owletto-backend => server}/src/gateway/connections/message-handler-bridge.ts (100%) rename packages/{owletto-backend => server}/src/gateway/connections/platform-auth-methods.ts (100%) rename packages/{owletto-backend => server}/src/gateway/connections/platform-strategies/async-push-iterator.ts (100%) rename packages/{owletto-backend => server}/src/gateway/connections/platform-strategies/index.ts (100%) rename packages/{owletto-backend => server}/src/gateway/connections/slack-connection-coordinator.ts (100%) rename packages/{owletto-backend => server}/src/gateway/connections/slack-instruction-provider.ts (100%) rename packages/{owletto-backend => server}/src/gateway/connections/slack-platform-bridge.ts (100%) rename packages/{owletto-backend => server}/src/gateway/connections/state-adapter.ts (100%) rename packages/{owletto-backend => server}/src/gateway/connections/types.ts (100%) rename packages/{owletto-backend => server}/src/gateway/embedded.ts (100%) rename packages/{owletto-backend => server}/src/gateway/files/artifact-store.ts (100%) rename packages/{owletto-backend => server}/src/gateway/gateway-main.ts (100%) rename packages/{owletto-backend => server}/src/gateway/gateway/connection-manager.ts (100%) rename packages/{owletto-backend => server}/src/gateway/gateway/index.ts (100%) rename packages/{owletto-backend => server}/src/gateway/gateway/job-router.ts (100%) rename packages/{owletto-backend => server}/src/gateway/index.ts (96%) rename packages/{owletto-backend => server}/src/gateway/infrastructure/queue/__tests__/runs-queue.test.ts (100%) rename packages/{owletto-backend => server}/src/gateway/infrastructure/queue/index.ts (100%) rename packages/{owletto-backend => server}/src/gateway/infrastructure/queue/queue-producer.ts (100%) rename packages/{owletto-backend => server}/src/gateway/infrastructure/queue/runs-queue.ts (100%) rename packages/{owletto-backend => server}/src/gateway/infrastructure/queue/types.ts (100%) rename packages/{owletto-backend => server}/src/gateway/interactions.ts (100%) rename packages/{owletto-backend => server}/src/gateway/metrics/prometheus.ts (100%) rename packages/{owletto-backend => server}/src/gateway/modules/module-system.ts (100%) rename packages/{owletto-backend => server}/src/gateway/orchestration/base-deployment-manager.ts (100%) rename packages/{owletto-backend => server}/src/gateway/orchestration/deployment-utils.ts (100%) rename packages/{owletto-backend => server}/src/gateway/orchestration/impl/embedded-deployment.ts (99%) rename packages/{owletto-backend => server}/src/gateway/orchestration/impl/index.ts (100%) rename packages/{owletto-backend => server}/src/gateway/orchestration/index.ts (100%) rename packages/{owletto-backend => server}/src/gateway/orchestration/message-consumer.ts (99%) rename packages/{owletto-backend => server}/src/gateway/permissions/approval-policy.ts (100%) rename packages/{owletto-backend => server}/src/gateway/permissions/grant-store.ts (100%) rename packages/{owletto-backend => server}/src/gateway/permissions/policy-store.ts (100%) rename packages/{owletto-backend => server}/src/gateway/platform.ts (100%) rename packages/{owletto-backend => server}/src/gateway/platform/file-handler.ts (100%) rename packages/{owletto-backend => server}/src/gateway/platform/link-buttons.ts (100%) rename packages/{owletto-backend => server}/src/gateway/platform/response-renderer.ts (100%) rename packages/{owletto-backend => server}/src/gateway/platform/unified-thread-consumer.ts (100%) rename packages/{owletto-backend => server}/src/gateway/proxy/egress-judge/anthropic-client.ts (100%) rename packages/{owletto-backend => server}/src/gateway/proxy/egress-judge/cache.ts (100%) rename packages/{owletto-backend => server}/src/gateway/proxy/egress-judge/circuit-breaker.ts (100%) rename packages/{owletto-backend => server}/src/gateway/proxy/egress-judge/index.ts (100%) rename packages/{owletto-backend => server}/src/gateway/proxy/egress-judge/judge.ts (100%) rename packages/{owletto-backend => server}/src/gateway/proxy/egress-judge/policy-composer.ts (100%) rename packages/{owletto-backend => server}/src/gateway/proxy/egress-judge/types.ts (100%) rename packages/{owletto-backend => server}/src/gateway/proxy/http-proxy.ts (100%) rename packages/{owletto-backend => server}/src/gateway/proxy/proxy-manager.ts (100%) rename packages/{owletto-backend => server}/src/gateway/proxy/secret-proxy.ts (100%) rename packages/{owletto-backend => server}/src/gateway/proxy/token-refresh-job.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/internal/audio.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/internal/device-auth.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/internal/files.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/internal/history.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/internal/images.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/internal/interactions.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/internal/middleware.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/internal/types.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/openapi-auto.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/public/agent-config.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/public/agent-history.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/public/agent.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/public/agents.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/public/channels.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/public/connect-auth.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/public/connections.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/public/files.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/public/landing.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/public/mcp-oauth.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/public/oauth.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/public/settings-auth.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/public/slack.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/shared/agent-ownership.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/shared/helpers.ts (100%) rename packages/{owletto-backend => server}/src/gateway/routes/shared/token-verifier.ts (100%) rename packages/{owletto-backend => server}/src/gateway/secrets/index.ts (100%) rename packages/{owletto-backend => server}/src/gateway/services/agent-threads.ts (98%) rename packages/{owletto-backend => server}/src/gateway/services/bedrock-model-catalog.ts (100%) rename packages/{owletto-backend => server}/src/gateway/services/bedrock-openai-service.ts (100%) rename packages/{owletto-backend => server}/src/gateway/services/core-services.ts (100%) rename packages/{owletto-backend => server}/src/gateway/services/declared-agent-registry.ts (100%) rename packages/{owletto-backend => server}/src/gateway/services/image-generation-service.ts (100%) rename packages/{owletto-backend => server}/src/gateway/services/instruction-service.ts (100%) rename packages/{owletto-backend => server}/src/gateway/services/mcp-registry.ts (100%) rename packages/{owletto-backend => server}/src/gateway/services/platform-helpers.ts (99%) rename packages/{owletto-backend => server}/src/gateway/services/provider-config-resolver.ts (100%) rename packages/{owletto-backend => server}/src/gateway/services/provider-registry-service.ts (100%) rename packages/{owletto-backend => server}/src/gateway/services/session-manager.ts (100%) rename packages/{owletto-backend => server}/src/gateway/services/settings-resolver.ts (100%) rename packages/{owletto-backend => server}/src/gateway/services/sse-manager.ts (100%) rename packages/{owletto-backend => server}/src/gateway/services/transcription-service.ts (100%) rename packages/{owletto-backend => server}/src/gateway/session.ts (100%) rename packages/{owletto-backend => server}/src/gateway/spaces/index.ts (100%) rename packages/{owletto-backend => server}/src/gateway/spaces/space-resolver.ts (100%) rename packages/{owletto-backend => server}/src/gateway/stores/base-agent-store.ts (100%) rename packages/{owletto-backend => server}/src/gateway/stores/in-memory-agent-store.ts (100%) rename packages/{owletto-backend => server}/src/gateway/utils/public-url.ts (100%) rename packages/{owletto-backend => server}/src/gateway/utils/rate-limiter.ts (100%) rename packages/{owletto-backend => server}/src/gateway/watchers/run-tracker.ts (100%) rename packages/{owletto-backend => server}/src/http/spa-route-filter.ts (100%) rename packages/{owletto-backend => server}/src/identity/auth-hook.ts (100%) rename packages/{owletto-backend => server}/src/identity/capability-registry.ts (99%) rename packages/{owletto-backend => server}/src/identity/connectors/google.ts (98%) rename packages/{owletto-backend => server}/src/identity/connectors/index.ts (100%) rename packages/{owletto-backend => server}/src/identity/engine.ts (99%) rename packages/{owletto-backend => server}/src/identity/lock.ts (100%) rename packages/{owletto-backend => server}/src/identity/rules.ts (95%) rename packages/{owletto-backend => server}/src/identity/types.ts (94%) rename packages/{owletto-backend => server}/src/identity/validate.ts (99%) rename packages/{owletto-backend => server}/src/index.ts (98%) rename packages/{owletto-backend => server}/src/instrument.ts (100%) rename packages/{owletto-backend => server}/src/lib/feed-sync.ts (97%) rename packages/{owletto-backend => server}/src/lobu/__tests__/agent-routes-apply.test.ts (100%) rename packages/{owletto-backend => server}/src/lobu/agent-routes.ts (99%) rename packages/{owletto-backend => server}/src/lobu/client-routes.ts (100%) rename packages/{owletto-backend => server}/src/lobu/gateway.ts (100%) rename packages/{owletto-backend => server}/src/lobu/service-token.ts (100%) rename packages/{owletto-backend => server}/src/lobu/stores/__tests__/postgres-agent-config-store.test.ts (100%) rename packages/{owletto-backend => server}/src/lobu/stores/__tests__/postgres-secret-store.test.ts (100%) rename packages/{owletto-backend => server}/src/lobu/stores/__tests__/postgres-stores.test.ts (100%) rename packages/{owletto-backend => server}/src/lobu/stores/index.ts (100%) rename packages/{owletto-backend => server}/src/lobu/stores/org-context.ts (100%) rename packages/{owletto-backend => server}/src/lobu/stores/postgres-secret-store.ts (100%) rename packages/{owletto-backend => server}/src/lobu/stores/postgres-stores.ts (100%) rename packages/{owletto-backend => server}/src/mcp-handler.ts (100%) rename packages/{owletto-backend => server}/src/mcp-proxy/client.ts (100%) rename packages/{owletto-backend => server}/src/mcp-proxy/credential-resolver.ts (100%) rename packages/{owletto-backend => server}/src/mcp-proxy/types.ts (100%) rename packages/{owletto-backend => server}/src/mcp-session-store.ts (100%) rename packages/{owletto-backend => server}/src/notifications/routes.ts (100%) rename packages/{owletto-backend => server}/src/notifications/service.ts (100%) rename packages/{owletto-backend => server}/src/notifications/triggers.ts (100%) rename packages/{owletto-backend => server}/src/operations/catalog.ts (100%) rename packages/{owletto-backend => server}/src/operations/types.ts (100%) rename packages/{owletto-backend => server}/src/public-pages.ts (100%) rename packages/{owletto-backend => server}/src/rest-api.ts (100%) rename packages/{owletto-backend => server}/src/sandbox/client-sdk.ts (100%) rename packages/{owletto-backend => server}/src/sandbox/method-metadata.ts (100%) rename packages/{owletto-backend => server}/src/sandbox/namespaces/action-call.ts (100%) rename packages/{owletto-backend => server}/src/sandbox/namespaces/auth-profiles.ts (100%) rename packages/{owletto-backend => server}/src/sandbox/namespaces/classifiers.ts (100%) rename packages/{owletto-backend => server}/src/sandbox/namespaces/connections.ts (100%) rename packages/{owletto-backend => server}/src/sandbox/namespaces/entities.ts (100%) rename packages/{owletto-backend => server}/src/sandbox/namespaces/entity-schema.ts (100%) rename packages/{owletto-backend => server}/src/sandbox/namespaces/feeds.ts (100%) rename packages/{owletto-backend => server}/src/sandbox/namespaces/index.ts (100%) rename packages/{owletto-backend => server}/src/sandbox/namespaces/knowledge.ts (100%) rename packages/{owletto-backend => server}/src/sandbox/namespaces/operations.ts (100%) rename packages/{owletto-backend => server}/src/sandbox/namespaces/organizations.ts (100%) rename packages/{owletto-backend => server}/src/sandbox/namespaces/view-templates.ts (100%) rename packages/{owletto-backend => server}/src/sandbox/namespaces/watchers.ts (100%) rename packages/{owletto-backend => server}/src/sandbox/run-script.ts (100%) rename packages/{owletto-backend => server}/src/sandbox/sdk-manifest.ts (100%) rename packages/{owletto-backend => server}/src/sandbox/typebox-to-signature.ts (100%) rename packages/{owletto-backend => server}/src/scheduled/__tests__/task-scheduler.test.ts (100%) rename packages/{owletto-backend => server}/src/scheduled/check-due-feeds.ts (100%) rename packages/{owletto-backend => server}/src/scheduled/check-stalled-executions.ts (98%) rename packages/{owletto-backend => server}/src/scheduled/classification-reconciliation.ts (100%) rename packages/{owletto-backend => server}/src/scheduled/jobs.ts (99%) rename packages/{owletto-backend => server}/src/scheduled/scheduler-health.ts (100%) rename packages/{owletto-backend => server}/src/scheduled/task-scheduler.ts (100%) rename packages/{owletto-backend => server}/src/scheduled/trigger-embed-backfill.ts (100%) rename packages/{owletto-backend => server}/src/sentry.ts (100%) rename packages/{owletto-backend => server}/src/server.ts (96%) rename packages/{owletto-backend => server}/src/start-local.ts (99%) rename packages/{owletto-backend => server}/src/tools/__tests__/search-cross-org.test.ts (100%) rename packages/{owletto-backend => server}/src/tools/admin/__tests__/query_sql.test.ts (100%) rename packages/{owletto-backend => server}/src/tools/admin/action-router.ts (100%) rename packages/{owletto-backend => server}/src/tools/admin/connector-definition-helpers.ts (100%) rename packages/{owletto-backend => server}/src/tools/admin/helpers/connection-helpers.ts (100%) rename packages/{owletto-backend => server}/src/tools/admin/helpers/connector-definition-list.ts (100%) rename packages/{owletto-backend => server}/src/tools/admin/helpers/db-helpers.ts (100%) rename packages/{owletto-backend => server}/src/tools/admin/helpers/feed-helpers.ts (100%) rename packages/{owletto-backend => server}/src/tools/admin/index.ts (100%) rename packages/{owletto-backend => server}/src/tools/admin/manage_auth_profiles.ts (100%) rename packages/{owletto-backend => server}/src/tools/admin/manage_classifiers.ts (100%) rename packages/{owletto-backend => server}/src/tools/admin/manage_connections.ts (100%) rename packages/{owletto-backend => server}/src/tools/admin/manage_entity.ts (100%) rename packages/{owletto-backend => server}/src/tools/admin/manage_entity_schema.ts (99%) rename packages/{owletto-backend => server}/src/tools/admin/manage_feeds.ts (100%) rename packages/{owletto-backend => server}/src/tools/admin/manage_operations.ts (99%) rename packages/{owletto-backend => server}/src/tools/admin/manage_view_templates.ts (100%) rename packages/{owletto-backend => server}/src/tools/admin/manage_watchers.ts (100%) rename packages/{owletto-backend => server}/src/tools/admin/notify.ts (100%) rename packages/{owletto-backend => server}/src/tools/admin/query_sql.ts (100%) rename packages/{owletto-backend => server}/src/tools/admin/schemas/common-fields.ts (100%) rename packages/{owletto-backend => server}/src/tools/admin/view-template-helpers.ts (100%) rename packages/{owletto-backend => server}/src/tools/delete_content.ts (100%) rename packages/{owletto-backend => server}/src/tools/execute.ts (100%) rename packages/{owletto-backend => server}/src/tools/get_content.ts (99%) rename packages/{owletto-backend => server}/src/tools/get_watchers.ts (99%) rename packages/{owletto-backend => server}/src/tools/organizations.ts (100%) rename packages/{owletto-backend => server}/src/tools/registry.ts (100%) rename packages/{owletto-backend => server}/src/tools/resolve_path.ts (100%) rename packages/{owletto-backend => server}/src/tools/save_content.ts (99%) rename packages/{owletto-backend => server}/src/tools/sdk_run.ts (100%) rename packages/{owletto-backend => server}/src/tools/sdk_search.ts (100%) rename packages/{owletto-backend => server}/src/tools/search.ts (100%) rename packages/{owletto-backend => server}/src/types/isolated-vm.d.ts (100%) rename packages/{owletto-backend => server}/src/types/templates.ts (100%) rename packages/{owletto-backend => server}/src/types/watchers.ts (100%) rename packages/{owletto-backend => server}/src/utils/__tests__/auth-profiles.test.ts (100%) rename packages/{owletto-backend => server}/src/utils/__tests__/connector-auth.test.ts (100%) rename packages/{owletto-backend => server}/src/utils/__tests__/connector-catalog.test.ts (95%) rename packages/{owletto-backend => server}/src/utils/__tests__/content-query-filters.test.ts (100%) rename packages/{owletto-backend => server}/src/utils/__tests__/date-aliases.test.ts (100%) rename packages/{owletto-backend => server}/src/utils/__tests__/entity-link-upsert.test.ts (99%) rename packages/{owletto-backend => server}/src/utils/__tests__/entity-link-validation.test.ts (97%) rename packages/{owletto-backend => server}/src/utils/__tests__/entity-management-schema-search.test.ts (99%) rename packages/{owletto-backend => server}/src/utils/__tests__/identity-normalize.test.ts (99%) rename packages/{owletto-backend => server}/src/utils/__tests__/markdown-formatter.test.ts (100%) rename packages/{owletto-backend => server}/src/utils/__tests__/mcp-install-targets.test.ts (93%) rename packages/{owletto-backend => server}/src/utils/__tests__/migrations-format.test.ts (100%) rename packages/{owletto-backend => server}/src/utils/__tests__/owletto-guidance-sync.test.ts (95%) rename packages/{owletto-backend => server}/src/utils/__tests__/public-origin.test.ts (100%) rename packages/{owletto-backend => server}/src/utils/__tests__/runtime-info.test.ts (100%) rename packages/{owletto-backend => server}/src/utils/__tests__/sql-validation.test.ts (100%) rename packages/{owletto-backend => server}/src/utils/__tests__/table-schema.test.ts (100%) rename packages/{owletto-backend => server}/src/utils/__tests__/url-builder.test.ts (100%) rename packages/{owletto-backend => server}/src/utils/__tests__/watcher-time.test.ts (99%) rename packages/{owletto-backend => server}/src/utils/__tests__/window-utils.test.ts (100%) rename packages/{owletto-backend => server}/src/utils/ajv-singleton.ts (100%) rename packages/{owletto-backend => server}/src/utils/auth-profiles.ts (99%) rename packages/{owletto-backend => server}/src/utils/auto-linker.ts (100%) rename packages/{owletto-backend => server}/src/utils/classification-query.ts (100%) rename packages/{owletto-backend => server}/src/utils/compiler-core.ts (98%) rename packages/{owletto-backend => server}/src/utils/connect-tokens.ts (100%) rename packages/{owletto-backend => server}/src/utils/connector-auth.ts (99%) rename packages/{owletto-backend => server}/src/utils/connector-catalog.ts (96%) rename packages/{owletto-backend => server}/src/utils/connector-compiler.ts (97%) rename packages/{owletto-backend => server}/src/utils/connector-definition-install.ts (100%) rename packages/{owletto-backend => server}/src/utils/content-query-filters.ts (100%) rename packages/{owletto-backend => server}/src/utils/content-scoring.ts (100%) rename packages/{owletto-backend => server}/src/utils/content-search.ts (99%) rename packages/{owletto-backend => server}/src/utils/cron.ts (100%) rename packages/{owletto-backend => server}/src/utils/csp.ts (100%) rename packages/{owletto-backend => server}/src/utils/date-aliases.ts (98%) rename packages/{owletto-backend => server}/src/utils/embeddings.ts (100%) rename packages/{owletto-backend => server}/src/utils/ensure-connector-installed.ts (100%) rename packages/{owletto-backend => server}/src/utils/entity-hooks.ts (100%) rename packages/{owletto-backend => server}/src/utils/entity-link-overrides.ts (96%) rename packages/{owletto-backend => server}/src/utils/entity-link-upsert.ts (99%) rename packages/{owletto-backend => server}/src/utils/entity-link-validation.ts (99%) rename packages/{owletto-backend => server}/src/utils/entity-management.ts (99%) rename packages/{owletto-backend => server}/src/utils/env.ts (100%) rename packages/{owletto-backend => server}/src/utils/errors.ts (100%) rename packages/{owletto-backend => server}/src/utils/event-kind-validation.ts (100%) rename packages/{owletto-backend => server}/src/utils/execute-data-sources.ts (100%) rename packages/{owletto-backend => server}/src/utils/execution-context.ts (100%) rename packages/{owletto-backend => server}/src/utils/insert-event.ts (100%) rename packages/{owletto-backend => server}/src/utils/json.ts (100%) rename packages/{owletto-backend => server}/src/utils/jwt.ts (100%) rename packages/{owletto-backend => server}/src/utils/logger.ts (100%) rename packages/{owletto-backend => server}/src/utils/markdown-formatter.ts (100%) rename packages/{owletto-backend => server}/src/utils/member-entity-type.ts (100%) rename packages/{owletto-backend => server}/src/utils/member-entity.ts (100%) rename packages/{owletto-backend => server}/src/utils/member-redaction.ts (100%) rename packages/{owletto-backend => server}/src/utils/oauth-connection-state.ts (100%) rename packages/{owletto-backend => server}/src/utils/oauth-scopes.ts (100%) rename packages/{owletto-backend => server}/src/utils/openapi-generator.ts (100%) rename packages/{owletto-backend => server}/src/utils/organization-access.ts (100%) rename packages/{owletto-backend => server}/src/utils/pg-errors.ts (100%) rename packages/{owletto-backend => server}/src/utils/provisioned-connection.ts (100%) rename packages/{owletto-backend => server}/src/utils/public-origin.ts (88%) rename packages/{owletto-backend => server}/src/utils/query-expansion.ts (100%) rename packages/{owletto-backend => server}/src/utils/queue-helpers.ts (100%) rename packages/{owletto-backend => server}/src/utils/race-abort.ts (100%) rename packages/{owletto-backend => server}/src/utils/rate-limiter.ts (100%) rename packages/{owletto-backend => server}/src/utils/relationship-validation.ts (100%) rename packages/{owletto-backend => server}/src/utils/reserved.ts (100%) rename packages/{owletto-backend => server}/src/utils/resolve-usernames.ts (100%) rename packages/{owletto-backend => server}/src/utils/run-statuses.ts (100%) rename packages/{owletto-backend => server}/src/utils/runtime-info.ts (100%) rename packages/{owletto-backend => server}/src/utils/schema-validation.ts (100%) rename packages/{owletto-backend => server}/src/utils/scoring-profiles.ts (100%) rename packages/{owletto-backend => server}/src/utils/sql-validation.ts (100%) rename packages/{owletto-backend => server}/src/utils/stable-keys.test.ts (100%) rename packages/{owletto-backend => server}/src/utils/stable-keys.ts (100%) rename packages/{owletto-backend => server}/src/utils/table-schema.ts (100%) rename packages/{owletto-backend => server}/src/utils/template-renderer.ts (100%) rename packages/{owletto-backend => server}/src/utils/ttl-cache.ts (100%) rename packages/{owletto-backend => server}/src/utils/url-builder.ts (100%) rename packages/{owletto-backend => server}/src/utils/vector-math.ts (100%) rename packages/{owletto-backend => server}/src/utils/watcher-feedback.ts (100%) rename packages/{owletto-backend => server}/src/utils/watcher-reactions.ts (100%) rename packages/{owletto-backend => server}/src/utils/window-utils.ts (99%) rename packages/{owletto-backend => server}/src/utils/workspace-instructions.ts (100%) rename packages/{owletto-backend => server}/src/watchers/automation.ts (99%) rename packages/{owletto-backend => server}/src/watchers/classifier-extraction.ts (100%) rename packages/{owletto-backend => server}/src/watchers/reaction-executor.ts (98%) rename packages/{owletto-backend => server}/src/watchers/renderer.ts (100%) rename packages/{owletto-backend => server}/src/watchers/run-completion.ts (100%) rename packages/{owletto-backend => server}/src/watchers/validator.ts (100%) rename packages/{owletto-backend => server}/src/worker-api.ts (100%) rename packages/{owletto-backend => server}/src/workspace/__tests__/multi-tenant-auth-source.test.ts (100%) rename packages/{owletto-backend => server}/src/workspace/index.ts (100%) rename packages/{owletto-backend => server}/src/workspace/join-public.ts (100%) rename packages/{owletto-backend => server}/src/workspace/multi-tenant.ts (100%) rename packages/{owletto-backend => server}/src/workspace/types.ts (100%) rename packages/{owletto-backend => server}/tsconfig.json (100%) rename packages/{owletto-backend => server}/vitest.config.ts (100%) create mode 160000 packages/web diff --git a/.claude/commands/triage-pr.md b/.claude/commands/triage-pr.md index f7473458d..b3af138c4 100644 --- a/.claude/commands/triage-pr.md +++ b/.claude/commands/triage-pr.md @@ -59,7 +59,7 @@ Skip silently when: Classify as `needs-human` and exit when: -- Any changed file path is under `packages/owletto-web/` — submodule two-PR rule (AGENTS.md). The agent must never push a parent commit referencing an unmerged submodule SHA. +- Any changed file path is under `packages/web/` — submodule two-PR rule (AGENTS.md). The agent must never push a parent commit referencing an unmerged submodule SHA. - Any changed file path is under `.github/workflows/` or is `scripts/setup-dev.sh` — infra blast radius. - Any changed file path is `.github/triage-config.yml` or `.claude/commands/triage-pr.md` — these define triage policy itself. A PR modifying them must not be evaluated by the (potentially-modified) policy on its own branch; the agent escalates so a human can review the change against `main`. - Any review comment contains case-insensitive: `security`, `credential`, `token`, `secret`, `auth bypass`, `P0`, or `P1`. @@ -208,6 +208,6 @@ The marker line at the top is parsed by future runs to short-circuit on matching - **Never split unnecessarily.** Do not propose splitting a PR whose title scope is consistent and whose size is under the 1000-line gate, even if it touches multiple files. - **`.js` import suffix in TS sources.** When fixing imports, add `.js` extensions to relative imports (NodeNext resolution). - **Typecheck drift.** Always run BOTH `make build-packages` (package-local tsc emit) and `bun run typecheck` (root tsc check) — they catch different things. -- **Submodule two-PR rule.** Any change under `packages/owletto-web/` → `needs-human`, full stop. +- **Submodule two-PR rule.** Any change under `packages/web/` → `needs-human`, full stop. - **Unused parameters.** Delete them; never prefix with `_`. - **Bun, not npm.** Hooks enforce this. diff --git a/.github/actions/setup-submodule/action.yml b/.github/actions/setup-submodule/action.yml index 45728b535..5d14b4ecd 100644 --- a/.github/actions/setup-submodule/action.yml +++ b/.github/actions/setup-submodule/action.yml @@ -1,6 +1,6 @@ name: "Set up private submodule" description: > - Checks out packages/owletto-web via deploy key when available. For forks and + Checks out packages/web via deploy key when available. For forks and runs without the secret, writes a stub package.json so bun workspaces still resolve (the web assets just won't build). @@ -30,7 +30,7 @@ runs: run: | set -euo pipefail git config --global url."git@github.com:lobu-ai/owletto-web.git".insteadOf "https://github.com/lobu-ai/owletto-web.git" - git submodule update --init --recursive packages/owletto-web + git submodule update --init --recursive packages/web - name: Write stub package.json when submodule is unavailable id: stub @@ -38,8 +38,8 @@ runs: shell: bash run: | set -euo pipefail - echo "No deploy key — writing stub package.json for packages/owletto-web" - mkdir -p packages/owletto-web + echo "No deploy key — writing stub package.json for packages/web" + mkdir -p packages/web # The stub omits the real submodule's deps, which means # `bun install --frozen-lockfile` will fail against bun.lock. # Callers should branch on the `stubbed` output to relax checks @@ -52,5 +52,5 @@ runs: ' "version": "1.6.0",' \ ' "description": "Stub — private submodule not initialized"' \ '}' \ - > packages/owletto-web/package.json + > packages/web/package.json echo "stubbed=true" >> "$GITHUB_OUTPUT" diff --git a/.github/triage-config.yml b/.github/triage-config.yml index abee8a43d..a5949c16a 100644 --- a/.github/triage-config.yml +++ b/.github/triage-config.yml @@ -25,7 +25,7 @@ infra_paths: # Submodule two-PR rule. Any change under these is needs-human. two_pr_paths: - - packages/owletto-web/ + - packages/web/ # Comment substring matches (case-insensitive) that escalate to needs-human. escalation_keywords: diff --git a/.github/workflows/build-images.yml b/.github/workflows/build-images.yml index 1563348db..4f75af8cb 100644 --- a/.github/workflows/build-images.yml +++ b/.github/workflows/build-images.yml @@ -16,8 +16,8 @@ env: # tracking ghcr.io/lobu-ai/owletto-{app,worker,embeddings} after the # owletto -> lobu monorepo consolidation. IMAGE_NAME_APP: lobu-ai/owletto-app - IMAGE_NAME_WORKER: lobu-ai/owletto-worker - IMAGE_NAME_EMBEDDINGS: lobu-ai/owletto-embeddings + IMAGE_NAME_WORKER: lobu-ai/connector-worker + IMAGE_NAME_EMBEDDINGS: lobu-ai/embeddings jobs: generate-tag: @@ -140,7 +140,7 @@ jobs: -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ -H "X-GitHub-Api-Version: 2022-11-28" \ - https://api.github.com/user/packages/container/owletto-worker/visibility \ + https://api.github.com/user/packages/container/connector-worker/visibility \ -d '{"visibility":"public"}' || true build-embeddings-service: @@ -190,5 +190,5 @@ jobs: -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ -H "X-GitHub-Api-Version: 2022-11-28" \ - https://api.github.com/user/packages/container/owletto-embeddings/visibility \ + https://api.github.com/user/packages/container/embeddings/visibility \ -d '{"visibility":"public"}' || true diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 81b8ebe54..3d7b9f2e6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,7 +28,7 @@ jobs: - name: Install bubblewrap (for embedded exec-sandbox tests) # The worker exec-sandbox uses bwrap on Linux; without it, the live - # bwrap escape-matrix tests in `packages/worker/src/__tests__/exec-sandbox.test.ts` + # bwrap escape-matrix tests in `packages/agent-worker/src/__tests__/exec-sandbox.test.ts` # auto-skip and we lose the only Linux verification path. # Ubuntu 24.04 (ubuntu-latest) blocks unprivileged user namespaces via # AppArmor by default; bwrap needs them, so flip the sysctl. See @@ -54,14 +54,14 @@ jobs: # install it in the worker runtime image" before it ships. run: node scripts/check-connector-runtime-deps.mjs - - name: Build core + sdk + owletto-worker for downstream type-resolution - # owletto-worker integration tests import from its compiled `dist/` + - name: Build core + sdk + connector-worker for downstream type-resolution + # connector-worker integration tests import from its compiled `dist/` # (subprocess-mode tests spawn the built executor); build it here # so those run. run: | cd packages/core && bun run build && cd ../.. - cd packages/owletto-sdk && bun run build && cd ../.. - cd packages/owletto-worker && bun run build && cd ../.. + cd packages/connector-sdk && bun run build && cd ../.. + cd packages/connector-worker && bun run build && cd ../.. - name: core / cli (bun:test) run: bun test packages/core packages/cli --coverage @@ -72,23 +72,23 @@ jobs: # passes; if Linux turns out different we'll narrow this back down, # but we own the WASM concern via run-script-runtime.test.ts under # Node + isolated-vm in the integration job below. - run: bun test packages/worker + run: bun test packages/agent-worker - - name: owletto-backend (bun:test units) + - name: server (bun:test units) # The gateway code that used to live in packages/gateway is now under # src/gateway/. Its DB-backed bun:test suite needs Postgres and runs # in the integration job below; here we only run the pure-unit # subdirectories that don't touch Postgres. run: | - bun test packages/owletto-backend/src/__tests__/unit - bun test packages/owletto-backend/src/auth/__tests__/tool-access.test.ts - bun test packages/owletto-backend/src/gateway/infrastructure/queue + bun test packages/server/src/__tests__/unit + bun test packages/server/src/auth/__tests__/tool-access.test.ts + bun test packages/server/src/gateway/infrastructure/queue - - name: owletto-worker (bun:test) - # owletto-openclaw e2e tests need a live backend and belong in the + - name: connector-worker (bun:test) + # openclaw-plugin e2e tests need a live backend and belong in the # smoke-example workflow, not the unit job. run: | - bun test packages/owletto-worker + bun test packages/connector-worker - name: Upload coverage if: always() @@ -118,9 +118,9 @@ jobs: if: steps.submodule.outputs.stubbed != 'true' run: bun install - - name: Build owletto-sdk (owletto-web imports its compiled dist) + - name: Build connector-sdk (owletto-web imports its compiled dist) if: steps.submodule.outputs.stubbed != 'true' - run: cd packages/owletto-sdk && bun run build + run: cd packages/connector-sdk && bun run build - name: owletto-web tests (vitest) # owletto-web doesn't define a `test` script in its package.json yet @@ -128,7 +128,7 @@ jobs: # directly via the workspace-installed binary so this works on # whatever submodule SHA the parent repo points at. if: steps.submodule.outputs.stubbed != 'true' - run: cd packages/owletto-web && ../../node_modules/.bin/vitest run + run: cd packages/web && ../../node_modules/.bin/vitest run # Backend integration tests need a real Postgres + pgvector. We run them # under Node (not bun) for two reasons: (1) the vitest suite uses Node-only @@ -173,10 +173,10 @@ jobs: - name: Install dependencies run: bun install - - name: Build packages owletto-backend depends on + - name: Build packages server depends on run: | cd packages/core && bun run build && cd ../.. - cd packages/owletto-sdk && bun run build && cd ../.. + cd packages/connector-sdk && bun run build && cd ../.. - name: Verify Postgres health (fail fast if pgvector setup is broken) run: | @@ -187,22 +187,22 @@ jobs: PGPASSWORD=postgres psql -h 127.0.0.1 -p 5433 -U postgres -d owletto_test \ -c "CREATE EXTENSION IF NOT EXISTS vector" - - name: owletto-backend integration suite (vitest under Node) - working-directory: packages/owletto-backend + - name: server integration suite (vitest under Node) + working-directory: packages/server run: node ../../node_modules/.bin/vitest run --reporter=default - - name: owletto-backend gateway suite (bun:test, needs Postgres) + - name: server gateway suite (bun:test, needs Postgres) # The gateway code that used to live in packages/gateway is now under # src/gateway/__tests__/. These bun:test files are excluded from # vitest (see vitest.config.ts) and need a real Postgres, so they run # here in the integration job. - working-directory: packages/owletto-backend + working-directory: packages/server run: bun test src/gateway/__tests__ - - name: owletto-backend lobu route suite (bun:test, needs Postgres) + - name: server lobu route suite (bun:test, needs Postgres) # These bun:test files live outside src/gateway and are also excluded # from vitest because they import bun:test directly. - working-directory: packages/owletto-backend + working-directory: packages/server run: bun test src/lobu/__tests__ src/workspace/__tests__ format-lint: @@ -255,12 +255,12 @@ jobs: # Root tsconfig excludes these packages, so `bun run typecheck` # above never sees them. Run each package's own tsc here so a # type error can't reach main and break the npm publish at - # release time. owletto-connectors and landing are intentionally + # release time. connectors and landing are intentionally # left out — they need preconditions (DOM lib, `astro sync`) # that belong to their own build pipelines. run: | set -euo pipefail - for pkg in owletto-backend owletto-worker owletto-sdk owletto-openclaw owletto-embeddings owletto-extension cli; do + for pkg in server connector-worker connector-sdk openclaw-plugin embeddings browser-extension cli; do echo "::group::typecheck $pkg" (cd "packages/$pkg" && bunx tsc --noEmit) echo "::endgroup::" diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index 0267c3304..d998e6c39 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -86,17 +86,17 @@ jobs: - name: Build packages run: bun run build - # Frontend (owletto-web) ships with the product but isn't covered by + # Frontend (web) ships with the product but isn't covered by # any other PR check: root `bun run build` skips it, and the root - # tsconfig excludes packages/owletto-web. Without this gate, a TS error + # tsconfig excludes packages/web. Without this gate, a TS error # in the submodule (or a stale submodule pointer) can silently regress # the deploy. - # Build owletto-sdk first because owletto-web imports its compiled dist. - - name: Build frontend (owletto-web) + # Build connector-sdk first because the web submodule imports its compiled dist. + - name: Build frontend (web) if: steps.submodule.outputs.stubbed != 'true' run: | - cd packages/owletto-sdk && bun run build && cd ../.. - cd packages/owletto-web && bun run build + cd packages/connector-sdk && bun run build && cd ../.. + cd packages/web && bun run build - name: Verify no uncommitted changes if: steps.submodule.outputs.stubbed != 'true' diff --git a/.github/workflows/submodule-drift.yml b/.github/workflows/submodule-drift.yml index 93bfe785a..ff9473043 100644 --- a/.github/workflows/submodule-drift.yml +++ b/.github/workflows/submodule-drift.yml @@ -1,6 +1,6 @@ name: Submodule Drift -# Surfaces when packages/owletto-web (private) has merged commits past the +# Surfaces when packages/web (private) has merged commits past the # parent's pinned SHA — i.e. the two-PR rule's parent bump is missing. # Bot tag-update commits (FluxCD image automation) are exempted only when both # the author and exact subject match — a sloppy human commit cannot slip past. @@ -47,10 +47,10 @@ jobs: # actions/checkout@v4 with default fetch-depth=1 only has the merge # commit; pull the two endpoints by SHA so ls-tree can resolve them. git fetch --depth=1 origin "$BASE_SHA" "$HEAD_SHA" - base_pointer=$(git ls-tree "$BASE_SHA" packages/owletto-web | awk '{print $3}') - head_pointer=$(git ls-tree "$HEAD_SHA" packages/owletto-web | awk '{print $3}') + base_pointer=$(git ls-tree "$BASE_SHA" packages/web | awk '{print $3}') + head_pointer=$(git ls-tree "$HEAD_SHA" packages/web | awk '{print $3}') if [ "$base_pointer" != "$head_pointer" ]; then - echo "::error::Fork PRs cannot change the packages/owletto-web pointer." + echo "::error::Fork PRs cannot change the packages/web pointer." echo " base: $base_pointer" echo " head: $head_pointer" echo "Submodule bumps must come from a same-repo PR (deploy-key-authorized)." @@ -72,16 +72,16 @@ jobs: shell: bash run: | set -euo pipefail - PINNED=$(git -C packages/owletto-web rev-parse HEAD) - git -C packages/owletto-web fetch --quiet origin main - REMOTE=$(git -C packages/owletto-web rev-parse origin/main) + PINNED=$(git -C packages/web rev-parse HEAD) + git -C packages/web fetch --quiet origin main + REMOTE=$(git -C packages/web rev-parse origin/main) echo "Pinned (parent): $PINNED" echo "owletto-web/main: $REMOTE" # Hard rule: parent must never pin a SHA that isn't on owletto-web/main. # FluxCD reads charts from owletto-web/main; an off-main pin breaks deploy. - if ! git -C packages/owletto-web merge-base --is-ancestor "$PINNED" origin/main; then + if ! git -C packages/web merge-base --is-ancestor "$PINNED" origin/main; then echo "::error::Pinned SHA $PINNED is not reachable from owletto-web/main." echo "This violates the rule against pinning unmerged submodule SHAs (see AGENTS.md)." exit 1 @@ -95,7 +95,7 @@ jobs: # Capture the log first so set -e propagates a git failure (process # substitution would swallow it). tformat: guarantees a trailing # newline so `read` doesn't drop the last commit. - LOG=$(git -C packages/owletto-web log \ + LOG=$(git -C packages/web log \ --pretty='tformat:%h|%ae|%s' "$PINNED..origin/main") # Walk each commit; exempt only those whose author email AND exact @@ -106,7 +106,7 @@ jobs: while IFS='|' read -r sha email subject; do [ -z "$sha" ] && continue if [ "$email" = "$BOT_AUTHOR_EMAIL" ] && [ "$subject" = "$BOT_SUBJECT" ]; then - outside=$(git -C packages/owletto-web show --name-only \ + outside=$(git -C packages/web show --name-only \ --pretty='format:' "$sha" \ | sed '/^$/d' \ | grep -v '^deploy/' || true) @@ -132,8 +132,8 @@ jobs: printf '%s' "$DRIFT" echo "" echo "Fix (open as a separate PR):" - echo " git -C packages/owletto-web fetch origin" - echo " git -C packages/owletto-web checkout origin/main" - echo " git add packages/owletto-web" + echo " git -C packages/web fetch origin" + echo " git -C packages/web checkout origin/main" + echo " git add packages/web" echo " git commit -m 'chore(submodule): bump owletto-web to current main'" exit 1 diff --git a/.gitignore b/.gitignore index 78e4077bd..55a094e4d 100644 --- a/.gitignore +++ b/.gitignore @@ -48,14 +48,14 @@ data/ dump.rdb # Auto-generated page CSS -packages/owletto-backend/src/gateway/routes/public/page-styles.ts +packages/server/src/gateway/routes/public/page-styles.ts packages/owletto-cli/runtime/ # Auto-generated history page JS bundle -packages/owletto-backend/src/gateway/routes/public/history-page-bundle.ts -packages/owletto-backend/src/gateway/routes/public/agent-page-bundle.ts -packages/owletto-backend/src/gateway/routes/public/agents-page-bundle.ts -packages/owletto-backend/src/gateway/routes/public/agents-page-bundle.raw.js +packages/server/src/gateway/routes/public/history-page-bundle.ts +packages/server/src/gateway/routes/public/agent-page-bundle.ts +packages/server/src/gateway/routes/public/agents-page-bundle.ts +packages/server/src/gateway/routes/public/agents-page-bundle.raw.js # Astro build artifacts packages/landing/.astro/ diff --git a/.gitmodules b/.gitmodules index d75cb107d..338f2d52e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "packages/owletto-web"] - path = packages/owletto-web +[submodule "packages/web"] + path = packages/web url = https://github.com/lobu-ai/owletto-web.git diff --git a/AGENTS.md b/AGENTS.md index 775e90f1f..ad6aa9ee7 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2,8 +2,8 @@ ### Package Architecture - **`packages/core`**: Shared code between gateway and worker (interfaces, utils, types). Any code reused by both must live here. -- **`packages/gateway`**: Platform-agnostic gateway. Platform connections managed via Chat SDK adapters in `src/connections/`. Orchestration under `src/orchestration/`. -- **`packages/worker`**: Agent execution via OpenClaw runtime in `src/openclaw/`. Worker talks only to gateway and agent. No platform knowledge. +- **`packages/server`**: Embedded server plus platform-agnostic gateway. Gateway platform connections live in `src/gateway/connections/`; orchestration lives under `src/gateway/orchestration/`. +- **`packages/agent-worker`**: Agent execution via OpenClaw runtime in `src/openclaw/`. Worker talks only to gateway and agent. No platform knowledge. ### Module Boundaries - Gateway: Connections → `src/connections/`, orchestration → `src/orchestration/`, Slack OAuth routes → `src/routes/public/slack.ts` @@ -19,15 +19,15 @@ - When fixing unused-parameter errors, delete the parameter rather than prefixing with `_`. ### Submodules -`packages/owletto-web` is a submodule of `lobu-ai/owletto-web`. Every change there ships as **two PRs**: (1) land the submodule PR; (2) open a parent PR that bumps the pointer. Never push a parent commit that references an unmerged submodule SHA — production resolves SHAs from the parent and will break. After the submodule PR merges: `git -C packages/owletto-web pull --ff-only origin main`, stage the submodule in the parent, open the bump PR. +`packages/web` is a submodule of `lobu-ai/owletto-web`. Every change there ships as **two PRs**: (1) land the submodule PR; (2) open a parent PR that bumps the pointer. Never push a parent commit that references an unmerged submodule SHA — production resolves SHAs from the parent and will break. After the submodule PR merges: `git -C packages/web pull --ff-only origin main`, stage the submodule in the parent, open the bump PR. -### Frontend (owletto-web) -When editing UI under `packages/owletto-web`, follow the design rules in @packages/owletto-web/DESIGN_GUIDELINES.md — confirmations, surfaces, empty states, selection, forms, page copy, radius, Sheet vs Dialog. Match the existing components and exemplar files referenced there; do not introduce new primitives without updating the guideline in the same PR. +### Frontend (web) +When editing UI under `packages/web`, follow the design rules in @packages/web/DESIGN_GUIDELINES.md — confirmations, surfaces, empty states, selection, forms, page copy, radius, Sheet vs Dialog. Match the existing components and exemplar files referenced there; do not introduce new primitives without updating the guideline in the same PR. ### Architecture #### Platform -All chat platforms (Telegram, Slack, Discord, WhatsApp, Teams) run through Chat SDK adapters in `packages/gateway/src/connections/`. Connections are created via the `/agents` admin UI or the connections CRUD API — no per-platform env vars. Each connection has a typed config schema (bot token for Telegram, signing secret + bot token for Slack, etc.). Gateway also exposes a public endpoint that triggers an agent run. Settings-page provider order is drag-sortable, with per-provider model selection inline. +All chat platforms (Telegram, Slack, Discord, WhatsApp, Teams) run through Chat SDK adapters in `packages/server/src/gateway/connections/`. Connections are created via the `/agents` admin UI or the connections CRUD API — no per-platform env vars. Each connection has a typed config schema (bot token for Telegram, signing secret + bot token for Slack, etc.). Gateway also exposes a public endpoint that triggers an agent run. Settings-page provider order is drag-sortable, with per-provider model selection inline. #### Orchestration - **Embedded-only deployment.** Gateway, workers, embeddings, and the Owletto memory backend run in a single Node process (`lobu run`, or `bun run dev` in the monorepo). Workers spawn as `child_process.spawn` subprocesses on the same host; on Linux the spawn path uses `systemd-run --user --scope` for cgroup limits + IPAddressDeny + capability drops. There is no Docker or Kubernetes deployment manager. @@ -60,7 +60,7 @@ All chat platforms (Telegram, Slack, Discord, WhatsApp, Teams) run through Chat - `WORKER_ENV_*` gateway vars are forwarded to workers with the prefix stripped (`WORKER_ENV_FOO=bar` → `FOO=bar`). Use only for worker runtime env, not the default Owletto memory plugin config. #### Egress judge -Skills and agents can route risky domains through an LLM judge instead of a flat allow/deny. Hooks into the same HTTP proxy at `packages/gateway/src/proxy/http-proxy.ts`; invoked only when a `judgedDomains` rule matches, so most traffic bypasses the judge. +Skills and agents can route risky domains through an LLM judge instead of a flat allow/deny. Hooks into the same HTTP proxy at `packages/server/src/gateway/proxy/http-proxy.ts`; invoked only when a `judgedDomains` rule matches, so most traffic bypasses the judge. - Skill YAML declares judged domains + named policies: ```yaml @@ -102,7 +102,7 @@ Rules for agents: - Don't create `*.md` files unless explicitly asked. Add memory to `CLAUDE.md` as a single sentence. - Delete any ephemeral files you create. - Ignore `/dist/` — compiled artifacts, not source. -- After editing `packages/worker/*`, run `make clean-workers` so new workers pick up the change. +- After editing `packages/agent-worker/*`, run `make clean-workers` so new workers pick up the change. - When the user pastes a Slack link (`slack.com/archives/…?thread_ts=`), call `./scripts/slack-thread-viewer.js ""` first. - In planning mode, when unsure, ask: `codex exec "QUESTION" --config model_reasoning_effort="high"`. @@ -138,7 +138,7 @@ Run the validation that matches what you touched: | Change | Command | | --- | --- | | `packages/landing/*` | `cd packages/landing && bun run build` | -| `packages/{core,gateway,worker,cli}/*` | `make build-packages` | +| `packages/{core,server,agent-worker,cli}/*` | `make build-packages` | | Broad TS check | `bun run typecheck` | For MCP work, verify tool calls against the gateway proxy or Owletto directly (e.g. via `bun -e`) before exercising the full agent loop. diff --git a/CLAUDE.md b/CLAUDE.md index 5c87a816a..a0811e9f2 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2,8 +2,8 @@ ## Local-only references -- `../owletto` (i.e. `/Users/burakemre/Code/owletto`) is the Owletto source repo. The OpenClaw memory plugin published as `@lobu/owletto-openclaw` lives in `packages/openclaw-plugin` there. +- `../owletto` (i.e. `/Users/burakemre/Code/owletto`) is the Owletto source repo. The OpenClaw memory plugin published as `@lobu/openclaw-plugin` lives in `packages/openclaw-plugin` there. ## Owletto -The live Owletto MCP server, ClientSDK, sandbox, and tool registry are in `packages/owletto-backend/` of this repo. Prod runs the bundled Node entry (`packages/owletto-backend/dist/server.bundle.mjs`, built via `bun run build:server`) — same artifact that `lobu run` invokes. Any question about Owletto behavior — MCP tools, instructions, sandbox, SDK, auth — is answered from that path. +The live Owletto MCP server, ClientSDK, sandbox, and tool registry are in `packages/server/` of this repo. Prod runs the bundled Node entry (`packages/server/dist/server.bundle.mjs`, built via `bun run build:server`) — same artifact that `lobu run` invokes. Any question about Owletto behavior — MCP tools, instructions, sandbox, SDK, auth — is answered from that path. diff --git a/Makefile b/Makefile index 2b696e667..0e8c67dae 100644 --- a/Makefile +++ b/Makefile @@ -15,26 +15,30 @@ help: # Build all TypeScript packages in dependency order build-packages: @echo "📦 Building all TypeScript packages..." - @for pkg in core owletto-sdk worker; do \ + @for pkg in core connector-sdk agent-worker openclaw-plugin connector-worker embeddings; do \ echo " 📦 Building packages/$$pkg..."; \ ( cd packages/$$pkg && bun run build ) || exit $$?; \ done + @echo " 📦 Building packages/server bundle..." + @( cd packages/server && bun run build:server ) || exit $$? + @echo " 📦 Building packages/cli..." + @( cd packages/cli && bun run build ) || exit $$? @echo "✅ All packages built successfully!" -# Ensure packages/owletto-web is initialized; warn on drift but don't auto-fix +# Ensure packages/web is initialized; warn on drift but don't auto-fix # (drift may be active feature-branch work — clobbering it silently is worse than the warning). ensure-submodule: - @status=$$(git submodule status packages/owletto-web 2>/dev/null || true); \ + @status=$$(git submodule status packages/web 2>/dev/null || true); \ case "$$status" in \ - '-'*) echo ">> owletto-web submodule not initialized — running git submodule update --init --recursive"; \ - git submodule update --init --recursive packages/owletto-web ;; \ - '+'*) echo ">> WARNING: packages/owletto-web is at a different SHA than the parent pin:"; \ + '-'*) echo ">> web submodule not initialized — running git submodule update --init --recursive"; \ + git submodule update --init --recursive packages/web ;; \ + '+'*) echo ">> WARNING: packages/web is at a different SHA than the parent pin:"; \ echo " $$status"; \ - echo " If this is unintentional, run: git submodule update packages/owletto-web" ;; \ + echo " If this is unintentional, run: git submodule update packages/web" ;; \ *) ;; \ esac -# Start the embedded Lobu stack: owletto-backend + embedded gateway + workers, +# Start the embedded Lobu stack: server + embedded gateway + workers, # all in-process. Requires Postgres via DATABASE_URL. dev: ensure-submodule @./scripts/dev-native.sh @@ -60,6 +64,6 @@ eval: # safety net for orphaned bun processes spawned by EmbeddedDeploymentManager. clean-workers: @echo "🧹 Stopping embedded worker subprocesses..." - @pkill -f 'packages/worker/src/index.ts' 2>/dev/null || true + @pkill -f 'packages/agent-worker/src/index.ts' 2>/dev/null || true @pkill -f '@lobu/worker' 2>/dev/null || true @echo "✅ Worker subprocesses stopped" diff --git a/README.md b/README.md index 83d00ace3..978b1cb74 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Local `lobu.toml` projects are still useful for `lobu validate` and `lobu apply` Single-process Node app. Run it however you run Node — `node`, `pm2`, `systemd`, or another process supervisor. The app needs `DATABASE_URL` (Postgres + pgvector) reachable from its environment; no orchestrator is required and there is no Helm chart to install. - **Local dev** (contributing to Lobu itself): clone, `make setup`, `make dev` (boots embedded gateway + workers + Vite HMR on `:8787`). -- **Production**: `bun run --cwd packages/owletto-backend build:server`, then `node packages/owletto-backend/dist/server.bundle.mjs` under your process supervisor of choice. +- **Production**: `bun run --cwd packages/server build:server`, then `node packages/server/dist/server.bundle.mjs` under your process supervisor of choice. ## Architecture diff --git a/bun.lock b/bun.lock index a0dd52da1..132720afb 100644 --- a/bun.lock +++ b/bun.lock @@ -14,6 +14,49 @@ "typescript": "^5.8.3", }, }, + "packages/agent-worker": { + "name": "@lobu/worker", + "version": "5.0.0", + "bin": { + "lobu-worker": "./dist/index.js", + }, + "dependencies": { + "@hono/node-server": "^1.19.9", + "@lobu/core": "workspace:*", + "@mariozechner/pi-agent-core": "^0.51.6", + "@mariozechner/pi-ai": "^0.51.6", + "@mariozechner/pi-coding-agent": "^0.51.6", + "@sentry/node": "^10.6.0", + "@sinclair/typebox": "^0.34.33", + "form-data": "^4.0.4", + "hono": "^4.11.7", + "just-bash": "^2.12.8", + "zod": "^3.24.1", + }, + "devDependencies": { + "@types/node": "^20.0.0", + "typescript": "^5.8.3", + }, + "peerDependencies": { + "bun": ">=1.0.0", + }, + }, + "packages/browser-extension": { + "name": "@lobu/browser-extension", + "version": "1.6.0", + "dependencies": { + "react": "^19.0.0", + "react-dom": "^19.0.0", + }, + "devDependencies": { + "@types/chrome": "^0.0.260", + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", + "@vitejs/plugin-react": "^4.2.0", + "typescript": "^5.3.0", + "vite": "^6.4.2", + }, + }, "packages/cli": { "name": "@lobu/cli", "version": "5.0.0", @@ -34,8 +77,8 @@ "@hono/node-server": "^1.19.9", "@hono/zod-openapi": "^1.2.1", "@inquirer/prompts": "^7.10.1", + "@lobu/connector-sdk": "workspace:*", "@lobu/core": "workspace:*", - "@lobu/owletto-sdk": "workspace:*", "@lobu/worker": "workspace:*", "@mariozechner/pi-ai": "^0.51.6", "@modelcontextprotocol/sdk": "^1.27.1", @@ -92,6 +135,54 @@ "isolated-vm": "^6.1.2", }, }, + "packages/connector-sdk": { + "name": "@lobu/connector-sdk", + "version": "5.0.0", + "dependencies": { + "@sinclair/typebox": "^0.34.41", + "ky": "^1.14.0", + "p-retry": "^7.1.0", + "pino": "^10.1.0", + }, + "devDependencies": { + "@types/node": "^20.10.0", + "typescript": "^5.3.3", + }, + "peerDependencies": { + "playwright": "npm:patchright@^1.57.0", + }, + "optionalPeers": [ + "playwright", + ], + }, + "packages/connector-worker": { + "name": "@lobu/connector-worker", + "version": "1.6.0", + "bin": { + "connector-worker": "./dist/bin.js", + }, + "dependencies": { + "@lobu/connector-sdk": "workspace:*", + "@lobu/worker": "workspace:*", + "@xenova/transformers": "^2.17.2", + "jimp": "^1.6.0", + "playwright": "npm:patchright@^1.57.0", + "sharp": "^0.34.4", + }, + "devDependencies": { + "@types/node": "^20.10.0", + "tsx": "^4.7.0", + "typescript": "^5.3.3", + }, + }, + "packages/connectors": { + "name": "@lobu/connectors", + "version": "1.6.0", + "dependencies": { + "@lobu/connector-sdk": "workspace:*", + "playwright": "npm:patchright@^1.57.0", + }, + }, "packages/core": { "name": "@lobu/core", "version": "5.0.0", @@ -111,6 +202,20 @@ "typescript": "^5.8.3", }, }, + "packages/embeddings": { + "name": "@lobu/embeddings", + "version": "1.6.0", + "dependencies": { + "@hono/node-server": "^1.13.7", + "@xenova/transformers": "^2.17.2", + "hono": "^4.10.4", + }, + "devDependencies": { + "@types/node": "^22.10.2", + "tsx": "^4.19.2", + "typescript": "^5.7.2", + }, + }, "packages/landing": { "name": "@lobu/landing", "version": "3.0.8", @@ -128,8 +233,56 @@ "typescript": "^5.8.3", }, }, - "packages/owletto-backend": { - "name": "@lobu/owletto-backend", + "packages/openclaw-plugin": { + "name": "@lobu/openclaw-plugin", + "version": "5.0.0", + "devDependencies": { + "@types/node": "^20.10.0", + "postgres": "^3.4.7", + "typescript": "^5.3.3", + "vitest": "^2.1.8", + }, + }, + "packages/owletto-connectors": { + "name": "@lobu/owletto-connectors", + "version": "1.6.0", + "dependencies": { + "@lobu/connectors": "workspace:*", + }, + }, + "packages/owletto-embeddings": { + "name": "@lobu/owletto-embeddings", + "version": "1.6.0", + "dependencies": { + "@lobu/embeddings": "workspace:*", + }, + }, + "packages/owletto-openclaw": { + "name": "@lobu/owletto-openclaw", + "version": "5.0.0", + "dependencies": { + "@lobu/openclaw-plugin": "workspace:*", + }, + }, + "packages/owletto-sdk": { + "name": "@lobu/owletto-sdk", + "version": "5.0.0", + "dependencies": { + "@lobu/connector-sdk": "workspace:*", + }, + }, + "packages/owletto-worker": { + "name": "@lobu/owletto-worker", + "version": "1.6.0", + "bin": { + "owletto-worker": "./bin/owletto-worker.js", + }, + "dependencies": { + "@lobu/connector-worker": "workspace:*", + }, + }, + "packages/server": { + "name": "@lobu/server", "version": "1.6.0", "dependencies": { "@anthropic-ai/sdk": "^0.90.0", @@ -143,8 +296,8 @@ "@chat-adapter/whatsapp": "4.26.0", "@hono/node-server": "^1.13.7", "@hono/zod-openapi": "^1.2.1", + "@lobu/connector-sdk": "workspace:*", "@lobu/core": "workspace:*", - "@lobu/owletto-sdk": "workspace:*", "@mariozechner/pi-ai": "^0.51.6", "@modelcontextprotocol/sdk": "^1.27.1", "@polyglot-sql/sdk": "^0.1.13", @@ -190,75 +343,7 @@ "isolated-vm": "^6.1.2", }, }, - "packages/owletto-connectors": { - "name": "@lobu/owletto-connectors", - "version": "1.6.0", - "dependencies": { - "@lobu/owletto-sdk": "workspace:*", - "playwright": "npm:patchright@^1.57.0", - }, - }, - "packages/owletto-embeddings": { - "name": "@lobu/owletto-embeddings", - "version": "1.6.0", - "dependencies": { - "@hono/node-server": "^1.13.7", - "@xenova/transformers": "^2.17.2", - "hono": "^4.10.4", - }, - "devDependencies": { - "@types/node": "^22.10.2", - "tsx": "^4.19.2", - "typescript": "^5.7.2", - }, - }, - "packages/owletto-extension": { - "name": "@lobu/owletto-extension", - "version": "1.6.0", - "dependencies": { - "react": "^19.0.0", - "react-dom": "^19.0.0", - }, - "devDependencies": { - "@types/chrome": "^0.0.260", - "@types/react": "^19.0.0", - "@types/react-dom": "^19.0.0", - "@vitejs/plugin-react": "^4.2.0", - "typescript": "^5.3.0", - "vite": "^6.4.2", - }, - }, - "packages/owletto-openclaw": { - "name": "@lobu/owletto-openclaw", - "version": "5.0.0", - "devDependencies": { - "@types/node": "^20.10.0", - "postgres": "^3.4.7", - "typescript": "^5.3.3", - "vitest": "^2.1.8", - }, - }, - "packages/owletto-sdk": { - "name": "@lobu/owletto-sdk", - "version": "5.0.0", - "dependencies": { - "@sinclair/typebox": "^0.34.41", - "ky": "^1.14.0", - "p-retry": "^7.1.0", - "pino": "^10.1.0", - }, - "devDependencies": { - "@types/node": "^20.10.0", - "typescript": "^5.3.3", - }, - "peerDependencies": { - "playwright": "npm:patchright@^1.57.0", - }, - "optionalPeers": [ - "playwright", - ], - }, - "packages/owletto-web": { + "packages/web": { "name": "@owletto/web", "version": "1.6.0", "dependencies": { @@ -328,53 +413,6 @@ "vitest": "^2.1.8", }, }, - "packages/owletto-worker": { - "name": "@lobu/owletto-worker", - "version": "1.6.0", - "bin": { - "owletto-worker": "./dist/bin.js", - }, - "dependencies": { - "@lobu/owletto-sdk": "workspace:*", - "@lobu/worker": "workspace:*", - "@xenova/transformers": "^2.17.2", - "jimp": "^1.6.0", - "playwright": "npm:patchright@^1.57.0", - "sharp": "^0.34.4", - }, - "devDependencies": { - "@types/node": "^20.10.0", - "tsx": "^4.7.0", - "typescript": "^5.3.3", - }, - }, - "packages/worker": { - "name": "@lobu/worker", - "version": "5.0.0", - "bin": { - "lobu-worker": "./dist/index.js", - }, - "dependencies": { - "@hono/node-server": "^1.19.9", - "@lobu/core": "workspace:*", - "@mariozechner/pi-agent-core": "^0.51.6", - "@mariozechner/pi-ai": "^0.51.6", - "@mariozechner/pi-coding-agent": "^0.51.6", - "@sentry/node": "^10.6.0", - "@sinclair/typebox": "^0.34.33", - "form-data": "^4.0.4", - "hono": "^4.11.7", - "just-bash": "^2.12.8", - "zod": "^3.24.1", - }, - "devDependencies": { - "@types/node": "^20.0.0", - "typescript": "^5.8.3", - }, - "peerDependencies": { - "bun": ">=1.0.0", - }, - }, }, "overrides": { "@types/node": "20.19.9", @@ -972,27 +1010,37 @@ "@lezer/lr": ["@lezer/lr@1.4.10", "", { "dependencies": { "@lezer/common": "^1.0.0" } }, "sha512-rnCpTIBafOx4mRp43xOxDJbFipJm/c0cia/V5TiGlhmMa+wsSdoGmUN3w5Bqrks/09Q/D4tNAmWaT8p6NRi77A=="], + "@lobu/browser-extension": ["@lobu/browser-extension@workspace:packages/browser-extension"], + "@lobu/cli": ["@lobu/cli@workspace:packages/cli"], + "@lobu/connector-sdk": ["@lobu/connector-sdk@workspace:packages/connector-sdk"], + + "@lobu/connector-worker": ["@lobu/connector-worker@workspace:packages/connector-worker"], + + "@lobu/connectors": ["@lobu/connectors@workspace:packages/connectors"], + "@lobu/core": ["@lobu/core@workspace:packages/core"], + "@lobu/embeddings": ["@lobu/embeddings@workspace:packages/embeddings"], + "@lobu/landing": ["@lobu/landing@workspace:packages/landing"], - "@lobu/owletto-backend": ["@lobu/owletto-backend@workspace:packages/owletto-backend"], + "@lobu/openclaw-plugin": ["@lobu/openclaw-plugin@workspace:packages/openclaw-plugin"], "@lobu/owletto-connectors": ["@lobu/owletto-connectors@workspace:packages/owletto-connectors"], "@lobu/owletto-embeddings": ["@lobu/owletto-embeddings@workspace:packages/owletto-embeddings"], - "@lobu/owletto-extension": ["@lobu/owletto-extension@workspace:packages/owletto-extension"], - "@lobu/owletto-openclaw": ["@lobu/owletto-openclaw@workspace:packages/owletto-openclaw"], "@lobu/owletto-sdk": ["@lobu/owletto-sdk@workspace:packages/owletto-sdk"], "@lobu/owletto-worker": ["@lobu/owletto-worker@workspace:packages/owletto-worker"], - "@lobu/worker": ["@lobu/worker@workspace:packages/worker"], + "@lobu/server": ["@lobu/server@workspace:packages/server"], + + "@lobu/worker": ["@lobu/worker@workspace:packages/agent-worker"], "@marijn/find-cluster-break": ["@marijn/find-cluster-break@1.0.2", "", {}, "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g=="], @@ -1184,7 +1232,7 @@ "@oven/bun-windows-x64-baseline": ["@oven/bun-windows-x64-baseline@1.3.13", "", { "os": "win32", "cpu": "x64" }, "sha512-6gy4hhQSjq/T/S9hC9m3NxY0RY+9Ww+XNlB+8koIMTsMSYEjk7Ho+hFHQz1Bn4W61Ub7Vykufg+jgDgPfa2GFA=="], - "@owletto/web": ["@owletto/web@workspace:packages/owletto-web"], + "@owletto/web": ["@owletto/web@workspace:packages/web"], "@oxc-resolver/binding-android-arm-eabi": ["@oxc-resolver/binding-android-arm-eabi@11.19.1", "", { "os": "android", "cpu": "arm" }, "sha512-aUs47y+xyXHUKlbhqHUjBABjvycq6YSD7bpxSW7vplUmdzAlJ93yXY6ZR0c1o1x5A/QKbENCvs3+NlY8IpIVzg=="], @@ -2374,7 +2422,7 @@ "fs-extra": ["fs-extra@11.3.4", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA=="], - "fsevents": ["fsevents@2.3.2", "", { "os": "darwin" }, "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="], + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], @@ -3874,9 +3922,9 @@ "@jsonforms/core/ajv-formats": ["ajv-formats@2.1.1", "", { "dependencies": { "ajv": "^8.0.0" } }, "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA=="], - "@lobu/owletto-backend/@sentry/node": ["@sentry/node@9.47.1", "", { "dependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^1.30.1", "@opentelemetry/core": "^1.30.1", "@opentelemetry/instrumentation": "^0.57.2", "@opentelemetry/instrumentation-amqplib": "^0.46.1", "@opentelemetry/instrumentation-connect": "0.43.1", "@opentelemetry/instrumentation-dataloader": "0.16.1", "@opentelemetry/instrumentation-express": "0.47.1", "@opentelemetry/instrumentation-fs": "0.19.1", "@opentelemetry/instrumentation-generic-pool": "0.43.1", "@opentelemetry/instrumentation-graphql": "0.47.1", "@opentelemetry/instrumentation-hapi": "0.45.2", "@opentelemetry/instrumentation-http": "0.57.2", "@opentelemetry/instrumentation-ioredis": "0.47.1", "@opentelemetry/instrumentation-kafkajs": "0.7.1", "@opentelemetry/instrumentation-knex": "0.44.1", "@opentelemetry/instrumentation-koa": "0.47.1", "@opentelemetry/instrumentation-lru-memoizer": "0.44.1", "@opentelemetry/instrumentation-mongodb": "0.52.0", "@opentelemetry/instrumentation-mongoose": "0.46.1", "@opentelemetry/instrumentation-mysql": "0.45.1", "@opentelemetry/instrumentation-mysql2": "0.45.2", "@opentelemetry/instrumentation-pg": "0.51.1", "@opentelemetry/instrumentation-redis-4": "0.46.1", "@opentelemetry/instrumentation-tedious": "0.18.1", "@opentelemetry/instrumentation-undici": "0.10.1", "@opentelemetry/resources": "^1.30.1", "@opentelemetry/sdk-trace-base": "^1.30.1", "@opentelemetry/semantic-conventions": "^1.34.0", "@prisma/instrumentation": "6.11.1", "@sentry/core": "9.47.1", "@sentry/node-core": "9.47.1", "@sentry/opentelemetry": "9.47.1", "import-in-the-middle": "^1.14.2", "minimatch": "^9.0.0" } }, "sha512-CDbkasBz3fnWRKSFs6mmaRepM2pa+tbZkrqhPWifFfIkJDidtVW40p6OnquTvPXyPAszCnDZRnZT14xyvNmKPQ=="], + "@lobu/server/@sentry/node": ["@sentry/node@9.47.1", "", { "dependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^1.30.1", "@opentelemetry/core": "^1.30.1", "@opentelemetry/instrumentation": "^0.57.2", "@opentelemetry/instrumentation-amqplib": "^0.46.1", "@opentelemetry/instrumentation-connect": "0.43.1", "@opentelemetry/instrumentation-dataloader": "0.16.1", "@opentelemetry/instrumentation-express": "0.47.1", "@opentelemetry/instrumentation-fs": "0.19.1", "@opentelemetry/instrumentation-generic-pool": "0.43.1", "@opentelemetry/instrumentation-graphql": "0.47.1", "@opentelemetry/instrumentation-hapi": "0.45.2", "@opentelemetry/instrumentation-http": "0.57.2", "@opentelemetry/instrumentation-ioredis": "0.47.1", "@opentelemetry/instrumentation-kafkajs": "0.7.1", "@opentelemetry/instrumentation-knex": "0.44.1", "@opentelemetry/instrumentation-koa": "0.47.1", "@opentelemetry/instrumentation-lru-memoizer": "0.44.1", "@opentelemetry/instrumentation-mongodb": "0.52.0", "@opentelemetry/instrumentation-mongoose": "0.46.1", "@opentelemetry/instrumentation-mysql": "0.45.1", "@opentelemetry/instrumentation-mysql2": "0.45.2", "@opentelemetry/instrumentation-pg": "0.51.1", "@opentelemetry/instrumentation-redis-4": "0.46.1", "@opentelemetry/instrumentation-tedious": "0.18.1", "@opentelemetry/instrumentation-undici": "0.10.1", "@opentelemetry/resources": "^1.30.1", "@opentelemetry/sdk-trace-base": "^1.30.1", "@opentelemetry/semantic-conventions": "^1.34.0", "@prisma/instrumentation": "6.11.1", "@sentry/core": "9.47.1", "@sentry/node-core": "9.47.1", "@sentry/opentelemetry": "9.47.1", "import-in-the-middle": "^1.14.2", "minimatch": "^9.0.0" } }, "sha512-CDbkasBz3fnWRKSFs6mmaRepM2pa+tbZkrqhPWifFfIkJDidtVW40p6OnquTvPXyPAszCnDZRnZT14xyvNmKPQ=="], - "@lobu/owletto-backend/dotenv": ["dotenv@16.6.1", "", {}, "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow=="], + "@lobu/server/dotenv": ["dotenv@16.6.1", "", {}, "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow=="], "@lobu/worker/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], @@ -4058,8 +4106,6 @@ "axios/proxy-from-env": ["proxy-from-env@2.1.0", "", {}, "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA=="], - "chokidar/fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], - "cli-highlight/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], "cli-highlight/parse5": ["parse5@5.1.1", "", {}, "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug=="], @@ -4146,6 +4192,8 @@ "pixelmatch/pngjs": ["pngjs@6.0.0", "", {}, "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg=="], + "playwright/fsevents": ["fsevents@2.3.2", "", { "os": "darwin" }, "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="], + "prebuild-install/tar-fs": ["tar-fs@2.1.4", "", { "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^2.1.4" } }, "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ=="], "pretty-format/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], @@ -4168,6 +4216,8 @@ "restore-cursor/signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], + "rollup/fsevents": ["fsevents@2.3.2", "", { "os": "darwin" }, "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="], + "router/path-to-regexp": ["path-to-regexp@8.4.2", "", {}, "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA=="], "seek-bzip/commander": ["commander@6.2.1", "", {}, "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA=="], @@ -4186,8 +4236,6 @@ "test-exclude/minimatch": ["minimatch@10.2.5", "", { "dependencies": { "brace-expansion": "^5.0.5" } }, "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg=="], - "tsx/fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], - "tsyringe/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], "type-is/mime-types": ["mime-types@3.0.2", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="], @@ -4196,8 +4244,6 @@ "vite/esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="], - "vite/fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], - "vite-node/es-module-lexer": ["es-module-lexer@1.7.0", "", {}, "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA=="], "vite-node/vite": ["vite@5.4.21", "", { "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", "rollup": "^4.20.0" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" }, "optionalPeers": ["@types/node", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser"], "bin": { "vite": "bin/vite.js" } }, "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw=="], @@ -4252,55 +4298,55 @@ "@isaacs/cliui/wrap-ansi/ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation": ["@opentelemetry/instrumentation@0.57.2", "", { "dependencies": { "@opentelemetry/api-logs": "0.57.2", "@types/shimmer": "^1.2.0", "import-in-the-middle": "^1.8.1", "require-in-the-middle": "^7.1.1", "semver": "^7.5.2", "shimmer": "^1.2.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation": ["@opentelemetry/instrumentation@0.57.2", "", { "dependencies": { "@opentelemetry/api-logs": "0.57.2", "@types/shimmer": "^1.2.0", "import-in-the-middle": "^1.8.1", "require-in-the-middle": "^7.1.1", "semver": "^7.5.2", "shimmer": "^1.2.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-amqplib": ["@opentelemetry/instrumentation-amqplib@0.46.1", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-amqplib": ["@opentelemetry/instrumentation-amqplib@0.46.1", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-connect": ["@opentelemetry/instrumentation-connect@0.43.1", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/connect": "3.4.38" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-ht7YGWQuV5BopMcw5Q2hXn3I8eG8TH0J/kc/GMcW4CuNTgiP6wCu44BOnucJWL3CmFWaRHI//vWyAhaC8BwePw=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-connect": ["@opentelemetry/instrumentation-connect@0.43.1", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/connect": "3.4.38" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-ht7YGWQuV5BopMcw5Q2hXn3I8eG8TH0J/kc/GMcW4CuNTgiP6wCu44BOnucJWL3CmFWaRHI//vWyAhaC8BwePw=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-dataloader": ["@opentelemetry/instrumentation-dataloader@0.16.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-K/qU4CjnzOpNkkKO4DfCLSQshejRNAJtd4esgigo/50nxCB6XCyi1dhAblUHM9jG5dRm8eu0FB+t87nIo99LYQ=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-dataloader": ["@opentelemetry/instrumentation-dataloader@0.16.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-K/qU4CjnzOpNkkKO4DfCLSQshejRNAJtd4esgigo/50nxCB6XCyi1dhAblUHM9jG5dRm8eu0FB+t87nIo99LYQ=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-fs": ["@opentelemetry/instrumentation-fs@0.19.1", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-6g0FhB3B9UobAR60BGTcXg4IHZ6aaYJzp0Ki5FhnxyAPt8Ns+9SSvgcrnsN2eGmk3RWG5vYycUGOEApycQL24A=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-fs": ["@opentelemetry/instrumentation-fs@0.19.1", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-6g0FhB3B9UobAR60BGTcXg4IHZ6aaYJzp0Ki5FhnxyAPt8Ns+9SSvgcrnsN2eGmk3RWG5vYycUGOEApycQL24A=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-generic-pool": ["@opentelemetry/instrumentation-generic-pool@0.43.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-M6qGYsp1cURtvVLGDrPPZemMFEbuMmCXgQYTReC/IbimV5sGrLBjB+/hANUpRZjX67nGLdKSVLZuQQAiNz+sww=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-generic-pool": ["@opentelemetry/instrumentation-generic-pool@0.43.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-M6qGYsp1cURtvVLGDrPPZemMFEbuMmCXgQYTReC/IbimV5sGrLBjB+/hANUpRZjX67nGLdKSVLZuQQAiNz+sww=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-graphql": ["@opentelemetry/instrumentation-graphql@0.47.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-EGQRWMGqwiuVma8ZLAZnExQ7sBvbOx0N/AE/nlafISPs8S+QtXX+Viy6dcQwVWwYHQPAcuY3bFt3xgoAwb4ZNQ=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-graphql": ["@opentelemetry/instrumentation-graphql@0.47.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-EGQRWMGqwiuVma8ZLAZnExQ7sBvbOx0N/AE/nlafISPs8S+QtXX+Viy6dcQwVWwYHQPAcuY3bFt3xgoAwb4ZNQ=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-hapi": ["@opentelemetry/instrumentation-hapi@0.45.2", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-7Ehow/7Wp3aoyCrZwQpU7a2CnoMq0XhIcioFuKjBb0PLYfBfmTsFTUyatlHu0fRxhwcRsSQRTvEhmZu8CppBpQ=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-hapi": ["@opentelemetry/instrumentation-hapi@0.45.2", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-7Ehow/7Wp3aoyCrZwQpU7a2CnoMq0XhIcioFuKjBb0PLYfBfmTsFTUyatlHu0fRxhwcRsSQRTvEhmZu8CppBpQ=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-http": ["@opentelemetry/instrumentation-http@0.57.2", "", { "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/instrumentation": "0.57.2", "@opentelemetry/semantic-conventions": "1.28.0", "forwarded-parse": "2.1.2", "semver": "^7.5.2" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-1Uz5iJ9ZAlFOiPuwYg29Bf7bJJc/GeoeJIFKJYQf67nTVKFe8RHbEtxgkOmK4UGZNHKXcpW4P8cWBYzBn1USpg=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-http": ["@opentelemetry/instrumentation-http@0.57.2", "", { "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/instrumentation": "0.57.2", "@opentelemetry/semantic-conventions": "1.28.0", "forwarded-parse": "2.1.2", "semver": "^7.5.2" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-1Uz5iJ9ZAlFOiPuwYg29Bf7bJJc/GeoeJIFKJYQf67nTVKFe8RHbEtxgkOmK4UGZNHKXcpW4P8cWBYzBn1USpg=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-ioredis": ["@opentelemetry/instrumentation-ioredis@0.47.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/redis-common": "^0.36.2", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-OtFGSN+kgk/aoKgdkKQnBsQFDiG8WdCxu+UrHr0bXScdAmtSzLSraLo7wFIb25RVHfRWvzI5kZomqJYEg/l1iA=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-ioredis": ["@opentelemetry/instrumentation-ioredis@0.47.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/redis-common": "^0.36.2", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-OtFGSN+kgk/aoKgdkKQnBsQFDiG8WdCxu+UrHr0bXScdAmtSzLSraLo7wFIb25RVHfRWvzI5kZomqJYEg/l1iA=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-kafkajs": ["@opentelemetry/instrumentation-kafkajs@0.7.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-OtjaKs8H7oysfErajdYr1yuWSjMAectT7Dwr+axIoZqT9lmEOkD/H/3rgAs8h/NIuEi2imSXD+vL4MZtOuJfqQ=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-kafkajs": ["@opentelemetry/instrumentation-kafkajs@0.7.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-OtjaKs8H7oysfErajdYr1yuWSjMAectT7Dwr+axIoZqT9lmEOkD/H/3rgAs8h/NIuEi2imSXD+vL4MZtOuJfqQ=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-knex": ["@opentelemetry/instrumentation-knex@0.44.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-U4dQxkNhvPexffjEmGwCq68FuftFK15JgUF05y/HlK3M6W/G2iEaACIfXdSnwVNe9Qh0sPfw8LbOPxrWzGWGMQ=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-knex": ["@opentelemetry/instrumentation-knex@0.44.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-U4dQxkNhvPexffjEmGwCq68FuftFK15JgUF05y/HlK3M6W/G2iEaACIfXdSnwVNe9Qh0sPfw8LbOPxrWzGWGMQ=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-koa": ["@opentelemetry/instrumentation-koa@0.47.1", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-l/c+Z9F86cOiPJUllUCt09v+kICKvT+Vg1vOAJHtHPsJIzurGayucfCMq2acd/A/yxeNWunl9d9eqZ0G+XiI6A=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-koa": ["@opentelemetry/instrumentation-koa@0.47.1", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-l/c+Z9F86cOiPJUllUCt09v+kICKvT+Vg1vOAJHtHPsJIzurGayucfCMq2acd/A/yxeNWunl9d9eqZ0G+XiI6A=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-lru-memoizer": ["@opentelemetry/instrumentation-lru-memoizer@0.44.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-5MPkYCvG2yw7WONEjYj5lr5JFehTobW7wX+ZUFy81oF2lr9IPfZk9qO+FTaM0bGEiymwfLwKe6jE15nHn1nmHg=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-lru-memoizer": ["@opentelemetry/instrumentation-lru-memoizer@0.44.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-5MPkYCvG2yw7WONEjYj5lr5JFehTobW7wX+ZUFy81oF2lr9IPfZk9qO+FTaM0bGEiymwfLwKe6jE15nHn1nmHg=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-mongodb": ["@opentelemetry/instrumentation-mongodb@0.52.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-1xmAqOtRUQGR7QfJFfGV/M2kC7wmI2WgZdpru8hJl3S0r4hW0n3OQpEHlSGXJAaNFyvT+ilnwkT+g5L4ljHR6g=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-mongodb": ["@opentelemetry/instrumentation-mongodb@0.52.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-1xmAqOtRUQGR7QfJFfGV/M2kC7wmI2WgZdpru8hJl3S0r4hW0n3OQpEHlSGXJAaNFyvT+ilnwkT+g5L4ljHR6g=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-mongoose": ["@opentelemetry/instrumentation-mongoose@0.46.1", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-3kINtW1LUTPkiXFRSSBmva1SXzS/72we/jL22N+BnF3DFcoewkdkHPYOIdAAk9gSicJ4d5Ojtt1/HeibEc5OQg=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-mongoose": ["@opentelemetry/instrumentation-mongoose@0.46.1", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-3kINtW1LUTPkiXFRSSBmva1SXzS/72we/jL22N+BnF3DFcoewkdkHPYOIdAAk9gSicJ4d5Ojtt1/HeibEc5OQg=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-mysql": ["@opentelemetry/instrumentation-mysql@0.45.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/mysql": "2.15.26" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-TKp4hQ8iKQsY7vnp/j0yJJ4ZsP109Ht6l4RHTj0lNEG1TfgTrIH5vJMbgmoYXWzNHAqBH2e7fncN12p3BP8LFg=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-mysql": ["@opentelemetry/instrumentation-mysql@0.45.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/mysql": "2.15.26" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-TKp4hQ8iKQsY7vnp/j0yJJ4ZsP109Ht6l4RHTj0lNEG1TfgTrIH5vJMbgmoYXWzNHAqBH2e7fncN12p3BP8LFg=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-mysql2": ["@opentelemetry/instrumentation-mysql2@0.45.2", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@opentelemetry/sql-common": "^0.40.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-h6Ad60FjCYdJZ5DTz1Lk2VmQsShiViKe0G7sYikb0GHI0NVvApp2XQNRHNjEMz87roFttGPLHOYVPlfy+yVIhQ=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-mysql2": ["@opentelemetry/instrumentation-mysql2@0.45.2", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@opentelemetry/sql-common": "^0.40.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-h6Ad60FjCYdJZ5DTz1Lk2VmQsShiViKe0G7sYikb0GHI0NVvApp2XQNRHNjEMz87roFttGPLHOYVPlfy+yVIhQ=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-pg": ["@opentelemetry/instrumentation-pg@0.51.1", "", { "dependencies": { "@opentelemetry/core": "^1.26.0", "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@opentelemetry/sql-common": "^0.40.1", "@types/pg": "8.6.1", "@types/pg-pool": "2.0.6" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-QxgjSrxyWZc7Vk+qGSfsejPVFL1AgAJdSBMYZdDUbwg730D09ub3PXScB9d04vIqPriZ+0dqzjmQx0yWKiCi2Q=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-pg": ["@opentelemetry/instrumentation-pg@0.51.1", "", { "dependencies": { "@opentelemetry/core": "^1.26.0", "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@opentelemetry/sql-common": "^0.40.1", "@types/pg": "8.6.1", "@types/pg-pool": "2.0.6" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-QxgjSrxyWZc7Vk+qGSfsejPVFL1AgAJdSBMYZdDUbwg730D09ub3PXScB9d04vIqPriZ+0dqzjmQx0yWKiCi2Q=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-tedious": ["@opentelemetry/instrumentation-tedious@0.18.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/tedious": "^4.0.14" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-5Cuy/nj0HBaH+ZJ4leuD7RjgvA844aY2WW+B5uLcWtxGjRZl3MNLuxnNg5DYWZNPO+NafSSnra0q49KWAHsKBg=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-tedious": ["@opentelemetry/instrumentation-tedious@0.18.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/tedious": "^4.0.14" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-5Cuy/nj0HBaH+ZJ4leuD7RjgvA844aY2WW+B5uLcWtxGjRZl3MNLuxnNg5DYWZNPO+NafSSnra0q49KWAHsKBg=="], - "@lobu/owletto-backend/@sentry/node/@prisma/instrumentation": ["@prisma/instrumentation@6.11.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0" }, "peerDependencies": { "@opentelemetry/api": "^1.8" } }, "sha512-mrZOev24EDhnefmnZX7WVVT7v+r9LttPRqf54ONvj6re4XMF7wFTpK2tLJi4XHB7fFp/6xhYbgRel8YV7gQiyA=="], + "@lobu/server/@sentry/node/@prisma/instrumentation": ["@prisma/instrumentation@6.11.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0" }, "peerDependencies": { "@opentelemetry/api": "^1.8" } }, "sha512-mrZOev24EDhnefmnZX7WVVT7v+r9LttPRqf54ONvj6re4XMF7wFTpK2tLJi4XHB7fFp/6xhYbgRel8YV7gQiyA=="], - "@lobu/owletto-backend/@sentry/node/@sentry/core": ["@sentry/core@9.47.1", "", {}, "sha512-KX62+qIt4xgy8eHKHiikfhz2p5fOciXd0Cl+dNzhgPFq8klq4MGMNaf148GB3M/vBqP4nw/eFvRMAayFCgdRQw=="], + "@lobu/server/@sentry/node/@sentry/core": ["@sentry/core@9.47.1", "", {}, "sha512-KX62+qIt4xgy8eHKHiikfhz2p5fOciXd0Cl+dNzhgPFq8klq4MGMNaf148GB3M/vBqP4nw/eFvRMAayFCgdRQw=="], - "@lobu/owletto-backend/@sentry/node/@sentry/node-core": ["@sentry/node-core@9.47.1", "", { "dependencies": { "@sentry/core": "9.47.1", "@sentry/opentelemetry": "9.47.1", "import-in-the-middle": "^1.14.2" }, "peerDependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^1.30.1 || ^2.0.0", "@opentelemetry/core": "^1.30.1 || ^2.0.0", "@opentelemetry/instrumentation": ">=0.57.1 <1", "@opentelemetry/resources": "^1.30.1 || ^2.0.0", "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.0.0", "@opentelemetry/semantic-conventions": "^1.34.0" } }, "sha512-7TEOiCGkyShJ8CKtsri9lbgMCbB+qNts2Xq37itiMPN2m+lIukK3OX//L8DC5nfKYZlgikrefS63/vJtm669hQ=="], + "@lobu/server/@sentry/node/@sentry/node-core": ["@sentry/node-core@9.47.1", "", { "dependencies": { "@sentry/core": "9.47.1", "@sentry/opentelemetry": "9.47.1", "import-in-the-middle": "^1.14.2" }, "peerDependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^1.30.1 || ^2.0.0", "@opentelemetry/core": "^1.30.1 || ^2.0.0", "@opentelemetry/instrumentation": ">=0.57.1 <1", "@opentelemetry/resources": "^1.30.1 || ^2.0.0", "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.0.0", "@opentelemetry/semantic-conventions": "^1.34.0" } }, "sha512-7TEOiCGkyShJ8CKtsri9lbgMCbB+qNts2Xq37itiMPN2m+lIukK3OX//L8DC5nfKYZlgikrefS63/vJtm669hQ=="], - "@lobu/owletto-backend/@sentry/node/@sentry/opentelemetry": ["@sentry/opentelemetry@9.47.1", "", { "dependencies": { "@sentry/core": "9.47.1" }, "peerDependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^1.30.1 || ^2.0.0", "@opentelemetry/core": "^1.30.1 || ^2.0.0", "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.0.0", "@opentelemetry/semantic-conventions": "^1.34.0" } }, "sha512-STtFpjF7lwzeoedDJV+5XA6P89BfmFwFftmHSGSe3UTI8z8IoiR5yB6X2vCjSPvXlfeOs13qCNNCEZyznxM8Xw=="], + "@lobu/server/@sentry/node/@sentry/opentelemetry": ["@sentry/opentelemetry@9.47.1", "", { "dependencies": { "@sentry/core": "9.47.1" }, "peerDependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^1.30.1 || ^2.0.0", "@opentelemetry/core": "^1.30.1 || ^2.0.0", "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.0.0", "@opentelemetry/semantic-conventions": "^1.34.0" } }, "sha512-STtFpjF7lwzeoedDJV+5XA6P89BfmFwFftmHSGSe3UTI8z8IoiR5yB6X2vCjSPvXlfeOs13qCNNCEZyznxM8Xw=="], - "@lobu/owletto-backend/@sentry/node/import-in-the-middle": ["import-in-the-middle@1.15.0", "", { "dependencies": { "acorn": "^8.14.0", "acorn-import-attributes": "^1.9.5", "cjs-module-lexer": "^1.2.2", "module-details-from-path": "^1.0.3" } }, "sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA=="], + "@lobu/server/@sentry/node/import-in-the-middle": ["import-in-the-middle@1.15.0", "", { "dependencies": { "acorn": "^8.14.0", "acorn-import-attributes": "^1.9.5", "cjs-module-lexer": "^1.2.2", "module-details-from-path": "^1.0.3" } }, "sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA=="], "@mariozechner/pi-coding-agent/minimatch/brace-expansion": ["brace-expansion@5.0.5", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ=="], @@ -4360,8 +4406,6 @@ "accepts/mime-types/mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="], - "astro/vite/fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], - "cli-highlight/yargs/cliui": ["cliui@7.0.4", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ=="], "cli-highlight/yargs/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], @@ -4412,8 +4456,6 @@ "vite-node/vite/esbuild": ["esbuild@0.21.5", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.21.5", "@esbuild/android-arm": "0.21.5", "@esbuild/android-arm64": "0.21.5", "@esbuild/android-x64": "0.21.5", "@esbuild/darwin-arm64": "0.21.5", "@esbuild/darwin-x64": "0.21.5", "@esbuild/freebsd-arm64": "0.21.5", "@esbuild/freebsd-x64": "0.21.5", "@esbuild/linux-arm": "0.21.5", "@esbuild/linux-arm64": "0.21.5", "@esbuild/linux-ia32": "0.21.5", "@esbuild/linux-loong64": "0.21.5", "@esbuild/linux-mips64el": "0.21.5", "@esbuild/linux-ppc64": "0.21.5", "@esbuild/linux-riscv64": "0.21.5", "@esbuild/linux-s390x": "0.21.5", "@esbuild/linux-x64": "0.21.5", "@esbuild/netbsd-x64": "0.21.5", "@esbuild/openbsd-x64": "0.21.5", "@esbuild/sunos-x64": "0.21.5", "@esbuild/win32-arm64": "0.21.5", "@esbuild/win32-ia32": "0.21.5", "@esbuild/win32-x64": "0.21.5" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw=="], - "vite-node/vite/fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], - "vite/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="], "vite/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="], @@ -4468,8 +4510,6 @@ "vitest/vite/esbuild": ["esbuild@0.21.5", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.21.5", "@esbuild/android-arm": "0.21.5", "@esbuild/android-arm64": "0.21.5", "@esbuild/android-x64": "0.21.5", "@esbuild/darwin-arm64": "0.21.5", "@esbuild/darwin-x64": "0.21.5", "@esbuild/freebsd-arm64": "0.21.5", "@esbuild/freebsd-x64": "0.21.5", "@esbuild/linux-arm": "0.21.5", "@esbuild/linux-arm64": "0.21.5", "@esbuild/linux-ia32": "0.21.5", "@esbuild/linux-loong64": "0.21.5", "@esbuild/linux-mips64el": "0.21.5", "@esbuild/linux-ppc64": "0.21.5", "@esbuild/linux-riscv64": "0.21.5", "@esbuild/linux-s390x": "0.21.5", "@esbuild/linux-x64": "0.21.5", "@esbuild/netbsd-x64": "0.21.5", "@esbuild/openbsd-x64": "0.21.5", "@esbuild/sunos-x64": "0.21.5", "@esbuild/win32-arm64": "0.21.5", "@esbuild/win32-ia32": "0.21.5", "@esbuild/win32-x64": "0.21.5" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw=="], - "vitest/vite/fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], - "wrap-ansi-cjs/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], "wrap-ansi-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], @@ -4488,23 +4528,23 @@ "@fastify/otel/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation/require-in-the-middle": ["require-in-the-middle@7.5.2", "", { "dependencies": { "debug": "^4.3.5", "module-details-from-path": "^1.0.3", "resolve": "^1.22.8" } }, "sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation/require-in-the-middle": ["require-in-the-middle@7.5.2", "", { "dependencies": { "debug": "^4.3.5", "module-details-from-path": "^1.0.3", "resolve": "^1.22.8" } }, "sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-http/@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.28.0", "", {}, "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-http/@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.28.0", "", {}, "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-ioredis/@opentelemetry/redis-common": ["@opentelemetry/redis-common@0.36.2", "", {}, "sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-ioredis/@opentelemetry/redis-common": ["@opentelemetry/redis-common@0.36.2", "", {}, "sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-mysql/@types/mysql": ["@types/mysql@2.15.26", "", { "dependencies": { "@types/node": "*" } }, "sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-mysql/@types/mysql": ["@types/mysql@2.15.26", "", { "dependencies": { "@types/node": "*" } }, "sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-mysql2/@opentelemetry/sql-common": ["@opentelemetry/sql-common@0.40.1", "", { "dependencies": { "@opentelemetry/core": "^1.1.0" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0" } }, "sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-mysql2/@opentelemetry/sql-common": ["@opentelemetry/sql-common@0.40.1", "", { "dependencies": { "@opentelemetry/core": "^1.1.0" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0" } }, "sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-pg/@opentelemetry/sql-common": ["@opentelemetry/sql-common@0.40.1", "", { "dependencies": { "@opentelemetry/core": "^1.1.0" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0" } }, "sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-pg/@opentelemetry/sql-common": ["@opentelemetry/sql-common@0.40.1", "", { "dependencies": { "@opentelemetry/core": "^1.1.0" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0" } }, "sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-pg/@types/pg": ["@types/pg@8.6.1", "", { "dependencies": { "@types/node": "*", "pg-protocol": "*", "pg-types": "^2.2.0" } }, "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-pg/@types/pg": ["@types/pg@8.6.1", "", { "dependencies": { "@types/node": "*", "pg-protocol": "*", "pg-types": "^2.2.0" } }, "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-pg/@types/pg-pool": ["@types/pg-pool@2.0.6", "", { "dependencies": { "@types/pg": "*" } }, "sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-pg/@types/pg-pool": ["@types/pg-pool@2.0.6", "", { "dependencies": { "@types/pg": "*" } }, "sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ=="], - "@lobu/owletto-backend/@sentry/node/import-in-the-middle/cjs-module-lexer": ["cjs-module-lexer@1.4.3", "", {}, "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q=="], + "@lobu/server/@sentry/node/import-in-the-middle/cjs-module-lexer": ["cjs-module-lexer@1.4.3", "", {}, "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q=="], "@mariozechner/pi-coding-agent/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], @@ -4640,7 +4680,7 @@ "yargs/string-width/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - "@lobu/owletto-backend/@sentry/node/@opentelemetry/instrumentation-pg/@types/pg-pool/@types/pg": ["@types/pg@8.20.0", "", { "dependencies": { "@types/node": "*", "pg-protocol": "*", "pg-types": "^2.2.0" } }, "sha512-bEPFOaMAHTEP1EzpvHTbmwR8UsFyHSKsRisLIHVMXnpNefSbGA1bD6CVy+qKjGSqmZqNqBDV2azOBo8TgkcVow=="], + "@lobu/server/@sentry/node/@opentelemetry/instrumentation-pg/@types/pg-pool/@types/pg": ["@types/pg@8.20.0", "", { "dependencies": { "@types/node": "*", "pg-protocol": "*", "pg-types": "^2.2.0" } }, "sha512-bEPFOaMAHTEP1EzpvHTbmwR8UsFyHSKsRisLIHVMXnpNefSbGA1bD6CVy+qKjGSqmZqNqBDV2azOBo8TgkcVow=="], "cli-highlight/yargs/cliui/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], diff --git a/config/biome.config.json b/config/biome.config.json index 319c881ae..6abefab58 100644 --- a/config/biome.config.json +++ b/config/biome.config.json @@ -22,14 +22,14 @@ "!**/tmp/**", "!**/.connector-child-*.mjs", "!**/*.css", - "!**/packages/owletto-backend/**", - "!**/packages/owletto-sdk/**", - "!**/packages/owletto-openclaw/**", - "!**/packages/owletto-worker/**", - "!**/packages/owletto-connectors/**", - "!**/packages/owletto-embeddings/**", - "!**/packages/owletto-extension/**", - "!**/packages/owletto-web/**", + "!**/packages/server/**", + "!**/packages/connector-sdk/**", + "!**/packages/openclaw-plugin/**", + "!**/packages/connector-worker/**", + "!**/packages/connectors/**", + "!**/packages/embeddings/**", + "!**/packages/browser-extension/**", + "!**/packages/web/**", "!**/scripts/owletto/**", "!**/benchmarks/**", "!**/skills/**" diff --git a/config/knip.ts b/config/knip.ts index 75e256e3f..540b33b96 100644 --- a/config/knip.ts +++ b/config/knip.ts @@ -3,18 +3,18 @@ import type { KnipConfig } from "knip"; const config: KnipConfig = { ignore: [ // Submodule — cleaned up via its own repo / PR. - "packages/owletto-web/**", + "packages/web/**", ], // Bun-style "npm:foo@x" import specifiers used by connectors. ignoreUnresolved: ["^npm:"], workspaces: { // Connector source files are loaded by file path // (scripts/owletto/install-connectors.ts), not imported as modules. - "packages/owletto-connectors": { + "packages/connectors": { entry: ["src/*.ts"], }, // Chrome MV3 extension — entries come from manifest.json + vite.config.ts. - "packages/owletto-extension": { + "packages/browser-extension": { entry: [ "src/background/service-worker.ts", "src/content/index.ts", @@ -24,14 +24,14 @@ const config: KnipConfig = { "src/callback/callback.ts", ], }, - "packages/owletto-embeddings": { + "packages/embeddings": { // src/openai.ts and src/embedding-utils.ts are reached transitively from // server.ts (the package "main"); listing embedding-utils explicitly // because src/ contains stale compiled .js siblings that confuse knip's // resolver. entry: ["src/openai.ts", "src/embedding-utils.ts"], }, - "packages/owletto-worker": { + "packages/connector-worker": { // child-runner is fork()ed by absolute path, not imported. entry: ["src/executor/child-runner.ts"], ignoreDependencies: [ @@ -39,7 +39,7 @@ const config: KnipConfig = { "@lobu/worker", ], }, - "packages/owletto-backend": { + "packages/server": { entry: [ // Embedded server boot path; previously also used by `owletto start` // before the CLI merge collapsed everything onto `lobu run`. diff --git a/db/migrations/20260417100000_add_entity_identities.sql b/db/migrations/20260417100000_add_entity_identities.sql index 8587aa3e0..e7acb9f45 100644 --- a/db/migrations/20260417100000_add_entity_identities.sql +++ b/db/migrations/20260417100000_add_entity_identities.sql @@ -40,7 +40,7 @@ COMMENT ON TABLE public.entity_identities IS COMMENT ON COLUMN public.entity_identities.namespace IS 'Identifier kind. Standard values: phone, email, wa_jid, slack_user_id, github_login, auth_user_id, google_contact_id. Custom namespaces allowed but connectors sharing a namespace must agree on its format.'; COMMENT ON COLUMN public.entity_identities.identifier IS - 'Normalized identifier value (E.164 digits for phone, lowercase for email, etc.). Normalizers in @lobu/owletto-sdk own the canonical form.'; + 'Normalized identifier value (E.164 digits for phone, lowercase for email, etc.). Normalizers in @lobu/connector-sdk own the canonical form.'; COMMENT ON COLUMN public.entity_identities.source_connector IS 'Who claimed this identifier: "connector:whatsapp", "manual", or null when seeded by migration.'; diff --git a/db/migrations/20260420120000_extend_reserved_org_slugs.sql b/db/migrations/20260420120000_extend_reserved_org_slugs.sql index 65dbf3a55..afc2f876f 100644 --- a/db/migrations/20260420120000_extend_reserved_org_slugs.sql +++ b/db/migrations/20260420120000_extend_reserved_org_slugs.sql @@ -1,7 +1,7 @@ -- migrate:up -- Extend reserved org slugs to cover infrastructure subdomains. --- RESERVED_SUBDOMAINS in packages/owletto-backend/src/index.ts already +-- RESERVED_SUBDOMAINS in packages/server/src/index.ts already -- treats www/mcp/static/cdn/... as non-org at the routing layer; this -- mirrors it at the DB layer so those names can never be claimed. -- diff --git a/db/migrations/20260427160000_drop_dead_schema.sql b/db/migrations/20260427160000_drop_dead_schema.sql index f7a4b6575..cd9316f2e 100644 --- a/db/migrations/20260427160000_drop_dead_schema.sql +++ b/db/migrations/20260427160000_drop_dead_schema.sql @@ -1,12 +1,12 @@ -- migrate:up -- Drop schema objects that have no readers, writers, or references in the --- TypeScript source tree (`packages/owletto-backend/src` is the source of +-- TypeScript source tree (`packages/server/src` is the source of -- truth — `owletto-cli/runtime` is a generated mirror). -- -- Verification: --- * Strict SQL grep across packages/{owletto-backend,gateway,worker, --- owletto-web,owletto-sdk}/src for FROM/JOIN/INSERT/UPDATE/REFERENCES. +-- * Strict SQL grep across packages/{server,gateway,worker, +-- web,connector-sdk}/src for FROM/JOIN/INSERT/UPDATE/REFERENCES. -- * `query_sql` allowlist (utils/table-schema.ts) does not list any of -- the dropped tables, columns, or the view. -- * better-auth `teams` is not enabled in src/auth/index.tsx, so the diff --git a/db/schema.sql b/db/schema.sql index 552e757c1..0a0e520ce 100644 --- a/db/schema.sql +++ b/db/schema.sql @@ -862,7 +862,7 @@ COMMENT ON COLUMN public.entity_identities.namespace IS 'Identifier kind. Standa -- Name: COLUMN entity_identities.identifier; Type: COMMENT; Schema: public; Owner: - -- -COMMENT ON COLUMN public.entity_identities.identifier IS 'Normalized identifier value (E.164 digits for phone, lowercase for email, etc.). Normalizers in @lobu/owletto-sdk own the canonical form.'; +COMMENT ON COLUMN public.entity_identities.identifier IS 'Normalized identifier value (E.164 digits for phone, lowercase for email, etc.). Normalizers in @lobu/connector-sdk own the canonical form.'; -- diff --git a/docker/app/Dockerfile b/docker/app/Dockerfile index 040e81111..b4135d3fa 100644 --- a/docker/app/Dockerfile +++ b/docker/app/Dockerfile @@ -1,7 +1,7 @@ # =========================================== -# Owletto API + Frontend (owletto-backend) +# Owletto API + Frontend (server) # =========================================== -# Hono server that runs the gateway in-process and serves the owletto-web frontend. +# Hono server that runs the gateway in-process and serves the web frontend. FROM node:22-slim AS builder @@ -24,21 +24,26 @@ COPY patches/ ./patches/ # Workspace package manifests needed to resolve the backend + its deps. COPY packages/core/package.json packages/core/ -COPY packages/worker/package.json packages/worker/ -COPY packages/owletto-backend/package.json packages/owletto-backend/ +COPY packages/agent-worker/package.json packages/agent-worker/ +COPY packages/server/package.json packages/server/ +COPY packages/connector-sdk/package.json packages/connector-sdk/ +COPY packages/openclaw-plugin/package.json packages/openclaw-plugin/ +COPY packages/connectors/package.json packages/connectors/ +COPY packages/embeddings/package.json packages/embeddings/ +COPY packages/connector-worker/package.json packages/connector-worker/ COPY packages/owletto-sdk/package.json packages/owletto-sdk/ -COPY packages/owletto-openclaw/package.json packages/owletto-openclaw/ COPY packages/owletto-connectors/package.json packages/owletto-connectors/ COPY packages/owletto-embeddings/package.json packages/owletto-embeddings/ COPY packages/owletto-worker/package.json packages/owletto-worker/ -# packages/owletto-web is a private git submodule. The glob lets the copy succeed +COPY packages/owletto-openclaw/package.json packages/owletto-openclaw/ +# packages/web is a private git submodule. The glob lets the copy succeed # when the submodule is not initialized (external contributors / backend-only builds). -COPY packages/owletto-web/package.jso[n] packages/owletto-web/ +COPY packages/web/package.jso[n] packages/web/ # Stub out workspace packages we don't build in this image so bun install doesn't # error on missing manifests. -RUN mkdir -p packages/cli packages/landing packages/owletto-cli packages/owletto-extension packages/mcpsandbox \ - && for p in cli landing owletto-extension mcpsandbox; do \ +RUN mkdir -p packages/cli packages/landing packages/owletto-cli packages/browser-extension packages/mcpsandbox \ + && for p in cli landing browser-extension mcpsandbox; do \ echo "{\"name\":\"@lobu/$p\",\"version\":\"0.0.0\",\"private\":true}" > "packages/$p/package.json"; \ done \ && echo '{"name":"owletto","version":"0.0.0","private":true}' > packages/owletto-cli/package.json @@ -58,41 +63,46 @@ RUN echo "Build: ${CACHEBUST}" && date > /tmp/.build-time # Source code COPY config/ config/ COPY packages/core/ packages/core/ -COPY packages/worker/ packages/worker/ +COPY packages/agent-worker/ packages/agent-worker/ +COPY packages/connector-sdk/ packages/connector-sdk/ +COPY packages/openclaw-plugin/ packages/openclaw-plugin/ +COPY packages/connectors/ packages/connectors/ +COPY packages/embeddings/ packages/embeddings/ +COPY packages/connector-worker/ packages/connector-worker/ COPY packages/owletto-sdk/ packages/owletto-sdk/ -COPY packages/owletto-openclaw/ packages/owletto-openclaw/ COPY packages/owletto-connectors/ packages/owletto-connectors/ COPY packages/owletto-embeddings/ packages/owletto-embeddings/ COPY packages/owletto-worker/ packages/owletto-worker/ -COPY packages/owletto-backend/ packages/owletto-backend/ +COPY packages/owletto-openclaw/ packages/owletto-openclaw/ +COPY packages/server/ packages/server/ # Copy the private frontend submodule when present. -COPY packages/owletto-web packages/owletto-web +COPY packages/web packages/web # Build dist for shared workspace packages whose `exports` map points at -# dist subpaths. owletto-backend imports @lobu/core from its dist barrel, -# and worker/openclaw plugin-loader resolves @lobu/owletto-openclaw by name +# dist subpaths. server imports @lobu/core from its dist barrel, +# and worker/openclaw plugin-loader resolves @lobu/openclaw-plugin by name # at runtime (ESM-only export, not bundled), so dist/ must exist on disk. RUN cd packages/core && bunx tsc \ - && cd ../owletto-sdk && bunx tsc \ - && cd ../owletto-worker && bunx tsc \ - && cd ../owletto-openclaw && bun run build + && cd ../connector-sdk && bunx tsc \ + && cd ../connector-worker && bunx tsc \ + && cd ../openclaw-plugin && bun run build # Type check -RUN cd packages/owletto-backend && bunx tsc --noEmit +RUN cd packages/server && bunx tsc --noEmit # Bundle the backend so prod runs under Node (so isolated-vm loads). See -# docker/app/start.sh and packages/owletto-backend/scripts/build-server-bundle.mjs +# docker/app/start.sh and packages/server/scripts/build-server-bundle.mjs # for the full rationale. -RUN cd packages/owletto-backend && bun run build:server +RUN cd packages/server && bun run build:server # Build frontend static assets (production only) ARG VITE_API_URL= ENV VITE_API_URL=$VITE_API_URL ARG SKIP_WEB_BUILD=false -RUN if [ "$SKIP_WEB_BUILD" = "false" ] && [ -f packages/owletto-web/package.json ]; then \ - cd packages/owletto-web && bun run build; \ +RUN if [ "$SKIP_WEB_BUILD" = "false" ] && [ -f packages/web/package.json ]; then \ + cd packages/web && bun run build; \ else \ - mkdir -p /app/packages/owletto-web/dist; \ + mkdir -p /app/packages/web/dist; \ fi # =========================================== @@ -122,14 +132,19 @@ COPY --from=builder /app/package.json ./ COPY --from=builder /app/tsconfig.json ./ COPY --from=builder /app/config ./config COPY --from=builder /app/packages/core ./packages/core -COPY --from=builder /app/packages/worker ./packages/worker +COPY --from=builder /app/packages/agent-worker ./packages/agent-worker +COPY --from=builder /app/packages/connector-sdk ./packages/connector-sdk +COPY --from=builder /app/packages/openclaw-plugin ./packages/openclaw-plugin +COPY --from=builder /app/packages/connectors ./packages/connectors +COPY --from=builder /app/packages/embeddings ./packages/embeddings +COPY --from=builder /app/packages/connector-worker ./packages/connector-worker COPY --from=builder /app/packages/owletto-sdk ./packages/owletto-sdk -COPY --from=builder /app/packages/owletto-openclaw ./packages/owletto-openclaw COPY --from=builder /app/packages/owletto-connectors ./packages/owletto-connectors COPY --from=builder /app/packages/owletto-embeddings ./packages/owletto-embeddings COPY --from=builder /app/packages/owletto-worker ./packages/owletto-worker -COPY --from=builder /app/packages/owletto-backend ./packages/owletto-backend -COPY --from=builder /app/packages/owletto-web ./packages/owletto-web +COPY --from=builder /app/packages/owletto-openclaw ./packages/owletto-openclaw +COPY --from=builder /app/packages/server ./packages/server +COPY --from=builder /app/packages/web ./packages/web # Database migrations COPY db/migrations ./db/migrations diff --git a/docker/app/start.sh b/docker/app/start.sh index 401feaeed..ce122850b 100755 --- a/docker/app/start.sh +++ b/docker/app/start.sh @@ -52,4 +52,4 @@ fi # #430. External npm deps are resolved by Node from node_modules, which # is hoisted (see Dockerfile `bun install --linker=hoisted`) so the flat # layout matches what Node expects. -exec node /app/packages/owletto-backend/dist/server.bundle.mjs +exec node /app/packages/server/dist/server.bundle.mjs diff --git a/docker/embeddings-service/Dockerfile b/docker/embeddings-service/Dockerfile index 8d52292bb..363736d1f 100644 --- a/docker/embeddings-service/Dockerfile +++ b/docker/embeddings-service/Dockerfile @@ -1,5 +1,5 @@ # =========================================== -# Embeddings Service (owletto-embeddings) +# Embeddings Service (embeddings) # =========================================== FROM node:22-slim AS builder @@ -16,24 +16,25 @@ ENV PATH="/usr/local/bin:${PATH}" COPY bun.lock package.json tsconfig.json ./ COPY patches/ ./patches/ -COPY packages/owletto-embeddings/package.json packages/owletto-embeddings/ +COPY packages/embeddings/package.json packages/embeddings/ # Stub workspaces not needed at build time -RUN mkdir -p packages/cli packages/core packages/gateway packages/landing \ - packages/owletto-backend packages/owletto-cli packages/owletto-connectors \ - packages/owletto-extension packages/owletto-openclaw packages/owletto-sdk \ - packages/owletto-web packages/owletto-worker packages/worker packages/mcpsandbox \ - && for p in cli core gateway landing owletto-backend owletto-connectors \ - owletto-extension owletto-openclaw owletto-sdk owletto-web owletto-worker worker mcpsandbox; do \ +RUN mkdir -p packages/cli packages/core packages/landing \ + packages/server packages/owletto-cli packages/connectors \ + packages/browser-extension packages/openclaw-plugin packages/connector-sdk \ + packages/web packages/connector-worker packages/agent-worker packages/mcpsandbox \ + && for p in cli core landing server connectors \ + browser-extension openclaw-plugin connector-sdk web connector-worker agent-worker mcpsandbox; do \ echo "{\"name\":\"@lobu/$p\",\"version\":\"0.0.0\",\"private\":true}" > "packages/$p/package.json"; \ done \ + && echo '{"name":"@lobu/worker","version":"0.0.0","private":true}' > packages/agent-worker/package.json \ && echo '{"name":"owletto","version":"0.0.0","private":true}' > packages/owletto-cli/package.json RUN --mount=type=cache,target=/root/.bun/install/cache bun install -COPY packages/owletto-embeddings/ packages/owletto-embeddings/ +COPY packages/embeddings/ packages/embeddings/ -RUN cd packages/owletto-embeddings && bunx tsc --noEmit +RUN cd packages/embeddings && bunx tsc --noEmit # =========================================== # Runtime @@ -56,7 +57,7 @@ RUN useradd -m -s /bin/bash embeddings && \ COPY --from=builder --chown=embeddings:embeddings /app/node_modules ./node_modules COPY --from=builder --chown=embeddings:embeddings /app/package.json ./ -COPY --from=builder --chown=embeddings:embeddings /app/packages/owletto-embeddings ./packages/owletto-embeddings +COPY --from=builder --chown=embeddings:embeddings /app/packages/embeddings ./packages/embeddings ENV NODE_ENV=production ENV TRANSFORMERS_CACHE=/app/.cache/transformers @@ -67,6 +68,6 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \ CMD node -e "fetch('http://localhost:8790/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))" USER embeddings -WORKDIR /app/packages/owletto-embeddings +WORKDIR /app/packages/embeddings CMD ["bun", "src/server.ts"] diff --git a/docker/worker/Dockerfile b/docker/worker/Dockerfile index 636dee9fd..d849c4402 100644 --- a/docker/worker/Dockerfile +++ b/docker/worker/Dockerfile @@ -1,5 +1,5 @@ # =========================================== -# Owletto Worker (owletto-worker daemon) +# Owletto Worker (connector-worker daemon) # =========================================== # Self-hosted worker for Owletto connectors and embedding generation. @@ -20,31 +20,32 @@ COPY bun.lock package.json tsconfig.json ./ COPY patches/ ./patches/ # Manifests for the worker and its workspace deps -COPY packages/owletto-worker/package.json packages/owletto-worker/ -COPY packages/owletto-sdk/package.json packages/owletto-sdk/ -COPY packages/owletto-connectors/package.json packages/owletto-connectors/ -COPY packages/owletto-embeddings/package.json packages/owletto-embeddings/ +COPY packages/connector-worker/package.json packages/connector-worker/ +COPY packages/connector-sdk/package.json packages/connector-sdk/ +COPY packages/connectors/package.json packages/connectors/ +COPY packages/embeddings/package.json packages/embeddings/ # Stub workspaces not needed at build time -RUN mkdir -p packages/cli packages/core packages/gateway packages/landing \ - packages/owletto-backend packages/owletto-cli packages/owletto-extension \ - packages/owletto-openclaw packages/owletto-web packages/worker packages/mcpsandbox \ - && for p in cli core gateway landing owletto-backend \ - owletto-extension owletto-openclaw owletto-web worker mcpsandbox; do \ +RUN mkdir -p packages/cli packages/core packages/landing \ + packages/server packages/owletto-cli packages/browser-extension \ + packages/openclaw-plugin packages/web packages/agent-worker packages/mcpsandbox \ + && for p in cli core landing server \ + browser-extension openclaw-plugin web agent-worker mcpsandbox; do \ echo "{\"name\":\"@lobu/$p\",\"version\":\"0.0.0\",\"private\":true}" > "packages/$p/package.json"; \ done \ + && echo '{"name":"@lobu/worker","version":"0.0.0","private":true}' > packages/agent-worker/package.json \ && echo '{"name":"owletto","version":"0.0.0","private":true}' > packages/owletto-cli/package.json RUN --mount=type=cache,target=/root/.bun/install/cache bun install # Source code -COPY packages/owletto-sdk/ packages/owletto-sdk/ -COPY packages/owletto-connectors/ packages/owletto-connectors/ -COPY packages/owletto-embeddings/ packages/owletto-embeddings/ -COPY packages/owletto-worker/ packages/owletto-worker/ +COPY packages/connector-sdk/ packages/connector-sdk/ +COPY packages/connectors/ packages/connectors/ +COPY packages/embeddings/ packages/embeddings/ +COPY packages/connector-worker/ packages/connector-worker/ # Build SDK dist (worker imports compiled sdk) -RUN cd packages/owletto-sdk && bunx tsc +RUN cd packages/connector-sdk && bunx tsc # =========================================== # Runtime @@ -73,21 +74,21 @@ RUN useradd -m -s /bin/bash worker && \ COPY --from=builder --chown=worker:worker /app/node_modules ./node_modules COPY --from=builder --chown=worker:worker /app/package.json ./ COPY --from=builder --chown=worker:worker /app/tsconfig.json ./ -COPY --from=builder --chown=worker:worker /app/packages/owletto-sdk ./packages/owletto-sdk -COPY --from=builder --chown=worker:worker /app/packages/owletto-connectors ./packages/owletto-connectors -COPY --from=builder --chown=worker:worker /app/packages/owletto-embeddings ./packages/owletto-embeddings -COPY --from=builder --chown=worker:worker /app/packages/owletto-worker ./packages/owletto-worker +COPY --from=builder --chown=worker:worker /app/packages/connector-sdk ./packages/connector-sdk +COPY --from=builder --chown=worker:worker /app/packages/connectors ./packages/connectors +COPY --from=builder --chown=worker:worker /app/packages/embeddings ./packages/embeddings +COPY --from=builder --chown=worker:worker /app/packages/connector-worker ./packages/connector-worker # Install patchright's Chromium (declared as `playwright` alias in worker package.json). # Use bunx from the worker workspace so bun's resolver finds the alias. USER worker -WORKDIR /app/packages/owletto-worker +WORKDIR /app/packages/connector-worker RUN bunx --bun playwright install chromium WORKDIR /app ENV NODE_ENV=production ENV TRANSFORMERS_CACHE=/app/.cache/transformers -WORKDIR /app/packages/owletto-worker +WORKDIR /app/packages/connector-worker CMD ["bun", "src/bin.ts", "daemon"] diff --git a/docs/RELEASING.md b/docs/RELEASING.md index c7489e707..3446c511e 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -1,6 +1,6 @@ # Releasing -Five packages ship to npm as a synchronized release: `@lobu/core`, `@lobu/worker`, `@lobu/cli`, `@lobu/owletto-sdk`, `@lobu/owletto-openclaw`. (The previously published `owletto` unscoped package was retired when its commands moved into `@lobu/cli` as the `lobu memory` namespace.) [release-please](https://github.com/googleapis/release-please) reads conventional commits on `main` and drives versioning; publishing uses npm OIDC trusted publishing (no `NPM_TOKEN`, no OTP). +The published packages ship as a synchronized release: `@lobu/core`, `@lobu/worker`, `@lobu/cli`, `@lobu/connector-sdk`, `@lobu/connectors`, `@lobu/connector-worker`, `@lobu/embeddings`, and `@lobu/openclaw-plugin`. The old `@lobu/owletto-*` package names are published as deprecated compatibility redirects to the renamed packages. (The previously published `owletto` unscoped package was retired when its commands moved into `@lobu/cli` as the `lobu memory` namespace.) [release-please](https://github.com/googleapis/release-please) reads conventional commits on `main` and drives versioning; publishing uses npm OIDC trusted publishing (no `NPM_TOKEN`, no OTP). ## Flow @@ -64,7 +64,7 @@ After a local publish, land a `chore(release)` commit on `main` so `.release-ple ## Verify ```bash -for pkg in @lobu/core @lobu/worker @lobu/cli @lobu/owletto-sdk @lobu/owletto-openclaw; do +for pkg in @lobu/core @lobu/worker @lobu/cli @lobu/connector-sdk @lobu/connectors @lobu/connector-worker @lobu/embeddings @lobu/openclaw-plugin; do npm view "$pkg" version done ``` diff --git a/docs/plans/lobu-apply.md b/docs/plans/lobu-apply.md index 4d8dad406..6dfce1dc4 100644 --- a/docs/plans/lobu-apply.md +++ b/docs/plans/lobu-apply.md @@ -79,7 +79,7 @@ Each PR is a draft branch off `feat/owletto-cli-merge` (PR #459). Subagents work **Branch**: `feat/agent-settings-persistence` · **Risk**: Low · **LOC**: ~50 -Today `packages/owletto-backend/src/lobu/stores/postgres-stores.ts` `rowToSettings()`, `saveSettings()`, and `deleteSettings()` do not persist `egressConfig`, `preApprovedTools`, or `guardrails`. The `agents` table doesn't have columns for them either. The file-loader (`packages/owletto-backend/src/gateway/config/file-loader.ts:432-447, 507-517`) produces all three from `lobu.toml`; cloud silently drops them. +Today `packages/server/src/lobu/stores/postgres-stores.ts` `rowToSettings()`, `saveSettings()`, and `deleteSettings()` do not persist `egressConfig`, `preApprovedTools`, or `guardrails`. The `agents` table doesn't have columns for them either. The file-loader (`packages/server/src/gateway/config/file-loader.ts:432-447, 507-517`) produces all three from `lobu.toml`; cloud silently drops them. Scope: - New migration `db/migrations/_agents_apply_fields.sql` adding three columns to `public.agents`: @@ -118,7 +118,7 @@ Scope: - Same stable ID PUT'd with changed config → `updated: true, willRestart: true` - Cross-org agent collision still returns 409 (regression check) -Validation: `bun test packages/owletto-backend/src/lobu`, typecheck, biome, build. +Validation: `bun test packages/server/src/lobu`, typecheck, biome, build. ### PR-3 — `lobu apply` CLI diff --git a/docs/plans/lobu-pull.md b/docs/plans/lobu-pull.md index d84c6c476..72ed2c23e 100644 --- a/docs/plans/lobu-pull.md +++ b/docs/plans/lobu-pull.md @@ -49,15 +49,15 @@ Provide a one-way Lobu Cloud org → `lobu.toml` converger. Mental model: `terra - **GETs**: `packages/cli/src/commands/_lib/apply/client.ts:230,285,318,359` — `listAgents`, `listConnections(agentId)`, `listEntityTypes`, `listRelationshipTypes`. No new server endpoints needed for v2.0. - **Loader**: `packages/cli/src/config/loader.ts:loadConfig` parses local `lobu.toml` + walks agent dirs. Pull reuses this to detect what's already on disk. -- **Stable connection IDs**: `packages/owletto-backend/src/gateway/config/file-loader.ts:56:buildStableConnectionId(agentId, type, name)` — deterministic. As long as pull writes `[type, name]` pairs, applying again re-derives the same stable IDs. +- **Stable connection IDs**: `packages/server/src/gateway/config/file-loader.ts:56:buildStableConnectionId(agentId, type, name)` — deterministic. As long as pull writes `[type, name]` pairs, applying again re-derives the same stable IDs. - **TOML writer**: `packages/cli/src/commands/init.ts:492:generateLobuToml` is the closest precedent — string-concatenation TOML emitter. v2.0 ships a more general version of the same function in `_lib/pull/render-toml.ts`. -- **Frontmatter parser**: `packages/owletto-backend/src/gateway/config/file-loader.ts:657` parses `SKILL.md` into `{ frontmatter, body }`. Pull inverts it: serialize frontmatter back, write body, append. +- **Frontmatter parser**: `packages/server/src/gateway/config/file-loader.ts:657` parses `SKILL.md` into `{ frontmatter, body }`. Pull inverts it: serialize frontmatter back, write body, append. - **Schemas**: `packages/core/src/lobu-toml-schema.ts` Zod schemas validate the TOML pull writes — running validate on the output before commit is the v2.0 self-check. ## Locked decisions 1. **Verb is `lobu pull`.** One-way, cloud → files. Mirrors `terraform import` more than `apply`. No bidirectional `sync`. -2. **Default is non-destructive.** If any local file would be overwritten and its content differs from what pull would write, pull lists the conflicting paths and exits non-zero. `--force` overrides. Rationale: a user with hand-edited prompt files who runs `lobu pull` to grab one new connection should not silently lose their edits. The diff/refuse step is the safety net (the inline-confirm pattern from owletto-web's design guidelines, applied to CLI). +2. **Default is non-destructive.** If any local file would be overwritten and its content differs from what pull would write, pull lists the conflicting paths and exits non-zero. `--force` overrides. Rationale: a user with hand-edited prompt files who runs `lobu pull` to grab one new connection should not silently lose their edits. The diff/refuse step is the safety net (the inline-confirm pattern from the web design guidelines, applied to CLI). 3. **Pull-all-by-default with `--exclude`, plus `--include` for surgical use.** Default pulls agents + connections + memory schema. `--exclude=connections` skips one resource type. `--include=agents` restricts to one. Rationale: drift recovery is the dominant use case and "missed a resource" is the worst failure mode. `--include` is the escape hatch for the surgical case ("just sync the new entity type"). Mirrors `--only` from `lobu apply`. 4. **Skill bodies**: - If cloud has a raw `skills_config[].body` (v2.1+ — see phasing), write `agents//skills//SKILL.md` with the frontmatter serialized + body appended. diff --git a/docs/plans/lobu-secrets-push.md b/docs/plans/lobu-secrets-push.md index a28334fa4..caaa0e54a 100644 --- a/docs/plans/lobu-secrets-push.md +++ b/docs/plans/lobu-secrets-push.md @@ -6,7 +6,7 @@ Status: **planning** · Owner: @buremba · v3 follow-up to `lobu apply` (see `do Push named secret **values** from a CLI-side source (`.env`, file, or stdin) into Lobu Cloud's per-org secret-proxy. The CLI never displays values, the server never returns them, and every write is audited. `lobu apply` continues to read `$VAR` references from `lobu.toml`, verifies the names exist in cloud, and **never uploads values**. `secrets push` is the only sanctioned write path for cloud secret values. -**Reuse-first**: `WritableSecretStore` (`packages/owletto-backend/src/gateway/secrets/index.ts`) already has `put/list/delete` and is wired through `SecretStoreRegistry` to the Postgres-backed `agent_secrets` table. The proxy already swaps `lobu_secret_` placeholders at egress. The gap is one HTTP surface — `POST /api/:orgSlug/secrets/manage` — plus org-scoping for `agent_secrets`, plus a dedicated audit table. Total v3.0: 2 PRs, ~700 LOC. +**Reuse-first**: `WritableSecretStore` (`packages/server/src/gateway/secrets/index.ts`) already has `put/list/delete` and is wired through `SecretStoreRegistry` to the Postgres-backed `agent_secrets` table. The proxy already swaps `lobu_secret_` placeholders at egress. The gap is one HTTP surface — `POST /api/:orgSlug/secrets/manage` — plus org-scoping for `agent_secrets`, plus a dedicated audit table. Total v3.0: 2 PRs, ~700 LOC. ## Mental model @@ -44,11 +44,11 @@ later, at runtime: ## Background — what already exists -- **`WritableSecretStore` interface** (`packages/owletto-backend/src/gateway/secrets/index.ts:32-40`): `put(name, value, opts) → SecretRef`, `delete(nameOrRef)`, `list(prefix?)`. Default backend is `PostgresSecretStore` (`packages/owletto-backend/src/lobu/stores/postgres-secret-store.ts`), which AES-256-GCM-encrypts via `@lobu/core`'s `encrypt()` and returns `secret://` refs. +- **`WritableSecretStore` interface** (`packages/server/src/gateway/secrets/index.ts:32-40`): `put(name, value, opts) → SecretRef`, `delete(nameOrRef)`, `list(prefix?)`. Default backend is `PostgresSecretStore` (`packages/server/src/lobu/stores/postgres-secret-store.ts`), which AES-256-GCM-encrypts via `@lobu/core`'s `encrypt()` and returns `secret://` refs. - **`agent_secrets` table** (`db/migrations/20260410120000_add_agent_secrets.sql`): `name text PRIMARY KEY`, `ciphertext text`, `expires_at`, timestamps. **No `org_id` column today** — names are namespaced by path-style prefixes (`connections//`, `system/`, etc.) chosen by callers. PR-1 must add `org_id`. - **Placeholder swap**: `secret-proxy.ts` (line 11, 194) intercepts `lobu_secret_` tokens in worker requests and resolves them to the underlying `SecretRef` value at egress. Workers never see real values; the cache is per-pod. See `AGENTS.md` §"Orchestration". - **`secret://` refs**: `packages/core/src/secret-refs.ts` parses `://#` URIs. `secret://` is the default writable scheme; `aws-sm://` is read-only. Anything stored via `secrets push` becomes `secret:///user/` (see Locked Decisions #6). -- **Auth**: `mcpAuth` middleware (`packages/owletto-backend/src/auth/middleware.ts`, mounted in `src/index.ts:660+`) validates the bearer token, attaches `c.var.userId` and the resolved `orgSlug`. Org member roles are computed in `auth/oauth/scopes.ts` (`owner | admin | member`). Reuse both — no new auth surface. +- **Auth**: `mcpAuth` middleware (`packages/server/src/auth/middleware.ts`, mounted in `src/index.ts:660+`) validates the bearer token, attaches `c.var.userId` and the resolved `orgSlug`. Org member roles are computed in `auth/oauth/scopes.ts` (`owner | admin | member`). Reuse both — no new auth surface. - **CLI today** (`packages/cli/src/commands/secrets.ts`): `secrets set/list/delete` operate **only on local `.env`**. The header comment promises "Cloud secrets will use the API when available." This plan delivers that API. - **CLI auth helpers**: `_lib/openclaw-auth.ts:getUsableToken` and `_lib/openclaw-cmd.ts:postJson` + `deriveApiBaseUrl` (introduced in PR #459). Reuse, don't duplicate. @@ -100,10 +100,10 @@ Scope: - Re-create `agent_secrets_name_prefix_idx` as `(org_id, name text_pattern_ops)`. - New table `public.secret_audit` (mirrors `entity_type_audit` shape but **without** `before_payload`/`after_payload`). Columns: `id bigserial PK`, `org_id uuid NOT NULL`, `name text NOT NULL`, `fingerprint text NOT NULL CHECK (length(fingerprint) = 4)`, `action text CHECK (action IN ('create','rotate','delete'))`, `source text CHECK (source IN ('env','file','stdin','api','system'))`, `actor_user_id uuid`, `created_at timestamptz DEFAULT now()`. Index on `(org_id, name, created_at DESC)`. - Update `db/schema.sql` to match. -- `PostgresSecretStore` updates (`packages/owletto-backend/src/lobu/stores/postgres-secret-store.ts`): +- `PostgresSecretStore` updates (`packages/server/src/lobu/stores/postgres-secret-store.ts`): - Constructor accepts an `orgId: string` (or factory takes one). Every query gets `WHERE org_id = $1` added. The cross-cutting wiring is small because `SecretStoreRegistry` is constructed per-request in cloud paths that already know the org. - `put` writes `(org_id, name, ciphertext)` with `ON CONFLICT (org_id, name) DO UPDATE`. -- New route mounted at `app.route('/api/:orgSlug/secrets', secretRoutes)` from a new `packages/owletto-backend/src/lobu/secret-routes.ts`. Endpoints: +- New route mounted at `app.route('/api/:orgSlug/secrets', secretRoutes)` from a new `packages/server/src/lobu/secret-routes.ts`. Endpoints: - `POST /api/:orgSlug/secrets/manage` — body: `{ actions: Array<{op: 'create' | 'rotate' | 'delete', name: string, value?: string, source: 'env' | 'file' | 'stdin'}> }`. Server-side flow: `mcpAuth` → require role in `(owner, admin)` → for each action, transactionally `put`/`delete` + insert `secret_audit` row → respond with `{ results: Array<{name, fingerprint, action, ref, willRestart?: false}> }`. **Never echoes `value`.** - `GET /api/:orgSlug/secrets` — returns `[{ name, fingerprint, updatedAt, source }]`. Fingerprints come from re-decrypting + hashing on read (cheap with the existing 60s `SecretStoreRegistry` cache); alternative is to store `fingerprint` on write in `agent_secrets`. Pick the latter — write-time fingerprint, no decrypt needed for list. Add `fingerprint text` column to `agent_secrets` in the same migration. - Server-side fingerprint helper: `packages/core/src/secret-fingerprint.ts` — `function fingerprint(value: string): string` returning the first 4 hex chars of `crypto.createHash('sha256').update(value).digest('hex')`. Used by both server (for `secret_audit.fingerprint`) and CLI (for diff display). @@ -116,7 +116,7 @@ Scope: - Empty-string value rejected with `400 invalid_value`. - Value starting with `lobu_secret_` rejected with `400 already_a_placeholder` (caller is confused). -Validation: `bun test packages/owletto-backend/src/lobu`, `make build-packages`, `bun run typecheck`, `bun run check`. +Validation: `bun test packages/server/src/lobu`, `make build-packages`, `bun run typecheck`, `bun run check`. ### PR-2 — CLI: `lobu secrets push` + `lobu secrets list` diff --git a/docs/plans/mcp-multi-org-and-execute.md b/docs/plans/mcp-multi-org-and-execute.md index e762ea3ed..f454981ca 100644 --- a/docs/plans/mcp-multi-org-and-execute.md +++ b/docs/plans/mcp-multi-org-and-execute.md @@ -2,7 +2,7 @@ Extends `docs/mcp-search-execute-design-doc.md` (owletto proper, status "Planned, not yet implemented") with two scopes the original didn't fully land: (1) cross-org addressing inside `execute`, and (2) the full frontend + UX surface the new tools imply. Language decision: **TypeScript over a typed `ClientSDK` in `isolated-vm`** — reviewed by a second and third opinion (codex, pi), both concurred. Bash-as-primary was evaluated and rejected because reactions are the real workload and shell quoting degrades stored user code. -Target repo for implementation: `packages/owletto-backend` + `packages/owletto-web` in the `lobu` monorepo. The owletto repo is deprecated. +Target repo for implementation: `packages/server` + `packages/web` in the `lobu` monorepo. The owletto repo is deprecated. ## Decisions locked in @@ -96,7 +96,7 @@ These make "LLMs write bash more fluently than typed SDKs" a non-concern: ## Frontend plan -Two new surfaces in `packages/owletto-web`, plus two upgrades. +Two new surfaces in `packages/web`, plus two upgrades. ### New: `/[owner]/tools/execute` — script console @@ -205,7 +205,7 @@ From a BLOCKER/GUARD/BENIGN survey of the current codebase: ## File-by-file changes -### `packages/owletto-backend` +### `packages/server` New: - `src/sandbox/client-sdk.ts` — `buildClientSDK(toolCtx, env, opts?: { dryRun?: boolean })`. Top-level `org(slugOrId)` accessor returns a proxy SDK with swapped ToolContext after a membership check. @@ -228,7 +228,7 @@ Deleted: - `src/tools/admin/` MCP registrations for the 14 `manage_*` tools — handlers stay, MCP-surface entries go. - `src/tools/admin/index.ts` after `query_sql` registration moves. -### `packages/owletto-web` +### `packages/web` New: - `src/app/[owner]/tools/execute/page.tsx` diff --git a/docs/plans/owletto-absorption.md b/docs/plans/owletto-absorption.md index b0d1282ab..a3ddc80b5 100644 --- a/docs/plans/owletto-absorption.md +++ b/docs/plans/owletto-absorption.md @@ -36,17 +36,17 @@ One file, one schema, one loader. Fits the user's consolidation ask. ## PR-1: Land missing owletto content Scope: -- `skills/` → copy from `/Users/burakemre/Code/owletto/skills/` (3 dirs: `owletto/`, `owletto-openclaw/`, `lobu-operator/`) +- `skills/` → copy from `/Users/burakemre/Code/owletto/skills/` (3 dirs: `owletto/`, `openclaw-plugin/`, `lobu-operator/`) - `benchmarks/memory/` → copy 34 files (JSON configs + suite data + Python adapters) - `scripts/owletto/` (new dir) — park everything owletto-flavored: - `sync-owletto-guidance.ts` - `run-memory-benchmark.ts`, `prepare-locomo-suite.ts`, `prepare-longmemeval-suite.ts` - `install-connectors.ts`, `dry-run-connector.ts`, `sync-local.ts`, `test-mcp-server.ts` - Update `package.json` script refs (e.g. `"bench:memory": "bun scripts/owletto/run-memory-benchmark.ts"`) -- Fix `packages/owletto-backend/src/utils/__tests__/owletto-guidance-sync.test.ts:9` — it reads `skills/owletto/SKILL.md` via `process.cwd()`; confirm it resolves after the copy +- Fix `packages/server/src/utils/__tests__/owletto-guidance-sync.test.ts:9` — it reads `skills/owletto/SKILL.md` via `process.cwd()`; confirm it resolves after the copy Validation: -- `bun run test packages/owletto-backend/src/utils/__tests__/owletto-guidance-sync.test.ts` passes +- `bun run test packages/server/src/utils/__tests__/owletto-guidance-sync.test.ts` passes - `bun scripts/owletto/run-memory-benchmark.ts --help` resolves - `make build-packages` clean @@ -82,12 +82,12 @@ Validation: `bun run typecheck`, `bun run build`, CI lint. Scope — investigate only, convert findings into a follow-up PR if warranted: - `packages/gateway` is lobu-native (357 files) -- `packages/owletto-backend/src/lobu/gateway.ts` is a thin adapter -- Determine: is the adapter live (hit by owletto-backend routes) or dead code from the pre-merge era? +- `packages/server/src/lobu/gateway.ts` is a thin adapter +- Determine: is the adapter live (hit by server routes) or dead code from the pre-merge era? - If dead → delete in the same PR - If live → document the boundary in a 1-line header comment and close the audit -Reuses the grep pattern `grep -rn "from.*lobu/gateway" packages/owletto-backend/src`. +Reuses the grep pattern `grep -rn "from.*lobu/gateway" packages/server/src`. --- diff --git a/docs/plans/owletto-cli-merge.md b/docs/plans/owletto-cli-merge.md index 597dab3de..3fd5aa083 100644 --- a/docs/plans/owletto-cli-merge.md +++ b/docs/plans/owletto-cli-merge.md @@ -4,7 +4,7 @@ Sequel to `owletto-absorption.md`. That plan said flattening the `owletto-*` pre ## Why -- `lobu run` already embeds the Owletto backend in-process (`packages/owletto-backend` boots inside `lobu run`). Two CLIs, one runtime is the worst of both worlds for lobu users. +- `lobu run` already embeds the Owletto backend in-process (`packages/server` boots inside `lobu run`). Two CLIs, one runtime is the worst of both worlds for lobu users. - `owletto seed` already reads `[memory.owletto]` from `lobu.toml` — the cross-config coupling exists. - `owletto dev` (docker-compose) contradicts CLAUDE.md ("embedded-only, no Docker"). `docker-compose.dev.yml` does not exist at the repo root. The command is dead code (see PR-2). - Three near-duplicate health commands (`lobu status`, `owletto doctor`, `owletto health`) is one job. @@ -18,7 +18,7 @@ Sequel to `owletto-absorption.md`. That plan said flattening the `owletto-*` pre ## Out of scope - Renaming `packages/owletto-*` directories or the `[memory.owletto]` config key. Provenance prefix stays for now — collapsing the bin is enough churn for one cycle. -- Changing the `owletto-openclaw` MCP plugin name (still `@lobu/owletto-openclaw`). Only its `tokenCommand` doc changes. +- Changing the `openclaw-plugin` MCP plugin name (still `@lobu/openclaw-plugin`). Only its `tokenCommand` doc changes. - Owletto memory product surface area, schemas, MCP tools. ## Locked decisions @@ -82,7 +82,7 @@ Health surface: - `.github/workflows/ci.yml:87, 258` — drop `owletto-cli` from the publish job; keep test job pointing at the now-library package. - `config/knip.ts`, `config/biome.config.json`, `tsconfig.json` — adjust paths if needed after the rename. -- `packages/owletto-openclaw/README.md` and `openclaw.plugin.json` description — reference `npx -y @lobu/cli token --raw` as the canonical `tokenCommand` example (auth is unified with top-level `lobu login`, no separate memory token). +- `packages/openclaw-plugin/README.md` and `openclaw.plugin.json` description — reference `npx -y @lobu/cli token --raw` as the canonical `tokenCommand` example (auth is unified with top-level `lobu login`, no separate memory token). ### 7. Doc + skill sweep @@ -90,7 +90,7 @@ Health surface: - `packages/landing/public/getting-started/skills.md:23,26`, `getting-started/memory.md`, `getting-started.md:109` - Rename `packages/landing/public/reference/owletto-cli.md` → `lobu-memory.md`; rewrite every example. Update Astro routes / sidebar config / `src/content/docs/reference/owletto-cli.md` mirror. - `packages/landing/public/blog/mcp-is-overengineered-skills-are-too-primitive.md:130`, `blog/hello-world.md:31`, `guides/troubleshooting.md:122` -- `skills/owletto/SKILL.md`, `skills/owletto/references/cli-fallback.md`, `skills/owletto/references/client-install.md`, `skills/owletto-openclaw/SKILL.md` +- `skills/owletto/SKILL.md`, `skills/owletto/references/cli-fallback.md`, `skills/owletto/references/client-install.md`, `skills/openclaw-plugin/SKILL.md` - `docs/RELEASING.md` — drop `owletto` from the published-packages list - The `owletto` Claude Code skill metadata in this repo diff --git a/docs/plans/world-model.md b/docs/plans/world-model.md index 7051699b6..904f41393 100644 --- a/docs/plans/world-model.md +++ b/docs/plans/world-model.md @@ -205,7 +205,7 @@ public orgs alongside member orgs. The "Your Organizations" / "Public Organizations" split with a separator already exists in -`packages/owletto-web/src/components/sidebar/organization-dropdown.tsx` +`packages/web/src/components/sidebar/organization-dropdown.tsx` (grouped via `CommandGroup` headings + `CommandSeparator`, gated on `is_member` / `visibility`). No further work. diff --git a/package.json b/package.json index 1efed59f9..7c3dff246 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "packages/*" ], "scripts": { - "build": "cd packages/core && bun run build && cd ../worker && bun run build && cd ../..", + "build": "cd packages/core && bun run build && cd ../agent-worker && bun run build && cd ../..", "format": "biome format --config-path config/biome.config.json --write .", "format:check": "biome format --config-path config/biome.config.json .", "lint": "biome lint --config-path config/biome.config.json .", @@ -15,22 +15,22 @@ "check": "biome check --config-path config/biome.config.json .", "check:fix": "biome check --config-path config/biome.config.json --write .", "prepare": "husky || true", - "test": "bun test packages/core/src packages/worker/src packages/landing/src", - "test:coverage": "bun test packages/core/src packages/worker/src packages/landing/src --coverage", + "test": "bun test packages/core/src packages/agent-worker/src packages/landing/src", + "test:coverage": "bun test packages/core/src packages/agent-worker/src packages/landing/src --coverage", "typecheck": "tsc --noEmit", "jscpd": "bunx jscpd --pattern \"packages/**/*.ts\" --reporters \"console\" --ignore \"**/node_modules/**,**/dist/**,**/coverage/**,**/.bun/**,**/.turbo/**,workspaces/**,charts/**,integration-tests/**,bin/**,**/__tests__/**,**/__mocks__/**,**/*.d.ts\"", "depcruise": "bunx --bun depcruise --config config/dependency-cruiser.config.cjs packages", "dev": "./scripts/dev-native.sh", - "build:packages": "cd packages/core && bun run build && cd ../owletto-sdk && bun run build && cd ../worker && bun run build && cd ../owletto-backend && bun run build:server && cd ../cli && bun run build", - "build:owletto": "cd packages/owletto-embeddings && bun run build && cd ../..", - "watch:packages": "tsc -b --watch packages/core packages/worker", - "test:packages": "cd packages/core && bun run test && cd ../worker && bun run test", - "typecheck:packages": "cd packages/core && bun run typecheck && cd ../worker && bun run typecheck", - "typecheck:owletto": "cd packages/owletto-backend && bun run typecheck && cd ../owletto-embeddings && bun run typecheck && cd ../owletto-sdk && bun run typecheck && cd ../..", + "build:packages": "cd packages/core && bun run build && cd ../connector-sdk && bun run build && cd ../agent-worker && bun run build && cd ../openclaw-plugin && bun run build && cd ../connector-worker && bun run build && cd ../embeddings && bun run build && cd ../server && bun run build:server && cd ../cli && bun run build", + "build:owletto": "cd packages/embeddings && bun run build && cd ../..", + "watch:packages": "tsc -b --watch packages/core packages/agent-worker", + "test:packages": "cd packages/core && bun run test && cd ../agent-worker && bun run test", + "typecheck:packages": "cd packages/core && bun run typecheck && cd ../agent-worker && bun run typecheck", + "typecheck:owletto": "cd packages/server && bun run typecheck && cd ../embeddings && bun run typecheck && cd ../connector-sdk && bun run typecheck && cd ../..", "knip": "bunx knip --config config/knip.ts", "gitleaks": "docker run --rm -v $(pwd):/repo -w /repo zricethezav/gitleaks:latest detect --source=/repo --no-git --redact --config=/repo/config/gitleaks.toml", - "dev:gateway": "bun run packages/owletto-backend/src/gateway/cli/index.ts", - "dev:worker": "bun run packages/worker/src/index.ts", + "dev:gateway": "bun run packages/server/src/gateway/cli/index.ts", + "dev:worker": "bun run packages/agent-worker/src/index.ts", "version:bump": "node scripts/bump-version.mjs", "publish:packages": "node scripts/publish-packages.mjs", "slack:manifest:print": "bun run scripts/slack-manifest.ts print", diff --git a/packages/worker/package.json b/packages/agent-worker/package.json similarity index 96% rename from packages/worker/package.json rename to packages/agent-worker/package.json index ba8b72e73..4eb41526e 100644 --- a/packages/worker/package.json +++ b/packages/agent-worker/package.json @@ -26,7 +26,7 @@ "repository": { "type": "git", "url": "git+https://github.com/lobu-ai/lobu.git", - "directory": "packages/worker" + "directory": "packages/agent-worker" }, "license": "Apache-2.0", "engines": { diff --git a/packages/worker/src/__tests__/audio-provider-suggestions.test.ts b/packages/agent-worker/src/__tests__/audio-provider-suggestions.test.ts similarity index 100% rename from packages/worker/src/__tests__/audio-provider-suggestions.test.ts rename to packages/agent-worker/src/__tests__/audio-provider-suggestions.test.ts diff --git a/packages/worker/src/__tests__/custom-tools.test.ts b/packages/agent-worker/src/__tests__/custom-tools.test.ts similarity index 100% rename from packages/worker/src/__tests__/custom-tools.test.ts rename to packages/agent-worker/src/__tests__/custom-tools.test.ts diff --git a/packages/worker/src/__tests__/embedded-just-bash-bootstrap.test.ts b/packages/agent-worker/src/__tests__/embedded-just-bash-bootstrap.test.ts similarity index 100% rename from packages/worker/src/__tests__/embedded-just-bash-bootstrap.test.ts rename to packages/agent-worker/src/__tests__/embedded-just-bash-bootstrap.test.ts diff --git a/packages/worker/src/__tests__/embedded-mcp-cli-bash.test.ts b/packages/agent-worker/src/__tests__/embedded-mcp-cli-bash.test.ts similarity index 100% rename from packages/worker/src/__tests__/embedded-mcp-cli-bash.test.ts rename to packages/agent-worker/src/__tests__/embedded-mcp-cli-bash.test.ts diff --git a/packages/worker/src/__tests__/embedded-tools.test.ts b/packages/agent-worker/src/__tests__/embedded-tools.test.ts similarity index 100% rename from packages/worker/src/__tests__/embedded-tools.test.ts rename to packages/agent-worker/src/__tests__/embedded-tools.test.ts diff --git a/packages/worker/src/__tests__/exec-sandbox.test.ts b/packages/agent-worker/src/__tests__/exec-sandbox.test.ts similarity index 100% rename from packages/worker/src/__tests__/exec-sandbox.test.ts rename to packages/agent-worker/src/__tests__/exec-sandbox.test.ts diff --git a/packages/worker/src/__tests__/generated-media.test.ts b/packages/agent-worker/src/__tests__/generated-media.test.ts similarity index 100% rename from packages/worker/src/__tests__/generated-media.test.ts rename to packages/agent-worker/src/__tests__/generated-media.test.ts diff --git a/packages/worker/src/__tests__/instructions.test.ts b/packages/agent-worker/src/__tests__/instructions.test.ts similarity index 100% rename from packages/worker/src/__tests__/instructions.test.ts rename to packages/agent-worker/src/__tests__/instructions.test.ts diff --git a/packages/worker/src/__tests__/mcp-cli-commands.test.ts b/packages/agent-worker/src/__tests__/mcp-cli-commands.test.ts similarity index 100% rename from packages/worker/src/__tests__/mcp-cli-commands.test.ts rename to packages/agent-worker/src/__tests__/mcp-cli-commands.test.ts diff --git a/packages/worker/src/__tests__/memory-flush-runtime.test.ts b/packages/agent-worker/src/__tests__/memory-flush-runtime.test.ts similarity index 100% rename from packages/worker/src/__tests__/memory-flush-runtime.test.ts rename to packages/agent-worker/src/__tests__/memory-flush-runtime.test.ts diff --git a/packages/worker/src/__tests__/memory-flush.test.ts b/packages/agent-worker/src/__tests__/memory-flush.test.ts similarity index 100% rename from packages/worker/src/__tests__/memory-flush.test.ts rename to packages/agent-worker/src/__tests__/memory-flush.test.ts diff --git a/packages/worker/src/__tests__/model-resolver.test.ts b/packages/agent-worker/src/__tests__/model-resolver.test.ts similarity index 100% rename from packages/worker/src/__tests__/model-resolver.test.ts rename to packages/agent-worker/src/__tests__/model-resolver.test.ts diff --git a/packages/worker/src/__tests__/processor.test.ts b/packages/agent-worker/src/__tests__/processor.test.ts similarity index 100% rename from packages/worker/src/__tests__/processor.test.ts rename to packages/agent-worker/src/__tests__/processor.test.ts diff --git a/packages/worker/src/__tests__/replace-base-prompt-identity.test.ts b/packages/agent-worker/src/__tests__/replace-base-prompt-identity.test.ts similarity index 100% rename from packages/worker/src/__tests__/replace-base-prompt-identity.test.ts rename to packages/agent-worker/src/__tests__/replace-base-prompt-identity.test.ts diff --git a/packages/worker/src/__tests__/sandbox-leak.test.ts b/packages/agent-worker/src/__tests__/sandbox-leak.test.ts similarity index 100% rename from packages/worker/src/__tests__/sandbox-leak.test.ts rename to packages/agent-worker/src/__tests__/sandbox-leak.test.ts diff --git a/packages/worker/src/__tests__/setup.ts b/packages/agent-worker/src/__tests__/setup.ts similarity index 100% rename from packages/worker/src/__tests__/setup.ts rename to packages/agent-worker/src/__tests__/setup.ts diff --git a/packages/worker/src/__tests__/sse-client.test.ts b/packages/agent-worker/src/__tests__/sse-client.test.ts similarity index 100% rename from packages/worker/src/__tests__/sse-client.test.ts rename to packages/agent-worker/src/__tests__/sse-client.test.ts diff --git a/packages/worker/src/__tests__/tool-implementations.test.ts b/packages/agent-worker/src/__tests__/tool-implementations.test.ts similarity index 100% rename from packages/worker/src/__tests__/tool-implementations.test.ts rename to packages/agent-worker/src/__tests__/tool-implementations.test.ts diff --git a/packages/worker/src/__tests__/tool-policy.test.ts b/packages/agent-worker/src/__tests__/tool-policy.test.ts similarity index 100% rename from packages/worker/src/__tests__/tool-policy.test.ts rename to packages/agent-worker/src/__tests__/tool-policy.test.ts diff --git a/packages/worker/src/__tests__/worker.test.ts b/packages/agent-worker/src/__tests__/worker.test.ts similarity index 100% rename from packages/worker/src/__tests__/worker.test.ts rename to packages/agent-worker/src/__tests__/worker.test.ts diff --git a/packages/worker/src/core/error-handler.ts b/packages/agent-worker/src/core/error-handler.ts similarity index 100% rename from packages/worker/src/core/error-handler.ts rename to packages/agent-worker/src/core/error-handler.ts diff --git a/packages/worker/src/core/project-scanner.ts b/packages/agent-worker/src/core/project-scanner.ts similarity index 100% rename from packages/worker/src/core/project-scanner.ts rename to packages/agent-worker/src/core/project-scanner.ts diff --git a/packages/worker/src/core/types.ts b/packages/agent-worker/src/core/types.ts similarity index 100% rename from packages/worker/src/core/types.ts rename to packages/agent-worker/src/core/types.ts diff --git a/packages/worker/src/core/workspace.ts b/packages/agent-worker/src/core/workspace.ts similarity index 100% rename from packages/worker/src/core/workspace.ts rename to packages/agent-worker/src/core/workspace.ts diff --git a/packages/worker/src/embedded/exec-sandbox.ts b/packages/agent-worker/src/embedded/exec-sandbox.ts similarity index 100% rename from packages/worker/src/embedded/exec-sandbox.ts rename to packages/agent-worker/src/embedded/exec-sandbox.ts diff --git a/packages/worker/src/embedded/just-bash-bootstrap.ts b/packages/agent-worker/src/embedded/just-bash-bootstrap.ts similarity index 100% rename from packages/worker/src/embedded/just-bash-bootstrap.ts rename to packages/agent-worker/src/embedded/just-bash-bootstrap.ts diff --git a/packages/worker/src/embedded/mcp-cli-commands.ts b/packages/agent-worker/src/embedded/mcp-cli-commands.ts similarity index 100% rename from packages/worker/src/embedded/mcp-cli-commands.ts rename to packages/agent-worker/src/embedded/mcp-cli-commands.ts diff --git a/packages/worker/src/gateway/gateway-integration.ts b/packages/agent-worker/src/gateway/gateway-integration.ts similarity index 100% rename from packages/worker/src/gateway/gateway-integration.ts rename to packages/agent-worker/src/gateway/gateway-integration.ts diff --git a/packages/worker/src/gateway/message-batcher.ts b/packages/agent-worker/src/gateway/message-batcher.ts similarity index 100% rename from packages/worker/src/gateway/message-batcher.ts rename to packages/agent-worker/src/gateway/message-batcher.ts diff --git a/packages/worker/src/gateway/sse-client.ts b/packages/agent-worker/src/gateway/sse-client.ts similarity index 100% rename from packages/worker/src/gateway/sse-client.ts rename to packages/agent-worker/src/gateway/sse-client.ts diff --git a/packages/worker/src/gateway/types.ts b/packages/agent-worker/src/gateway/types.ts similarity index 100% rename from packages/worker/src/gateway/types.ts rename to packages/agent-worker/src/gateway/types.ts diff --git a/packages/worker/src/index.ts b/packages/agent-worker/src/index.ts similarity index 100% rename from packages/worker/src/index.ts rename to packages/agent-worker/src/index.ts diff --git a/packages/worker/src/instructions/builder.ts b/packages/agent-worker/src/instructions/builder.ts similarity index 100% rename from packages/worker/src/instructions/builder.ts rename to packages/agent-worker/src/instructions/builder.ts diff --git a/packages/worker/src/instructions/providers.ts b/packages/agent-worker/src/instructions/providers.ts similarity index 100% rename from packages/worker/src/instructions/providers.ts rename to packages/agent-worker/src/instructions/providers.ts diff --git a/packages/worker/src/modules/lifecycle.ts b/packages/agent-worker/src/modules/lifecycle.ts similarity index 100% rename from packages/worker/src/modules/lifecycle.ts rename to packages/agent-worker/src/modules/lifecycle.ts diff --git a/packages/worker/src/openclaw/custom-tools.ts b/packages/agent-worker/src/openclaw/custom-tools.ts similarity index 100% rename from packages/worker/src/openclaw/custom-tools.ts rename to packages/agent-worker/src/openclaw/custom-tools.ts diff --git a/packages/worker/src/openclaw/instructions.ts b/packages/agent-worker/src/openclaw/instructions.ts similarity index 100% rename from packages/worker/src/openclaw/instructions.ts rename to packages/agent-worker/src/openclaw/instructions.ts diff --git a/packages/worker/src/openclaw/model-resolver.ts b/packages/agent-worker/src/openclaw/model-resolver.ts similarity index 100% rename from packages/worker/src/openclaw/model-resolver.ts rename to packages/agent-worker/src/openclaw/model-resolver.ts diff --git a/packages/worker/src/openclaw/plugin-loader.ts b/packages/agent-worker/src/openclaw/plugin-loader.ts similarity index 100% rename from packages/worker/src/openclaw/plugin-loader.ts rename to packages/agent-worker/src/openclaw/plugin-loader.ts diff --git a/packages/worker/src/openclaw/processor.ts b/packages/agent-worker/src/openclaw/processor.ts similarity index 100% rename from packages/worker/src/openclaw/processor.ts rename to packages/agent-worker/src/openclaw/processor.ts diff --git a/packages/worker/src/openclaw/sandbox-leak.ts b/packages/agent-worker/src/openclaw/sandbox-leak.ts similarity index 100% rename from packages/worker/src/openclaw/sandbox-leak.ts rename to packages/agent-worker/src/openclaw/sandbox-leak.ts diff --git a/packages/worker/src/openclaw/session-context.ts b/packages/agent-worker/src/openclaw/session-context.ts similarity index 100% rename from packages/worker/src/openclaw/session-context.ts rename to packages/agent-worker/src/openclaw/session-context.ts diff --git a/packages/worker/src/openclaw/tool-policy.ts b/packages/agent-worker/src/openclaw/tool-policy.ts similarity index 100% rename from packages/worker/src/openclaw/tool-policy.ts rename to packages/agent-worker/src/openclaw/tool-policy.ts diff --git a/packages/worker/src/openclaw/tools.ts b/packages/agent-worker/src/openclaw/tools.ts similarity index 100% rename from packages/worker/src/openclaw/tools.ts rename to packages/agent-worker/src/openclaw/tools.ts diff --git a/packages/worker/src/openclaw/worker.ts b/packages/agent-worker/src/openclaw/worker.ts similarity index 100% rename from packages/worker/src/openclaw/worker.ts rename to packages/agent-worker/src/openclaw/worker.ts diff --git a/packages/worker/src/server.ts b/packages/agent-worker/src/server.ts similarity index 100% rename from packages/worker/src/server.ts rename to packages/agent-worker/src/server.ts diff --git a/packages/worker/src/shared/audio-provider-suggestions.ts b/packages/agent-worker/src/shared/audio-provider-suggestions.ts similarity index 100% rename from packages/worker/src/shared/audio-provider-suggestions.ts rename to packages/agent-worker/src/shared/audio-provider-suggestions.ts diff --git a/packages/worker/src/shared/processor-utils.ts b/packages/agent-worker/src/shared/processor-utils.ts similarity index 100% rename from packages/worker/src/shared/processor-utils.ts rename to packages/agent-worker/src/shared/processor-utils.ts diff --git a/packages/worker/src/shared/provider-auth-hints.ts b/packages/agent-worker/src/shared/provider-auth-hints.ts similarity index 100% rename from packages/worker/src/shared/provider-auth-hints.ts rename to packages/agent-worker/src/shared/provider-auth-hints.ts diff --git a/packages/worker/src/shared/tool-display-config.ts b/packages/agent-worker/src/shared/tool-display-config.ts similarity index 100% rename from packages/worker/src/shared/tool-display-config.ts rename to packages/agent-worker/src/shared/tool-display-config.ts diff --git a/packages/worker/src/shared/tool-implementations.ts b/packages/agent-worker/src/shared/tool-implementations.ts similarity index 100% rename from packages/worker/src/shared/tool-implementations.ts rename to packages/agent-worker/src/shared/tool-implementations.ts diff --git a/packages/worker/src/shared/worker-env-keys.ts b/packages/agent-worker/src/shared/worker-env-keys.ts similarity index 100% rename from packages/worker/src/shared/worker-env-keys.ts rename to packages/agent-worker/src/shared/worker-env-keys.ts diff --git a/packages/worker/tsconfig.json b/packages/agent-worker/tsconfig.json similarity index 100% rename from packages/worker/tsconfig.json rename to packages/agent-worker/tsconfig.json diff --git a/packages/owletto-extension/manifest.json b/packages/browser-extension/manifest.json similarity index 100% rename from packages/owletto-extension/manifest.json rename to packages/browser-extension/manifest.json diff --git a/packages/owletto-extension/package.json b/packages/browser-extension/package.json similarity index 94% rename from packages/owletto-extension/package.json rename to packages/browser-extension/package.json index 4a0a1b8d8..2b12c98c6 100644 --- a/packages/owletto-extension/package.json +++ b/packages/browser-extension/package.json @@ -1,5 +1,5 @@ { - "name": "@lobu/owletto-extension", + "name": "@lobu/browser-extension", "version": "1.6.0", "private": true, "license": "BUSL-1.1", diff --git a/packages/owletto-extension/src/assets/icons/icon-128-mono.png b/packages/browser-extension/src/assets/icons/icon-128-mono.png similarity index 100% rename from packages/owletto-extension/src/assets/icons/icon-128-mono.png rename to packages/browser-extension/src/assets/icons/icon-128-mono.png diff --git a/packages/owletto-extension/src/assets/icons/icon-128.png b/packages/browser-extension/src/assets/icons/icon-128.png similarity index 100% rename from packages/owletto-extension/src/assets/icons/icon-128.png rename to packages/browser-extension/src/assets/icons/icon-128.png diff --git a/packages/owletto-extension/src/assets/icons/icon-16-mono.png b/packages/browser-extension/src/assets/icons/icon-16-mono.png similarity index 100% rename from packages/owletto-extension/src/assets/icons/icon-16-mono.png rename to packages/browser-extension/src/assets/icons/icon-16-mono.png diff --git a/packages/owletto-extension/src/assets/icons/icon-16.png b/packages/browser-extension/src/assets/icons/icon-16.png similarity index 100% rename from packages/owletto-extension/src/assets/icons/icon-16.png rename to packages/browser-extension/src/assets/icons/icon-16.png diff --git a/packages/owletto-extension/src/assets/icons/icon-48-mono.png b/packages/browser-extension/src/assets/icons/icon-48-mono.png similarity index 100% rename from packages/owletto-extension/src/assets/icons/icon-48-mono.png rename to packages/browser-extension/src/assets/icons/icon-48-mono.png diff --git a/packages/owletto-extension/src/assets/icons/icon-48.png b/packages/browser-extension/src/assets/icons/icon-48.png similarity index 100% rename from packages/owletto-extension/src/assets/icons/icon-48.png rename to packages/browser-extension/src/assets/icons/icon-48.png diff --git a/packages/owletto-extension/src/background/api-client.ts b/packages/browser-extension/src/background/api-client.ts similarity index 100% rename from packages/owletto-extension/src/background/api-client.ts rename to packages/browser-extension/src/background/api-client.ts diff --git a/packages/owletto-extension/src/background/auth.ts b/packages/browser-extension/src/background/auth.ts similarity index 100% rename from packages/owletto-extension/src/background/auth.ts rename to packages/browser-extension/src/background/auth.ts diff --git a/packages/owletto-extension/src/background/service-worker.ts b/packages/browser-extension/src/background/service-worker.ts similarity index 100% rename from packages/owletto-extension/src/background/service-worker.ts rename to packages/browser-extension/src/background/service-worker.ts diff --git a/packages/owletto-extension/src/background/state-manager.ts b/packages/browser-extension/src/background/state-manager.ts similarity index 100% rename from packages/owletto-extension/src/background/state-manager.ts rename to packages/browser-extension/src/background/state-manager.ts diff --git a/packages/owletto-extension/src/callback/callback.html b/packages/browser-extension/src/callback/callback.html similarity index 100% rename from packages/owletto-extension/src/callback/callback.html rename to packages/browser-extension/src/callback/callback.html diff --git a/packages/owletto-extension/src/callback/callback.ts b/packages/browser-extension/src/callback/callback.ts similarity index 100% rename from packages/owletto-extension/src/callback/callback.ts rename to packages/browser-extension/src/callback/callback.ts diff --git a/packages/owletto-extension/src/content/dom-interpreter.ts b/packages/browser-extension/src/content/dom-interpreter.ts similarity index 100% rename from packages/owletto-extension/src/content/dom-interpreter.ts rename to packages/browser-extension/src/content/dom-interpreter.ts diff --git a/packages/owletto-extension/src/content/index.ts b/packages/browser-extension/src/content/index.ts similarity index 100% rename from packages/owletto-extension/src/content/index.ts rename to packages/browser-extension/src/content/index.ts diff --git a/packages/owletto-extension/src/offscreen/document.html b/packages/browser-extension/src/offscreen/document.html similarity index 100% rename from packages/owletto-extension/src/offscreen/document.html rename to packages/browser-extension/src/offscreen/document.html diff --git a/packages/owletto-extension/src/offscreen/worker.ts b/packages/browser-extension/src/offscreen/worker.ts similarity index 100% rename from packages/owletto-extension/src/offscreen/worker.ts rename to packages/browser-extension/src/offscreen/worker.ts diff --git a/packages/owletto-extension/src/popup/Popup.tsx b/packages/browser-extension/src/popup/Popup.tsx similarity index 100% rename from packages/owletto-extension/src/popup/Popup.tsx rename to packages/browser-extension/src/popup/Popup.tsx diff --git a/packages/owletto-extension/src/popup/index.html b/packages/browser-extension/src/popup/index.html similarity index 100% rename from packages/owletto-extension/src/popup/index.html rename to packages/browser-extension/src/popup/index.html diff --git a/packages/owletto-extension/src/popup/main.tsx b/packages/browser-extension/src/popup/main.tsx similarity index 100% rename from packages/owletto-extension/src/popup/main.tsx rename to packages/browser-extension/src/popup/main.tsx diff --git a/packages/owletto-extension/src/popup/popup.css b/packages/browser-extension/src/popup/popup.css similarity index 100% rename from packages/owletto-extension/src/popup/popup.css rename to packages/browser-extension/src/popup/popup.css diff --git a/packages/owletto-extension/src/sidebar/App.tsx b/packages/browser-extension/src/sidebar/App.tsx similarity index 100% rename from packages/owletto-extension/src/sidebar/App.tsx rename to packages/browser-extension/src/sidebar/App.tsx diff --git a/packages/owletto-extension/src/sidebar/app.css b/packages/browser-extension/src/sidebar/app.css similarity index 100% rename from packages/owletto-extension/src/sidebar/app.css rename to packages/browser-extension/src/sidebar/app.css diff --git a/packages/owletto-extension/src/sidebar/index.html b/packages/browser-extension/src/sidebar/index.html similarity index 100% rename from packages/owletto-extension/src/sidebar/index.html rename to packages/browser-extension/src/sidebar/index.html diff --git a/packages/owletto-extension/src/sidebar/main.tsx b/packages/browser-extension/src/sidebar/main.tsx similarity index 100% rename from packages/owletto-extension/src/sidebar/main.tsx rename to packages/browser-extension/src/sidebar/main.tsx diff --git a/packages/owletto-extension/tsconfig.json b/packages/browser-extension/tsconfig.json similarity index 100% rename from packages/owletto-extension/tsconfig.json rename to packages/browser-extension/tsconfig.json diff --git a/packages/owletto-extension/vite.config.ts b/packages/browser-extension/vite.config.ts similarity index 100% rename from packages/owletto-extension/vite.config.ts rename to packages/browser-extension/vite.config.ts diff --git a/packages/cli/README.md b/packages/cli/README.md index 384cf001a..9e79d336e 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -38,7 +38,7 @@ For a custom Owletto deployment, `.env` keeps `MEMORY_URL` as the optional base ### `lobu run` -Boot the embedded Lobu stack — gateway + workers + embeddings + Owletto memory backend in a single Node process. `lobu.toml` is not required; set `DATABASE_URL` in the environment or `.env`, then the command spawns the bundled `@lobu/owletto-backend/dist/server.bundle.mjs`. Ctrl+C stops the process and any spawned worker subprocesses cleanly. +Boot the embedded Lobu stack — gateway + workers + embeddings + Owletto memory backend in a single Node process. `lobu.toml` is not required; set `DATABASE_URL` in the environment or `.env`, then the command spawns the bundled `@lobu/server/dist/server.bundle.mjs`. Ctrl+C stops the process and any spawned worker subprocesses cleanly. ## License diff --git a/packages/cli/package.json b/packages/cli/package.json index 24168081a..392217988 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -40,7 +40,7 @@ "@hono/zod-openapi": "^1.2.1", "@inquirer/prompts": "^7.10.1", "@lobu/core": "workspace:*", - "@lobu/owletto-sdk": "workspace:*", + "@lobu/connector-sdk": "workspace:*", "@lobu/worker": "workspace:*", "@mariozechner/pi-ai": "^0.51.6", "@modelcontextprotocol/sdk": "^1.27.1", diff --git a/packages/cli/scripts/build.cjs b/packages/cli/scripts/build.cjs index 28824145d..43faba735 100644 --- a/packages/cli/scripts/build.cjs +++ b/packages/cli/scripts/build.cjs @@ -30,20 +30,20 @@ if (fs.existsSync(providersSrc)) { fs.cpSync(providersSrc, providersDest); } -// Copy the owletto-backend server bundle so `lobu run` is self-contained. -// @lobu/owletto-backend is private (`private: true` in its package.json), +// Copy the server server bundle so `lobu run` is self-contained. +// @lobu/server is private (`private: true` in its package.json), // so `npx @lobu/cli` users can never resolve it via npm — they only get // what ships inside the CLI tarball. CI's publish flow builds the bundle // (`build:server`) before this script runs; if it's missing locally, run -// `bun run --filter '@lobu/owletto-backend' build:server` first. -const bundleSrc = "../owletto-backend/dist/server.bundle.mjs"; +// `bun run --filter '@lobu/server' build:server` first. +const bundleSrc = "../server/dist/server.bundle.mjs"; const bundleDest = "dist/server.bundle.mjs"; if (fs.existsSync(bundleSrc)) { fs.cpSync(bundleSrc, bundleDest); } else { console.warn( - `[cli build] owletto-backend bundle missing at ${bundleSrc}; ` + + `[cli build] server bundle missing at ${bundleSrc}; ` + "`lobu run` will fall back to monorepo-relative lookup. Run " + - "`bun run --filter '@lobu/owletto-backend' build:server` to bundle it." + "`bun run --filter '@lobu/server' build:server` to bundle it." ); } diff --git a/packages/cli/src/commands/_lib/apply/desired-state.ts b/packages/cli/src/commands/_lib/apply/desired-state.ts index ec06730f1..31397ef1d 100644 --- a/packages/cli/src/commands/_lib/apply/desired-state.ts +++ b/packages/cli/src/commands/_lib/apply/desired-state.ts @@ -11,7 +11,7 @@ import { // ── Stable platform IDs (mirror of file-loader.ts) ───────────────────────── // -// keep in sync with packages/owletto-backend/src/gateway/config/file-loader.ts +// keep in sync with packages/server/src/gateway/config/file-loader.ts function slugifyForPlatformId(input: string): string { return input .toLowerCase() @@ -19,7 +19,7 @@ function slugifyForPlatformId(input: string): string { .replace(/^-+|-+$/g, ""); } -// keep in sync with packages/owletto-backend/src/gateway/config/file-loader.ts +// keep in sync with packages/server/src/gateway/config/file-loader.ts export function buildStablePlatformId( agentId: string, type: string, diff --git a/packages/cli/src/commands/dev.ts b/packages/cli/src/commands/dev.ts index 5715fcad4..c7ec62c33 100644 --- a/packages/cli/src/commands/dev.ts +++ b/packages/cli/src/commands/dev.ts @@ -11,7 +11,7 @@ import { parseEnvContent } from "../internal/index.js"; /** * `lobu run` — start the embedded Lobu stack. * - * Spawns the bundled @lobu/owletto-backend Node server, which hosts the + * Spawns the bundled @lobu/server Node server, which hosts the * gateway, embedded workers, embeddings, and the Owletto memory backend * in-process. Workers are spawned as child subprocesses by the gateway's * EmbeddedDeploymentManager. Postgres must be reachable via DATABASE_URL @@ -71,7 +71,7 @@ export async function devCommand( ); console.error(chalk.dim(" In the monorepo, build it via:")); console.error( - chalk.dim(" bun run --filter '@lobu/owletto-backend' build:server\n") + chalk.dim(" bun run --filter '@lobu/server' build:server\n") ); process.exit(1); } @@ -152,9 +152,9 @@ export function resolveBackendBundle( } // 2. Resolved via node_modules — covers a workspace consumer that has - // `@lobu/owletto-backend` linked locally (e.g. internal monorepo). + // `@lobu/server` linked locally (e.g. internal monorepo). try { - return require_.resolve("@lobu/owletto-backend/dist/server.bundle.mjs"); + return require_.resolve("@lobu/server/dist/server.bundle.mjs"); } catch { // not installed as a dep } @@ -163,10 +163,7 @@ export function resolveBackendBundle( // fresh clone before the CLI itself has been published. let cur = here; for (let i = 0; i < 6; i++) { - const candidate = join( - cur, - "packages/owletto-backend/dist/server.bundle.mjs" - ); + const candidate = join(cur, "packages/server/dist/server.bundle.mjs"); if (existsSync(candidate)) return candidate; const parent = dirname(cur); if (parent === cur) break; diff --git a/packages/cli/src/commands/memory/_lib/browser-auth-cmd.ts b/packages/cli/src/commands/memory/_lib/browser-auth-cmd.ts index 95f54e0cd..1fbf0c50f 100644 --- a/packages/cli/src/commands/memory/_lib/browser-auth-cmd.ts +++ b/packages/cli/src/commands/memory/_lib/browser-auth-cmd.ts @@ -23,7 +23,7 @@ import { type CdpVersionInfo, fetchCdpVersionInfo, resolveCdpUrl, -} from "@lobu/owletto-sdk"; +} from "@lobu/connector-sdk"; import { printText } from "./output.js"; /** Stub of the old getProfile() shim. resolveMcpEndpoint falls through to diff --git a/packages/cli/src/commands/memory/_lib/install-targets.ts b/packages/cli/src/commands/memory/_lib/install-targets.ts index 64ff4e95c..cf3f0a12a 100644 --- a/packages/cli/src/commands/memory/_lib/install-targets.ts +++ b/packages/cli/src/commands/memory/_lib/install-targets.ts @@ -133,11 +133,7 @@ export const INSTALL_TARGETS: InstallTarget[] = [ mode: "auto", async configure(mcpUrl) { try { - runCommand("openclaw", [ - "plugins", - "install", - "owletto-openclaw-plugin", - ]); + runCommand("openclaw", ["plugins", "install", "@lobu/openclaw-plugin"]); } catch (e) { return { status: "failed", diff --git a/packages/cli/src/commands/memory/_lib/schema.ts b/packages/cli/src/commands/memory/_lib/schema.ts index 7ee9a5ccd..fa1feec6f 100644 --- a/packages/cli/src/commands/memory/_lib/schema.ts +++ b/packages/cli/src/commands/memory/_lib/schema.ts @@ -11,7 +11,7 @@ * Bump CURRENT_SCHEMA_VERSION when making breaking changes. */ -import { AutoCreateWhenRule } from "@lobu/owletto-sdk"; +import { AutoCreateWhenRule } from "@lobu/connector-sdk"; import { TypeCompiler } from "@sinclair/typebox/compiler"; export const CURRENT_SCHEMA_VERSION = 1; @@ -158,7 +158,7 @@ function requireObject( } // Single source of truth for auto_create_when shape lives in -// `@lobu/owletto-sdk`'s `AutoCreateWhenRule` schema. Compile once at module +// `@lobu/connector-sdk`'s `AutoCreateWhenRule` schema. Compile once at module // load and surface every TypeBox error as a ValidationError. const compiledRule = TypeCompiler.Compile(AutoCreateWhenRule); diff --git a/packages/cli/src/internal/oauth.ts b/packages/cli/src/internal/oauth.ts index fce797552..041c39856 100644 --- a/packages/cli/src/internal/oauth.ts +++ b/packages/cli/src/internal/oauth.ts @@ -1,7 +1,7 @@ /** * OAuth 2.0 device-code client used by `lobu login`. * - * Mirrors the same flow that `@lobu/owletto-openclaw` uses against + * Mirrors the same flow that `@lobu/openclaw-plugin` uses against * Owletto-hosted issuers: dynamic client registration (RFC 7591) + * device authorization grant (RFC 8628) + refresh-token grant. */ diff --git a/packages/connector-sdk/package.json b/packages/connector-sdk/package.json new file mode 100644 index 000000000..68e079679 --- /dev/null +++ b/packages/connector-sdk/package.json @@ -0,0 +1,59 @@ +{ + "name": "@lobu/connector-sdk", + "version": "5.0.0", + "description": "Lobu memory SDK \u2014 build pluggable connectors for Lobu memory", + "type": "module", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "import": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "require": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], + "scripts": { + "build": "tsc", + "typecheck": "tsc --noEmit", + "clean": "rm -rf dist" + }, + "dependencies": { + "@sinclair/typebox": "^0.34.41", + "ky": "^1.14.0", + "p-retry": "^7.1.0", + "pino": "^10.1.0" + }, + "peerDependencies": { + "playwright": "npm:patchright@^1.57.0" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": true + } + }, + "devDependencies": { + "@types/node": "^20.10.0", + "typescript": "^5.3.3" + }, + "engines": { + "node": ">=18" + }, + "license": "BUSL-1.1", + "publishConfig": { + "access": "public" + }, + "homepage": "https://github.com/lobu-ai/lobu", + "repository": { + "type": "git", + "url": "git+https://github.com/lobu-ai/lobu.git", + "directory": "packages/connector-sdk" + } +} diff --git a/packages/owletto-sdk/src/api-paginated.ts b/packages/connector-sdk/src/api-paginated.ts similarity index 100% rename from packages/owletto-sdk/src/api-paginated.ts rename to packages/connector-sdk/src/api-paginated.ts diff --git a/packages/owletto-sdk/src/base.ts b/packages/connector-sdk/src/base.ts similarity index 100% rename from packages/owletto-sdk/src/base.ts rename to packages/connector-sdk/src/base.ts diff --git a/packages/owletto-sdk/src/browser-network.ts b/packages/connector-sdk/src/browser-network.ts similarity index 100% rename from packages/owletto-sdk/src/browser-network.ts rename to packages/connector-sdk/src/browser-network.ts diff --git a/packages/owletto-sdk/src/browser-paginated.ts b/packages/connector-sdk/src/browser-paginated.ts similarity index 100% rename from packages/owletto-sdk/src/browser-paginated.ts rename to packages/connector-sdk/src/browser-paginated.ts diff --git a/packages/owletto-sdk/src/browser/acquire.ts b/packages/connector-sdk/src/browser/acquire.ts similarity index 100% rename from packages/owletto-sdk/src/browser/acquire.ts rename to packages/connector-sdk/src/browser/acquire.ts diff --git a/packages/owletto-sdk/src/browser/cdp-page.ts b/packages/connector-sdk/src/browser/cdp-page.ts similarity index 100% rename from packages/owletto-sdk/src/browser/cdp-page.ts rename to packages/connector-sdk/src/browser/cdp-page.ts diff --git a/packages/owletto-sdk/src/browser/cdp.ts b/packages/connector-sdk/src/browser/cdp.ts similarity index 100% rename from packages/owletto-sdk/src/browser/cdp.ts rename to packages/connector-sdk/src/browser/cdp.ts diff --git a/packages/owletto-sdk/src/browser/launcher.ts b/packages/connector-sdk/src/browser/launcher.ts similarity index 100% rename from packages/owletto-sdk/src/browser/launcher.ts rename to packages/connector-sdk/src/browser/launcher.ts diff --git a/packages/owletto-sdk/src/browser/stealth.ts b/packages/connector-sdk/src/browser/stealth.ts similarity index 100% rename from packages/owletto-sdk/src/browser/stealth.ts rename to packages/connector-sdk/src/browser/stealth.ts diff --git a/packages/owletto-sdk/src/connector-runtime.ts b/packages/connector-sdk/src/connector-runtime.ts similarity index 100% rename from packages/owletto-sdk/src/connector-runtime.ts rename to packages/connector-sdk/src/connector-runtime.ts diff --git a/packages/owletto-sdk/src/connector-types.ts b/packages/connector-sdk/src/connector-types.ts similarity index 100% rename from packages/owletto-sdk/src/connector-types.ts rename to packages/connector-sdk/src/connector-types.ts diff --git a/packages/owletto-sdk/src/event-taxonomy.ts b/packages/connector-sdk/src/event-taxonomy.ts similarity index 100% rename from packages/owletto-sdk/src/event-taxonomy.ts rename to packages/connector-sdk/src/event-taxonomy.ts diff --git a/packages/owletto-sdk/src/http.ts b/packages/connector-sdk/src/http.ts similarity index 100% rename from packages/owletto-sdk/src/http.ts rename to packages/connector-sdk/src/http.ts diff --git a/packages/owletto-sdk/src/identity-normalize.ts b/packages/connector-sdk/src/identity-normalize.ts similarity index 100% rename from packages/owletto-sdk/src/identity-normalize.ts rename to packages/connector-sdk/src/identity-normalize.ts diff --git a/packages/owletto-sdk/src/identity-types.ts b/packages/connector-sdk/src/identity-types.ts similarity index 100% rename from packages/owletto-sdk/src/identity-types.ts rename to packages/connector-sdk/src/identity-types.ts diff --git a/packages/owletto-sdk/src/index.ts b/packages/connector-sdk/src/index.ts similarity index 100% rename from packages/owletto-sdk/src/index.ts rename to packages/connector-sdk/src/index.ts diff --git a/packages/owletto-sdk/src/logger.ts b/packages/connector-sdk/src/logger.ts similarity index 88% rename from packages/owletto-sdk/src/logger.ts rename to packages/connector-sdk/src/logger.ts index bcd45b1f5..7b582f95d 100644 --- a/packages/owletto-sdk/src/logger.ts +++ b/packages/connector-sdk/src/logger.ts @@ -5,6 +5,6 @@ import pino from 'pino'; * Uses its own pino instance, separate from the main app logger */ export const sdkLogger = pino({ - name: 'owletto-sdk', + name: 'connector-sdk', level: process.env.LOG_LEVEL || 'info', }); diff --git a/packages/owletto-sdk/src/paginated.ts b/packages/connector-sdk/src/paginated.ts similarity index 100% rename from packages/owletto-sdk/src/paginated.ts rename to packages/connector-sdk/src/paginated.ts diff --git a/packages/owletto-sdk/src/reaction-sdk.ts b/packages/connector-sdk/src/reaction-sdk.ts similarity index 93% rename from packages/owletto-sdk/src/reaction-sdk.ts rename to packages/connector-sdk/src/reaction-sdk.ts index c72b56d31..5b6f503d6 100644 --- a/packages/owletto-sdk/src/reaction-sdk.ts +++ b/packages/connector-sdk/src/reaction-sdk.ts @@ -2,7 +2,7 @@ * Reaction context types. * * The runtime SDK reaction scripts call is `ClientSDK` (defined in - * `packages/owletto-backend/src/sandbox/client-sdk.ts`); only the context + * `packages/server/src/sandbox/client-sdk.ts`); only the context * shape is shared across packages, so only those types live here. */ diff --git a/packages/owletto-sdk/src/retry.ts b/packages/connector-sdk/src/retry.ts similarity index 100% rename from packages/owletto-sdk/src/retry.ts rename to packages/connector-sdk/src/retry.ts diff --git a/packages/owletto-sdk/src/scoring.ts b/packages/connector-sdk/src/scoring.ts similarity index 100% rename from packages/owletto-sdk/src/scoring.ts rename to packages/connector-sdk/src/scoring.ts diff --git a/packages/owletto-sdk/src/types.ts b/packages/connector-sdk/src/types.ts similarity index 100% rename from packages/owletto-sdk/src/types.ts rename to packages/connector-sdk/src/types.ts diff --git a/packages/owletto-sdk/src/watcher-time.ts b/packages/connector-sdk/src/watcher-time.ts similarity index 100% rename from packages/owletto-sdk/src/watcher-time.ts rename to packages/connector-sdk/src/watcher-time.ts diff --git a/packages/owletto-sdk/tsconfig.json b/packages/connector-sdk/tsconfig.json similarity index 100% rename from packages/owletto-sdk/tsconfig.json rename to packages/connector-sdk/tsconfig.json diff --git a/packages/owletto-worker/.dev.vars b/packages/connector-worker/.dev.vars similarity index 100% rename from packages/owletto-worker/.dev.vars rename to packages/connector-worker/.dev.vars diff --git a/packages/owletto-worker/README.md b/packages/connector-worker/README.md similarity index 92% rename from packages/owletto-worker/README.md rename to packages/connector-worker/README.md index 0eeadac29..57f4993a7 100644 --- a/packages/owletto-worker/README.md +++ b/packages/connector-worker/README.md @@ -1,17 +1,17 @@ -# @lobu/owletto-worker +# @lobu/connector-worker Self-hosted Lobu memory worker. Polls the backend for sync jobs, executes connectors locally, generates embeddings, and streams results back. Private workspace package — not published to npm. ## Usage ```bash -owletto-worker daemon --api-url https://api.example.com +connector-worker daemon --api-url https://api.example.com ``` ## Development ```bash -cd packages/owletto-worker +cd packages/connector-worker API_URL=http://localhost:8787 bun run daemon ``` diff --git a/packages/owletto-worker/integration-tests/subprocess-source-mode.test.ts b/packages/connector-worker/integration-tests/subprocess-source-mode.test.ts similarity index 100% rename from packages/owletto-worker/integration-tests/subprocess-source-mode.test.ts rename to packages/connector-worker/integration-tests/subprocess-source-mode.test.ts diff --git a/packages/owletto-worker/integration-tests/subprocess.test.ts b/packages/connector-worker/integration-tests/subprocess.test.ts similarity index 98% rename from packages/owletto-worker/integration-tests/subprocess.test.ts rename to packages/connector-worker/integration-tests/subprocess.test.ts index a01424287..7937ad138 100644 --- a/packages/owletto-worker/integration-tests/subprocess.test.ts +++ b/packages/connector-worker/integration-tests/subprocess.test.ts @@ -5,7 +5,7 @@ * package (and its workspace deps) to be built. Run with: * * make build-packages - * bun test packages/owletto-worker/integration-tests + * bun test packages/connector-worker/integration-tests * * They live outside `src/` so tsc doesn't compile them and so `bun test` * picked up by default test discovery doesn't pull them into unit-test diff --git a/packages/connector-worker/package.json b/packages/connector-worker/package.json new file mode 100644 index 000000000..4886fef6d --- /dev/null +++ b/packages/connector-worker/package.json @@ -0,0 +1,70 @@ +{ + "name": "@lobu/connector-worker", + "version": "1.6.0", + "description": "Self-hosted worker for Lobu memory \u2014 connectors and embedding generation", + "type": "module", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "bin": { + "connector-worker": "./dist/bin.js" + }, + "exports": { + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "./daemon": { + "import": "./dist/daemon/index.js", + "types": "./dist/daemon/index.d.ts" + }, + "./embeddings": { + "import": "./dist/embeddings.js", + "types": "./dist/embeddings.d.ts" + } + }, + "files": [ + "dist", + "README.md" + ], + "scripts": { + "build": "tsc", + "dev": "tsx watch --tsconfig tsconfig.json src/bin.ts", + "start": "node dist/bin.js", + "daemon": "tsx --tsconfig tsconfig.json src/bin.ts daemon", + "typecheck": "tsc --noEmit", + "clean": "rm -rf dist" + }, + "dependencies": { + "@lobu/connector-sdk": "workspace:*", + "@lobu/worker": "workspace:*", + "@xenova/transformers": "^2.17.2", + "jimp": "^1.6.0", + "playwright": "npm:patchright@^1.57.0", + "sharp": "^0.34.4" + }, + "devDependencies": { + "@types/node": "^20.10.0", + "tsx": "^4.7.0", + "typescript": "^5.3.3" + }, + "engines": { + "node": ">=18" + }, + "keywords": [ + "worker", + "connector", + "embedding", + "content", + "user-research" + ], + "license": "BUSL-1.1", + "repository": { + "type": "git", + "url": "git+https://github.com/lobu-ai/lobu.git", + "directory": "packages/connector-worker" + }, + "publishConfig": { + "access": "public" + } +} diff --git a/packages/owletto-worker/src/__tests__/redact.test.ts b/packages/connector-worker/src/__tests__/redact.test.ts similarity index 100% rename from packages/owletto-worker/src/__tests__/redact.test.ts rename to packages/connector-worker/src/__tests__/redact.test.ts diff --git a/packages/owletto-worker/src/bin.ts b/packages/connector-worker/src/bin.ts similarity index 97% rename from packages/owletto-worker/src/bin.ts rename to packages/connector-worker/src/bin.ts index 2a4e1198b..292532e54 100644 --- a/packages/owletto-worker/src/bin.ts +++ b/packages/connector-worker/src/bin.ts @@ -19,7 +19,7 @@ function printUsage(): void { @owletto/worker - Self-hosted worker for Owletto - connectors and embedding generation Usage: - owletto-worker [options] + connector-worker [options] Commands: daemon Start worker daemon (polls backend for jobs) @@ -43,7 +43,7 @@ Environment Variables: Examples: # Worker daemon - owletto-worker daemon --api-url https://api.example.com + connector-worker daemon --api-url https://api.example.com `); } diff --git a/packages/owletto-worker/src/daemon/client.ts b/packages/connector-worker/src/daemon/client.ts similarity index 100% rename from packages/owletto-worker/src/daemon/client.ts rename to packages/connector-worker/src/daemon/client.ts diff --git a/packages/owletto-worker/src/daemon/executor.ts b/packages/connector-worker/src/daemon/executor.ts similarity index 99% rename from packages/owletto-worker/src/daemon/executor.ts rename to packages/connector-worker/src/daemon/executor.ts index ccd620109..59a6e07e7 100644 --- a/packages/owletto-worker/src/daemon/executor.ts +++ b/packages/connector-worker/src/daemon/executor.ts @@ -5,7 +5,7 @@ * Generates embeddings and streams results. */ -import type { Checkpoint, Content } from '@lobu/owletto-sdk'; +import type { Checkpoint, Content } from '@lobu/connector-sdk'; import { generateEmbedding } from '../embeddings.js'; import { executeCompiledConnector, diff --git a/packages/owletto-worker/src/daemon/index.ts b/packages/connector-worker/src/daemon/index.ts similarity index 100% rename from packages/owletto-worker/src/daemon/index.ts rename to packages/connector-worker/src/daemon/index.ts diff --git a/packages/owletto-worker/src/daemon/worker.ts b/packages/connector-worker/src/daemon/worker.ts similarity index 100% rename from packages/owletto-worker/src/daemon/worker.ts rename to packages/connector-worker/src/daemon/worker.ts diff --git a/packages/owletto-worker/src/embeddings.ts b/packages/connector-worker/src/embeddings.ts similarity index 100% rename from packages/owletto-worker/src/embeddings.ts rename to packages/connector-worker/src/embeddings.ts diff --git a/packages/owletto-worker/src/executor/child-runner.ts b/packages/connector-worker/src/executor/child-runner.ts similarity index 98% rename from packages/owletto-worker/src/executor/child-runner.ts rename to packages/connector-worker/src/executor/child-runner.ts index 8e9fb5a8c..6ff9eb33f 100644 --- a/packages/owletto-worker/src/executor/child-runner.ts +++ b/packages/connector-worker/src/executor/child-runner.ts @@ -9,7 +9,7 @@ import { rm, writeFile } from 'node:fs/promises'; import { join } from 'node:path'; import { pathToFileURL } from 'node:url'; -import type { SyncResult } from '@lobu/owletto-sdk'; +import type { SyncResult } from '@lobu/connector-sdk'; import type { FeedSyncResult } from './interface.js'; import { normalizeEventEnvelope } from './runtime.js'; @@ -340,8 +340,8 @@ async function main() { error.message = `Connector requires '${pkg}' but it's not installed in the runtime image. ` + `'${pkg}' is declared as an external dependency in EXTERNAL_RUNTIME_DEPS ` + - `(packages/owletto-worker/src/runtime-deps.ts). ` + - `Add it to packages/owletto-worker/package.json and rebuild the runtime image.`; + `(packages/connector-worker/src/runtime-deps.ts). ` + + `Add it to packages/connector-worker/package.json and rebuild the runtime image.`; } await sendIPC({ type: 'error', diff --git a/packages/owletto-worker/src/executor/interface.ts b/packages/connector-worker/src/executor/interface.ts similarity index 98% rename from packages/owletto-worker/src/executor/interface.ts rename to packages/connector-worker/src/executor/interface.ts index a70f6300d..7f8fb1187 100644 --- a/packages/owletto-worker/src/executor/interface.ts +++ b/packages/connector-worker/src/executor/interface.ts @@ -1,4 +1,4 @@ -import type { Checkpoint, Content, FeedOptions, SessionState } from '@lobu/owletto-sdk'; +import type { Checkpoint, Content, FeedOptions, SessionState } from '@lobu/connector-sdk'; /** * Result shape returned by the subprocess executor. diff --git a/packages/owletto-worker/src/executor/redact.ts b/packages/connector-worker/src/executor/redact.ts similarity index 100% rename from packages/owletto-worker/src/executor/redact.ts rename to packages/connector-worker/src/executor/redact.ts diff --git a/packages/owletto-worker/src/executor/runtime.ts b/packages/connector-worker/src/executor/runtime.ts similarity index 99% rename from packages/owletto-worker/src/executor/runtime.ts rename to packages/connector-worker/src/executor/runtime.ts index b5fe438db..541b21b2e 100644 --- a/packages/owletto-worker/src/executor/runtime.ts +++ b/packages/connector-worker/src/executor/runtime.ts @@ -1,4 +1,4 @@ -import type { Checkpoint, Content, FeedOptions, SessionState } from '@lobu/owletto-sdk'; +import type { Checkpoint, Content, FeedOptions, SessionState } from '@lobu/connector-sdk'; import type { ExecutionHooks, FeedSyncResult, SyncContext, SyncExecutor } from './interface.js'; import { SubprocessExecutor } from './subprocess.js'; diff --git a/packages/owletto-worker/src/executor/subprocess.ts b/packages/connector-worker/src/executor/subprocess.ts similarity index 100% rename from packages/owletto-worker/src/executor/subprocess.ts rename to packages/connector-worker/src/executor/subprocess.ts diff --git a/packages/owletto-worker/src/index.ts b/packages/connector-worker/src/index.ts similarity index 88% rename from packages/owletto-worker/src/index.ts rename to packages/connector-worker/src/index.ts index 07a5a580f..0562ede68 100644 --- a/packages/owletto-worker/src/index.ts +++ b/packages/connector-worker/src/index.ts @@ -5,7 +5,7 @@ * Includes subprocess executor and embedding generation. * * Usage: - * owletto-worker daemon --api-url https://api.example.com + * connector-worker daemon --api-url https://api.example.com */ export type { diff --git a/packages/owletto-worker/src/runtime-deps.ts b/packages/connector-worker/src/runtime-deps.ts similarity index 78% rename from packages/owletto-worker/src/runtime-deps.ts rename to packages/connector-worker/src/runtime-deps.ts index e14c9d5d3..cdfdc445f 100644 --- a/packages/owletto-worker/src/runtime-deps.ts +++ b/packages/connector-worker/src/runtime-deps.ts @@ -3,12 +3,12 @@ * which we deliberately do NOT bundle into the compiled connector artifact. * * These deps must be installed in every runtime that executes compiled - * connectors — the owletto-backend container that hosts in-process feed sync, - * and the owletto-worker daemon that runs out-of-process. They appear in: + * connectors — the server container that hosts in-process feed sync, + * and the connector-worker daemon that runs out-of-process. They appear in: * - * - `owletto-backend/src/utils/connector-compiler.ts` `external` list + * - `server/src/utils/connector-compiler.ts` `external` list * (esbuild leaves the imports as bare specifiers in the bundle) - * - `packages/owletto-worker/package.json` dependencies (so the runtime can + * - `packages/connector-worker/package.json` dependencies (so the runtime can * resolve them) * - `assertExternalDepsResolvable()` (boot-time check that crashes loud * instead of failing silently per-feed) @@ -45,9 +45,9 @@ export function assertExternalDepsResolvable( if (missing.length > 0) { throw new Error( `Connector runtime is missing required npm packages: ${missing.join(', ')}. ` + - `These are declared in EXTERNAL_RUNTIME_DEPS (packages/owletto-worker/src/runtime-deps.ts) ` + + `These are declared in EXTERNAL_RUNTIME_DEPS (packages/connector-worker/src/runtime-deps.ts) ` + `and must be installed in every runtime that executes compiled connectors. ` + - `Add them to packages/owletto-worker/package.json and rebuild the runtime image.` + `Add them to packages/connector-worker/package.json and rebuild the runtime image.` ); } } diff --git a/packages/connector-worker/src/types.ts b/packages/connector-worker/src/types.ts new file mode 100644 index 000000000..afac70221 --- /dev/null +++ b/packages/connector-worker/src/types.ts @@ -0,0 +1 @@ +export type { Env } from '@lobu/connector-sdk'; diff --git a/packages/owletto-worker/tsconfig.json b/packages/connector-worker/tsconfig.json similarity index 100% rename from packages/owletto-worker/tsconfig.json rename to packages/connector-worker/tsconfig.json diff --git a/packages/connectors/package.json b/packages/connectors/package.json new file mode 100644 index 000000000..ce879015f --- /dev/null +++ b/packages/connectors/package.json @@ -0,0 +1,31 @@ +{ + "name": "@lobu/connectors", + "version": "1.6.0", + "license": "BUSL-1.1", + "type": "module", + "description": "Lobu memory connectors \u2014 third-party integration implementations built on @lobu/connector-sdk", + "scripts": { + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "@lobu/connector-sdk": "workspace:*", + "playwright": "npm:patchright@^1.57.0" + }, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/lobu-ai/lobu.git", + "directory": "packages/connectors" + }, + "files": [ + "src" + ], + "exports": { + ".": "./src/index.ts", + "./*": "./src/*.ts" + }, + "main": "src/index.ts", + "types": "src/index.ts" +} diff --git a/packages/owletto-connectors/src/README.md b/packages/connectors/src/README.md similarity index 99% rename from packages/owletto-connectors/src/README.md rename to packages/connectors/src/README.md index b32e2ab9b..1cf305dd9 100644 --- a/packages/owletto-connectors/src/README.md +++ b/packages/connectors/src/README.md @@ -1,6 +1,6 @@ # Connector SDK -Connectors are TypeScript modules that sync data from external services into Owletto and optionally execute write-back actions. Each connector is a single `.ts` file that exports a class extending `ConnectorRuntime` from `@lobu/owletto-sdk`. +Connectors are TypeScript modules that sync data from external services into Owletto and optionally execute write-back actions. Each connector is a single `.ts` file that exports a class extending `ConnectorRuntime` from `@lobu/connector-sdk`. ## Quick Start @@ -13,7 +13,7 @@ import { type ActionContext, type ActionResult, type EventEnvelope, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; export default class MyConnector extends ConnectorRuntime { readonly definition: ConnectorDefinition = { @@ -367,7 +367,7 @@ The `optionsSchema` defines global connector-level configuration (JSON Schema) t The SDK exports `calculateEngagementScore()` for normalizing platform-specific engagement metrics to a 0-100 score: ```typescript -import { calculateEngagementScore } from '@lobu/owletto-sdk'; +import { calculateEngagementScore } from '@lobu/connector-sdk'; const score = calculateEngagementScore('reddit', { score: 1500, // Reddit karma (upvotes - downvotes) diff --git a/packages/owletto-connectors/src/browser-scraper-utils.ts b/packages/connectors/src/browser-scraper-utils.ts similarity index 99% rename from packages/owletto-connectors/src/browser-scraper-utils.ts rename to packages/connectors/src/browser-scraper-utils.ts index 55ffea893..5dbc28ce0 100644 --- a/packages/owletto-connectors/src/browser-scraper-utils.ts +++ b/packages/connectors/src/browser-scraper-utils.ts @@ -10,7 +10,7 @@ import { type CdpPage, captureErrorArtifacts, type EventEnvelope, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; import type { Browser, Cookie, Page } from 'playwright'; // ----------------------------------------------------------------------------- diff --git a/packages/owletto-connectors/src/capterra.ts b/packages/connectors/src/capterra.ts similarity index 99% rename from packages/owletto-connectors/src/capterra.ts rename to packages/connectors/src/capterra.ts index 1a1bcbe6b..fb8f64aa3 100644 --- a/packages/owletto-connectors/src/capterra.ts +++ b/packages/connectors/src/capterra.ts @@ -12,7 +12,7 @@ import { type EventEnvelope, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; import { handleCookieConsent, openStealthBrowser, diff --git a/packages/owletto-connectors/src/g2.ts b/packages/connectors/src/g2.ts similarity index 99% rename from packages/owletto-connectors/src/g2.ts rename to packages/connectors/src/g2.ts index f6660dd81..c71e0efb4 100644 --- a/packages/owletto-connectors/src/g2.ts +++ b/packages/connectors/src/g2.ts @@ -13,7 +13,7 @@ import { type EventEnvelope, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; import { handleCookieConsent, openStealthBrowser, diff --git a/packages/owletto-connectors/src/github.ts b/packages/connectors/src/github.ts similarity index 99% rename from packages/owletto-connectors/src/github.ts rename to packages/connectors/src/github.ts index d2abde468..287d43b2f 100644 --- a/packages/owletto-connectors/src/github.ts +++ b/packages/connectors/src/github.ts @@ -12,7 +12,7 @@ import { type EventEnvelope, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; type GitHubContentType = | 'issues' diff --git a/packages/owletto-connectors/src/glassdoor.ts b/packages/connectors/src/glassdoor.ts similarity index 99% rename from packages/owletto-connectors/src/glassdoor.ts rename to packages/connectors/src/glassdoor.ts index 94d7dd165..85ff358d8 100644 --- a/packages/owletto-connectors/src/glassdoor.ts +++ b/packages/connectors/src/glassdoor.ts @@ -14,7 +14,7 @@ import { type EventEnvelope, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; import { handleCookieConsent, openStealthBrowser, diff --git a/packages/owletto-connectors/src/gmaps.ts b/packages/connectors/src/gmaps.ts similarity index 99% rename from packages/owletto-connectors/src/gmaps.ts rename to packages/connectors/src/gmaps.ts index 04348b63a..8b7333438 100644 --- a/packages/owletto-connectors/src/gmaps.ts +++ b/packages/connectors/src/gmaps.ts @@ -13,7 +13,7 @@ import { type EventEnvelope, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; import { filterByCheckpoint } from './browser-scraper-utils.ts'; interface GMapsReview { diff --git a/packages/owletto-connectors/src/google_calendar.ts b/packages/connectors/src/google_calendar.ts similarity index 99% rename from packages/owletto-connectors/src/google_calendar.ts rename to packages/connectors/src/google_calendar.ts index cb3162f12..708f81253 100644 --- a/packages/owletto-connectors/src/google_calendar.ts +++ b/packages/connectors/src/google_calendar.ts @@ -13,7 +13,7 @@ import { type EventEnvelope, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; // --------------------------------------------------------------------------- // Calendar API types diff --git a/packages/owletto-connectors/src/google_gmail.ts b/packages/connectors/src/google_gmail.ts similarity index 99% rename from packages/owletto-connectors/src/google_gmail.ts rename to packages/connectors/src/google_gmail.ts index 043acb274..7c49d6723 100644 --- a/packages/owletto-connectors/src/google_gmail.ts +++ b/packages/connectors/src/google_gmail.ts @@ -14,7 +14,7 @@ import { IDENTITY, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; // --------------------------------------------------------------------------- // Gmail API types diff --git a/packages/owletto-connectors/src/google_photos.ts b/packages/connectors/src/google_photos.ts similarity index 99% rename from packages/owletto-connectors/src/google_photos.ts rename to packages/connectors/src/google_photos.ts index 7c30a563d..e18481cd1 100644 --- a/packages/owletto-connectors/src/google_photos.ts +++ b/packages/connectors/src/google_photos.ts @@ -24,7 +24,7 @@ import { type SyncContext, type SyncResult, sdkLogger, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; // ── Types ────────────────────────────────────────────────────── @@ -148,7 +148,7 @@ async function fetchCookiesViaCdp(cdpUrl: string): Promise { } async function resolveToWs(httpUrl: string): Promise { - const { fetchCdpVersionInfo } = await import('@lobu/owletto-sdk'); + const { fetchCdpVersionInfo } = await import('@lobu/connector-sdk'); const info = await fetchCdpVersionInfo(httpUrl); if (!info?.webSocketDebuggerUrl) { throw new Error(`CDP endpoint did not respond at ${httpUrl}`); diff --git a/packages/owletto-connectors/src/google_play.ts b/packages/connectors/src/google_play.ts similarity index 99% rename from packages/owletto-connectors/src/google_play.ts rename to packages/connectors/src/google_play.ts index 5f26f1756..3edb7ca7c 100644 --- a/packages/owletto-connectors/src/google_play.ts +++ b/packages/connectors/src/google_play.ts @@ -14,7 +14,7 @@ import { type EventEnvelope, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; // ── Google Play batchexecute API helpers ──────────────────────────── diff --git a/packages/owletto-connectors/src/hackernews.ts b/packages/connectors/src/hackernews.ts similarity index 99% rename from packages/owletto-connectors/src/hackernews.ts rename to packages/connectors/src/hackernews.ts index c0c139be8..2ce1ec9e6 100644 --- a/packages/owletto-connectors/src/hackernews.ts +++ b/packages/connectors/src/hackernews.ts @@ -15,7 +15,7 @@ import { type EventEnvelope, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; // --------------------------------------------------------------------------- // Algolia HN API types diff --git a/packages/connectors/src/index.ts b/packages/connectors/src/index.ts new file mode 100644 index 000000000..efa31ba70 --- /dev/null +++ b/packages/connectors/src/index.ts @@ -0,0 +1,23 @@ +export * from './browser-scraper-utils.ts'; +export * from './capterra.ts'; +export * from './g2.ts'; +export * from './github.ts'; +export * from './glassdoor.ts'; +export * from './gmaps.ts'; +export * from './google_calendar.ts'; +export * from './google_gmail.ts'; +export * from './google_photos.ts'; +export * from './google_play.ts'; +export * from './hackernews.ts'; +export * from './ios_appstore.ts'; +export * from './linkedin.ts'; +export * from './microsoft_outlook.ts'; +export * from './producthunt.ts'; +export * from './reddit.ts'; +export * from './rss.ts'; +export * from './spotify.ts'; +export * from './trustpilot.ts'; +export * from './website.ts'; +export * from './whatsapp.ts'; +export * from './x.ts'; +export * from './youtube.ts'; diff --git a/packages/owletto-connectors/src/ios_appstore.ts b/packages/connectors/src/ios_appstore.ts similarity index 99% rename from packages/owletto-connectors/src/ios_appstore.ts rename to packages/connectors/src/ios_appstore.ts index b580ae3c0..dd08b13f5 100644 --- a/packages/owletto-connectors/src/ios_appstore.ts +++ b/packages/connectors/src/ios_appstore.ts @@ -13,7 +13,7 @@ import { type EventEnvelope, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; const IOS_HEADERS: Record = { 'User-Agent': diff --git a/packages/owletto-connectors/src/linkedin.ts b/packages/connectors/src/linkedin.ts similarity index 99% rename from packages/owletto-connectors/src/linkedin.ts rename to packages/connectors/src/linkedin.ts index ad9b5584f..1247a9a3b 100644 --- a/packages/owletto-connectors/src/linkedin.ts +++ b/packages/connectors/src/linkedin.ts @@ -18,7 +18,7 @@ import { type EventEnvelope, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; import { getBrowserCookies, validateCookieNotExpired } from './browser-scraper-utils'; // ── Types ────────────────────────────────────────────────────── diff --git a/packages/owletto-connectors/src/microsoft_outlook.ts b/packages/connectors/src/microsoft_outlook.ts similarity index 99% rename from packages/owletto-connectors/src/microsoft_outlook.ts rename to packages/connectors/src/microsoft_outlook.ts index 2567a3b0c..432bc82e6 100644 --- a/packages/owletto-connectors/src/microsoft_outlook.ts +++ b/packages/connectors/src/microsoft_outlook.ts @@ -13,7 +13,7 @@ import { type EventEnvelope, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; // --------------------------------------------------------------------------- // Microsoft Graph API types diff --git a/packages/owletto-connectors/src/producthunt.ts b/packages/connectors/src/producthunt.ts similarity index 99% rename from packages/owletto-connectors/src/producthunt.ts rename to packages/connectors/src/producthunt.ts index 1aa821214..66bb8c19b 100644 --- a/packages/owletto-connectors/src/producthunt.ts +++ b/packages/connectors/src/producthunt.ts @@ -14,7 +14,7 @@ import { type EventEnvelope, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; // --------------------------------------------------------------------------- // Product Hunt GraphQL API types diff --git a/packages/owletto-connectors/src/reddit.ts b/packages/connectors/src/reddit.ts similarity index 99% rename from packages/owletto-connectors/src/reddit.ts rename to packages/connectors/src/reddit.ts index f4d081295..413ebf3b4 100644 --- a/packages/owletto-connectors/src/reddit.ts +++ b/packages/connectors/src/reddit.ts @@ -14,7 +14,7 @@ import { type EventEnvelope, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; // --------------------------------------------------------------------------- // Reddit API types diff --git a/packages/owletto-connectors/src/rss.ts b/packages/connectors/src/rss.ts similarity index 99% rename from packages/owletto-connectors/src/rss.ts rename to packages/connectors/src/rss.ts index dae179114..c9b321f35 100644 --- a/packages/owletto-connectors/src/rss.ts +++ b/packages/connectors/src/rss.ts @@ -14,7 +14,7 @@ import { type EventEnvelope, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; // --------------------------------------------------------------------------- // Types diff --git a/packages/owletto-connectors/src/spotify.ts b/packages/connectors/src/spotify.ts similarity index 99% rename from packages/owletto-connectors/src/spotify.ts rename to packages/connectors/src/spotify.ts index ed0a6defb..e46e0467f 100644 --- a/packages/owletto-connectors/src/spotify.ts +++ b/packages/connectors/src/spotify.ts @@ -13,7 +13,7 @@ import { type EventEnvelope, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; // --------------------------------------------------------------------------- // Spotify API types diff --git a/packages/owletto-connectors/src/trustpilot.ts b/packages/connectors/src/trustpilot.ts similarity index 99% rename from packages/owletto-connectors/src/trustpilot.ts rename to packages/connectors/src/trustpilot.ts index 44e8f889f..b833e5e89 100644 --- a/packages/owletto-connectors/src/trustpilot.ts +++ b/packages/connectors/src/trustpilot.ts @@ -13,7 +13,7 @@ import { type EventEnvelope, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; import { handleCookieConsent, openStealthBrowser, diff --git a/packages/owletto-connectors/src/website.ts b/packages/connectors/src/website.ts similarity index 99% rename from packages/owletto-connectors/src/website.ts rename to packages/connectors/src/website.ts index 875186454..079d58905 100644 --- a/packages/owletto-connectors/src/website.ts +++ b/packages/connectors/src/website.ts @@ -18,7 +18,7 @@ import { launchBrowser, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; import type { Page } from 'playwright'; interface PageSection { diff --git a/packages/owletto-connectors/src/whatsapp.ts b/packages/connectors/src/whatsapp.ts similarity index 99% rename from packages/owletto-connectors/src/whatsapp.ts rename to packages/connectors/src/whatsapp.ts index f0bc6e470..f1bad398d 100644 --- a/packages/owletto-connectors/src/whatsapp.ts +++ b/packages/connectors/src/whatsapp.ts @@ -21,7 +21,7 @@ import { IDENTITY, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; // --------------------------------------------------------------------------- // Baileys (pinned) diff --git a/packages/owletto-connectors/src/x.ts b/packages/connectors/src/x.ts similarity index 99% rename from packages/owletto-connectors/src/x.ts rename to packages/connectors/src/x.ts index 8b5e8f226..0d31f5264 100644 --- a/packages/owletto-connectors/src/x.ts +++ b/packages/connectors/src/x.ts @@ -16,7 +16,7 @@ import { type EventEnvelope, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; import { getBrowserCookies, validateCookieNotExpired } from './browser-scraper-utils'; interface XCheckpoint { diff --git a/packages/owletto-connectors/src/youtube.ts b/packages/connectors/src/youtube.ts similarity index 99% rename from packages/owletto-connectors/src/youtube.ts rename to packages/connectors/src/youtube.ts index 4f37ca58f..c9bbfe197 100644 --- a/packages/owletto-connectors/src/youtube.ts +++ b/packages/connectors/src/youtube.ts @@ -15,7 +15,7 @@ import { type EventEnvelope, type SyncContext, type SyncResult, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; // --------------------------------------------------------------------------- // YouTube API types diff --git a/packages/owletto-connectors/tsconfig.json b/packages/connectors/tsconfig.json similarity index 100% rename from packages/owletto-connectors/tsconfig.json rename to packages/connectors/tsconfig.json diff --git a/packages/embeddings/package.json b/packages/embeddings/package.json new file mode 100644 index 000000000..a2e4fea8d --- /dev/null +++ b/packages/embeddings/package.json @@ -0,0 +1,53 @@ +{ + "name": "@lobu/embeddings", + "version": "1.6.0", + "license": "BUSL-1.1", + "type": "module", + "description": "Embeddings HTTP service for Lobu memory", + "main": "dist/index.js", + "scripts": { + "dev": "tsx watch --tsconfig tsconfig.json src/server.ts", + "start": "tsx --tsconfig tsconfig.json src/server.ts", + "typecheck": "tsc --noEmit", + "build": "tsc" + }, + "dependencies": { + "@hono/node-server": "^1.13.7", + "@xenova/transformers": "^2.17.2", + "hono": "^4.10.4" + }, + "devDependencies": { + "@types/node": "^22.10.2", + "tsx": "^4.19.2", + "typescript": "^5.7.2" + }, + "engines": { + "node": ">=20" + }, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/lobu-ai/lobu.git", + "directory": "packages/embeddings" + }, + "types": "dist/index.d.ts", + "files": [ + "dist" + ], + "exports": { + ".": { + "import": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "./server": { + "import": { + "types": "./dist/server.d.ts", + "default": "./dist/server.js" + } + } + } +} diff --git a/packages/owletto-embeddings/src/embedding-utils.ts b/packages/embeddings/src/embedding-utils.ts similarity index 100% rename from packages/owletto-embeddings/src/embedding-utils.ts rename to packages/embeddings/src/embedding-utils.ts diff --git a/packages/owletto-embeddings/src/embeddings.ts b/packages/embeddings/src/embeddings.ts similarity index 100% rename from packages/owletto-embeddings/src/embeddings.ts rename to packages/embeddings/src/embeddings.ts diff --git a/packages/embeddings/src/index.ts b/packages/embeddings/src/index.ts new file mode 100644 index 000000000..27410c0c9 --- /dev/null +++ b/packages/embeddings/src/index.ts @@ -0,0 +1,3 @@ +export * from './embedding-utils.js'; +export * from './embeddings.js'; +export * from './openai.js'; diff --git a/packages/owletto-embeddings/src/openai.ts b/packages/embeddings/src/openai.ts similarity index 100% rename from packages/owletto-embeddings/src/openai.ts rename to packages/embeddings/src/openai.ts diff --git a/packages/owletto-embeddings/src/server.ts b/packages/embeddings/src/server.ts similarity index 100% rename from packages/owletto-embeddings/src/server.ts rename to packages/embeddings/src/server.ts diff --git a/packages/owletto-embeddings/tsconfig.json b/packages/embeddings/tsconfig.json similarity index 95% rename from packages/owletto-embeddings/tsconfig.json rename to packages/embeddings/tsconfig.json index c7eac3eca..4404aa543 100644 --- a/packages/owletto-embeddings/tsconfig.json +++ b/packages/embeddings/tsconfig.json @@ -13,7 +13,7 @@ "resolveJsonModule": true, "allowSyntheticDefaultImports": true, "forceConsistentCasingInFileNames": true, - "noEmit": true + "noEmit": false }, "include": ["src/**/*"], "exclude": ["node_modules", "dist"] diff --git a/packages/landing/scripts/gen-platform-configs.ts b/packages/landing/scripts/gen-platform-configs.ts index db63a93f4..43546cd42 100644 --- a/packages/landing/scripts/gen-platform-configs.ts +++ b/packages/landing/scripts/gen-platform-configs.ts @@ -13,7 +13,7 @@ import { fileURLToPath } from "node:url"; const __dirname = dirname(fileURLToPath(import.meta.url)); const connectionsFile = resolve( __dirname, - "../../owletto-backend/src/gateway/routes/public/connections.ts" + "../../server/src/gateway/routes/public/connections.ts" ); const source = readFileSync(connectionsFile, "utf-8"); diff --git a/packages/landing/src/connect-from-config.ts b/packages/landing/src/connect-from-config.ts index 000e301f8..0a4a2b684 100644 --- a/packages/landing/src/connect-from-config.ts +++ b/packages/landing/src/connect-from-config.ts @@ -118,19 +118,19 @@ const connectFromClientConfigs: Record< valueProp: "Layer structured, shareable Owletto memory on top of OpenClaw's built-in filesystem memory — the plugin extends OpenClaw's filesystem plugin and can optionally take over its memory slot, so different OpenClaw agents can talk to each other through the same Owletto graph.", installPrompt: - "Install Lobu memory in OpenClaw. Run:\n\n openclaw plugins install owletto-openclaw-plugin\n lobu login\n lobu memory configure --url https://lobu.ai/mcp --org \n lobu memory health --url https://lobu.ai/mcp --org \n\nThe plugin extends OpenClaw's filesystem plugin and can replace its memory slot. After install, point me at the Lobu memory workspace I should use as shared memory across my OpenClaw agents.", + "Install Lobu memory in OpenClaw. Run:\n\n openclaw plugins install @lobu/openclaw-plugin\n lobu login\n lobu memory configure --url https://lobu.ai/mcp --org \n lobu memory health --url https://lobu.ai/mcp --org \n\nThe plugin extends OpenClaw's filesystem plugin and can replace its memory slot. After install, point me at the Lobu memory workspace I should use as shared memory across my OpenClaw agents.", npmPackage: { - name: "@lobu/owletto-openclaw", - registryUrl: "https://www.npmjs.com/package/@lobu/owletto-openclaw", + name: "@lobu/openclaw-plugin", + registryUrl: "https://www.npmjs.com/package/@lobu/openclaw-plugin", sourceUrl: "https://github.com/lobu-ai/owletto/tree/main/packages/openclaw-plugin", - installCommand: "openclaw plugins install owletto-openclaw-plugin", + installCommand: "openclaw plugins install @lobu/openclaw-plugin", }, describe: (showcase) => `Install Owletto into OpenClaw and point it at the ${showcase.label.toLowerCase()} workspace so multiple OpenClaw agents share the same memory shown in this example.`, docsSetupTitle: "Install in OpenClaw", docsSetupSteps: [ - "Install the plugin: `openclaw plugins install owletto-openclaw-plugin`.", + "Install the plugin: `openclaw plugins install @lobu/openclaw-plugin`.", "Log in to Lobu: `lobu login`.", "Wire it into OpenClaw: `lobu memory configure --url https://lobu.ai/mcp --org ` (writes the plugin config and, if you opt in, takes over the filesystem memory slot).", "Verify: `lobu memory health --url https://lobu.ai/mcp --org `.", diff --git a/packages/landing/src/content/blog/filesystem-vs-database-agent-memory.mdx b/packages/landing/src/content/blog/filesystem-vs-database-agent-memory.mdx index d6eb6ff5d..60b676314 100644 --- a/packages/landing/src/content/blog/filesystem-vs-database-agent-memory.mdx +++ b/packages/landing/src/content/blog/filesystem-vs-database-agent-memory.mdx @@ -112,7 +112,7 @@ Lobu makes this split explicit. - In file-first projects, Lobu enables Owletto from `[memory.owletto]` in `lobu.toml`. - `MEMORY_URL` is still supported as an optional base-endpoint override for local or custom Owletto deployments. - If no Owletto config is resolved, Lobu uses `@openclaw/native-memory`, so memory stays local to that workspace. -- If Owletto is configured, Lobu uses `@lobu/owletto-openclaw` when that plugin is installed, otherwise it falls back to native memory. +- If Owletto is configured, Lobu uses `@lobu/openclaw-plugin` when that plugin is installed, otherwise it falls back to native memory. Owletto is the shared organizational memory layer: diff --git a/packages/landing/src/content/docs/guides/agent-settings.md b/packages/landing/src/content/docs/guides/agent-settings.md index 4e6b8a0f5..d9fe7d85b 100644 --- a/packages/landing/src/content/docs/guides/agent-settings.md +++ b/packages/landing/src/content/docs/guides/agent-settings.md @@ -40,7 +40,7 @@ Memory is pluggable. In file-first projects, the gateway first checks `[memory.o | Effective config | Plugin used | |---|---| | `[memory.owletto]` disabled or unresolved, and no `MEMORY_URL` override | `@openclaw/native-memory` — files under the worker workspace. Not shared across threads. | -| `[memory.owletto]` enabled | `@lobu/owletto-openclaw` — the OpenClaw memory plugin for Owletto. It translates OpenClaw memory calls into Owletto MCP requests via the gateway's `/mcp/owletto` proxy. Cross-session, shareable across agents. | +| `[memory.owletto]` enabled | `@lobu/openclaw-plugin` — the OpenClaw memory plugin for Owletto. It translates OpenClaw memory calls into Owletto MCP requests via the gateway's `/mcp/owletto` proxy. Cross-session, shareable across agents. | | `MEMORY_URL` set | Used as the base Owletto MCP endpoint before Lobu scopes it to the org from `[memory.owletto]` in `lobu.toml`. Useful for local or custom Owletto deployments. | `lobu init` now scaffolds the file-first Owletto memory layout for memory-enabled projects: @@ -63,7 +63,7 @@ Switch one agent to Owletto: { "pluginsConfig": { "plugins": [ - { "source": "@lobu/owletto-openclaw", "slot": "memory", "enabled": true } + { "source": "@lobu/openclaw-plugin", "slot": "memory", "enabled": true } ] } } @@ -71,7 +71,7 @@ Switch one agent to Owletto: The gateway injects the internal `mcpUrl` and `gatewayAuthUrl` automatically — you don't need to hand-write them. -That means the plugin source is the only part you normally set yourself. OpenClaw loads `@lobu/owletto-openclaw` as the agent's `slot: "memory"` plugin, and Lobu fills in the proxy/auth details needed to reach Owletto safely. +That means the plugin source is the only part you normally set yourself. OpenClaw loads `@lobu/openclaw-plugin` as the agent's `slot: "memory"` plugin, and Lobu fills in the proxy/auth details needed to reach Owletto safely. Switch to native memory: diff --git a/packages/landing/src/content/docs/guides/architecture.mdx b/packages/landing/src/content/docs/guides/architecture.mdx index 991a2efc8..4495f9d6f 100644 --- a/packages/landing/src/content/docs/guides/architecture.mdx +++ b/packages/landing/src/content/docs/guides/architecture.mdx @@ -27,7 +27,7 @@ Lobu runs as a gateway + worker architecture. In file-first projects, Lobu resolves persistent memory from `[memory.owletto]` in `lobu.toml`. -- **`[memory.owletto]` enabled**: Lobu derives an Owletto MCP endpoint and uses `@lobu/owletto-openclaw`, falling back to native memory if the plugin is unavailable. +- **`[memory.owletto]` enabled**: Lobu derives an Owletto MCP endpoint and uses `@lobu/openclaw-plugin`, falling back to native memory if the plugin is unavailable. - **`MEMORY_URL`**: still supported as an optional base-endpoint override for local or custom Owletto deployments. - **No Owletto config resolved**: uses `@openclaw/native-memory`, which is effectively filesystem-backed short-term memory inside the agent's local workspace. @@ -41,7 +41,7 @@ Memory plugins are configurable per agent through `pluginsConfig` in agent setti 1. Gateway resolves an effective Owletto endpoint from `[memory.owletto]` (and optional `MEMORY_URL` override), then selects the default memory plugin and sets it in `agentDefaults.pluginsConfig`. 2. Worker fetches session context from gateway and passes `pluginsConfig` into OpenClaw runtime startup. 3. OpenClaw loads enabled plugins for that agent session. -4. If memory is set to `@lobu/owletto-openclaw`, that plugin converts OpenClaw memory reads/writes into Owletto MCP calls through the gateway proxy. +4. If memory is set to `@lobu/openclaw-plugin`, that plugin converts OpenClaw memory reads/writes into Owletto MCP calls through the gateway proxy. 5. The memory plugin handles persistent memory operations so context can be reused across future runs. In short: local filesystem for short-term working state; Owletto for long-term shared knowledge. diff --git a/packages/landing/src/content/docs/guides/troubleshooting.md b/packages/landing/src/content/docs/guides/troubleshooting.md index cf9e05331..6191718d9 100644 --- a/packages/landing/src/content/docs/guides/troubleshooting.md +++ b/packages/landing/src/content/docs/guides/troubleshooting.md @@ -3,7 +3,7 @@ title: Troubleshooting description: Common issues and how to fix them. --- -Lobu boots as a single Node process (`lobu run` / `node packages/owletto-backend/dist/server.bundle.mjs`). Postgres (with pgvector) is the only user-provided external, reached via `DATABASE_URL`. Worker subprocesses are spawned by the gateway's `EmbeddedDeploymentManager`. +Lobu boots as a single Node process (`lobu run` / `node packages/server/dist/server.bundle.mjs`). Postgres (with pgvector) is the only user-provided external, reached via `DATABASE_URL`. Worker subprocesses are spawned by the gateway's `EmbeddedDeploymentManager`. ## Worker won't start @@ -102,7 +102,7 @@ curl -v http://localhost:8118 ```bash # Check Node process memory -ps -o pid,rss,command -p "$(pgrep -f 'owletto-backend/dist/server.bundle.mjs')" +ps -o pid,rss,command -p "$(pgrep -f 'server/dist/server.bundle.mjs')" # Workspaces accumulate per agent under ./workspaces/ # Clear stale ones if disk is filling up: diff --git a/packages/landing/src/content/docs/reference/cli.md b/packages/landing/src/content/docs/reference/cli.md index 52eb5f41a..3cc168553 100644 --- a/packages/landing/src/content/docs/reference/cli.md +++ b/packages/landing/src/content/docs/reference/cli.md @@ -48,7 +48,7 @@ Run the embedded Lobu stack. `lobu.toml` is not required; set `DATABASE_URL` in npx @lobu/cli@latest run ``` -The command spawns the bundled Node server (`@lobu/owletto-backend/dist/server.bundle.mjs`) and forwards stdio. Ctrl+C cleanly stops the server and worker subprocesses. Extra arguments are forwarded to the Node entry point. +The command spawns the bundled Node server (`@lobu/server/dist/server.bundle.mjs`) and forwards stdio. Ctrl+C cleanly stops the server and worker subprocesses. Extra arguments are forwarded to the Node entry point. --- diff --git a/packages/landing/src/content/docs/reference/lobu-memory.md b/packages/landing/src/content/docs/reference/lobu-memory.md index 87beeb7d4..cdab256c6 100644 --- a/packages/landing/src/content/docs/reference/lobu-memory.md +++ b/packages/landing/src/content/docs/reference/lobu-memory.md @@ -47,10 +47,10 @@ The wizard detects supported clients and auto-configures them when possible. Bro ### `lobu memory configure` -Writes OpenClaw plugin config for `@lobu/owletto-openclaw`. The generated plugin config uses `lobu token --raw`, so it reuses top-level `lobu login` authentication. +Writes OpenClaw plugin config for `@lobu/openclaw-plugin`. The generated plugin config uses `lobu token --raw`, so it reuses top-level `lobu login` authentication. ```bash -openclaw plugins install owletto-openclaw-plugin +openclaw plugins install @lobu/openclaw-plugin lobu login lobu memory configure --url https://lobu.ai/mcp --org my-org lobu memory health --url https://lobu.ai/mcp --org my-org diff --git a/packages/owletto-openclaw/README.md b/packages/openclaw-plugin/README.md similarity index 95% rename from packages/owletto-openclaw/README.md rename to packages/openclaw-plugin/README.md index dcea276a2..d932fe43d 100644 --- a/packages/owletto-openclaw/README.md +++ b/packages/openclaw-plugin/README.md @@ -1,4 +1,4 @@ -# @lobu/owletto-openclaw +# @lobu/openclaw-plugin Lobu memory plugin for [OpenClaw](https://openclaw.ai). Gives OpenClaw agents persistent, structured memory over MCP — recall relevant facts before each prompt and capture new observations after each session. @@ -7,7 +7,7 @@ Full install guide: **[lobu.ai/connect-from/openclaw](https://lobu.ai/connect-fr ## Install ```bash -openclaw plugins install owletto-openclaw-plugin +openclaw plugins install @lobu/openclaw-plugin ``` Then log in and configure against your Lobu memory MCP endpoint: diff --git a/packages/openclaw-plugin/openclaw.plugin.json b/packages/openclaw-plugin/openclaw.plugin.json new file mode 100644 index 000000000..7e53cae1e --- /dev/null +++ b/packages/openclaw-plugin/openclaw.plugin.json @@ -0,0 +1,55 @@ +{ + "id": "openclaw-owletto", + "kind": "memory", + "description": "Lobu memory over MCP. Set mcpUrl to enable. Authentication via token, tokenCommand, or interactive device login.", + "entry": "./dist/index.js", + "configSchema": { + "type": "object", + "additionalProperties": false, + "properties": { + "mcpUrl": { + "type": "string", + "description": "Full MCP endpoint URL (for example, https://lobu.ai/mcp/acme). Required." + }, + "webUrl": { + "type": "string", + "description": "Public web URL for the Lobu memory instance (for example, https://app.lobu.ai). Used to generate links for the agent." + }, + "token": { + "type": "string", + "description": "Bearer token for MCP requests. Optional — if not set, the plugin offers interactive device login." + }, + "tokenCommand": { + "type": "string", + "description": "Shell command that prints a bearer token to stdout. Optional — used when token is not set." + }, + "headers": { + "type": "object", + "description": "Optional extra HTTP headers for MCP requests.", + "additionalProperties": { + "type": "string" + } + }, + "autoRecall": { + "type": "boolean", + "default": true, + "description": "When true, searches Lobu memory for relevant memories before each prompt." + }, + "recallLimit": { + "type": "integer", + "minimum": 1, + "maximum": 50, + "default": 6, + "description": "Maximum recalled memory records per request." + }, + "autoCapture": { + "type": "boolean", + "default": true, + "description": "When true, captures conversation observations as long-term memories after each agent session." + } + } + }, + "uiHints": { + "sensitive": ["token"] + } +} diff --git a/packages/openclaw-plugin/package.json b/packages/openclaw-plugin/package.json new file mode 100644 index 000000000..b6ddaaef2 --- /dev/null +++ b/packages/openclaw-plugin/package.json @@ -0,0 +1,45 @@ +{ + "name": "@lobu/openclaw-plugin", + "version": "5.0.0", + "description": "Lobu memory plugin for OpenClaw", + "type": "module", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "files": [ + "dist", + "openclaw.plugin.json" + ], + "scripts": { + "build": "tsc && cp ./openclaw.plugin.json ./dist/openclaw.plugin.json", + "typecheck": "tsc --noEmit", + "clean": "rm -rf dist", + "test:e2e": "vitest run --config test/e2e/vitest.config.ts" + }, + "openclaw": { + "extensions": [ + "./dist/index.js" + ] + }, + "devDependencies": { + "@types/node": "^20.10.0", + "postgres": "^3.4.7", + "typescript": "^5.3.3", + "vitest": "^2.1.8" + }, + "license": "BUSL-1.1", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/lobu-ai/lobu.git", + "directory": "packages/openclaw-plugin" + } +} diff --git a/packages/owletto-openclaw/src/index.ts b/packages/openclaw-plugin/src/index.ts similarity index 99% rename from packages/owletto-openclaw/src/index.ts rename to packages/openclaw-plugin/src/index.ts index 64b911427..bc4a4ad30 100644 --- a/packages/owletto-openclaw/src/index.ts +++ b/packages/openclaw-plugin/src/index.ts @@ -445,7 +445,7 @@ function spawnWorkerDaemon(mcpUrl: string, accessToken: string, log: PluginLogge const apiUrl = deriveOAuthBaseUrl(mcpUrl); try { - workerProcess = spawn('npx', ['owletto-worker', 'daemon', '--api-url', apiUrl], { + workerProcess = spawn('npx', ['connector-worker', 'daemon', '--api-url', apiUrl], { detached: true, stdio: 'ignore', env: { ...process.env, WORKER_API_TOKEN: accessToken }, diff --git a/packages/owletto-openclaw/src/owletto-guidance.ts b/packages/openclaw-plugin/src/owletto-guidance.ts similarity index 100% rename from packages/owletto-openclaw/src/owletto-guidance.ts rename to packages/openclaw-plugin/src/owletto-guidance.ts diff --git a/packages/owletto-openclaw/src/types.ts b/packages/openclaw-plugin/src/types.ts similarity index 100% rename from packages/owletto-openclaw/src/types.ts rename to packages/openclaw-plugin/src/types.ts diff --git a/packages/owletto-openclaw/test/e2e/device-auth.test.ts b/packages/openclaw-plugin/test/e2e/device-auth.test.ts similarity index 100% rename from packages/owletto-openclaw/test/e2e/device-auth.test.ts rename to packages/openclaw-plugin/test/e2e/device-auth.test.ts diff --git a/packages/owletto-openclaw/test/e2e/helpers.ts b/packages/openclaw-plugin/test/e2e/helpers.ts similarity index 99% rename from packages/owletto-openclaw/test/e2e/helpers.ts rename to packages/openclaw-plugin/test/e2e/helpers.ts index 9a57e7cea..088b31b7d 100644 --- a/packages/owletto-openclaw/test/e2e/helpers.ts +++ b/packages/openclaw-plugin/test/e2e/helpers.ts @@ -504,7 +504,7 @@ export function removeAuthFile(): void { // --------------------------------------------------------------------------- const EXTENSION_DIST_DIR = resolve(REPO_ROOT, 'data/openclaw/extensions/openclaw-owletto/dist'); -const PLUGIN_DIST_DIR = resolve(REPO_ROOT, 'packages/owletto-openclaw/dist'); +const PLUGIN_DIST_DIR = resolve(REPO_ROOT, 'packages/openclaw-plugin/dist'); /** * Copy the locally built plugin dist into the extension directory that the @@ -596,7 +596,7 @@ export function runOpenclawAgent( const cmd = [ 'docker exec', `-e ZAI_API_KEY="${process.env.ZAI_API_KEY || ''}"`, - 'owletto-openclaw-1', + 'openclaw-plugin-1', 'openclaw agent --local', `--message ${JSON.stringify(message)}`, sessionArgs, diff --git a/packages/owletto-openclaw/test/e2e/mcp-tools.test.ts b/packages/openclaw-plugin/test/e2e/mcp-tools.test.ts similarity index 100% rename from packages/owletto-openclaw/test/e2e/mcp-tools.test.ts rename to packages/openclaw-plugin/test/e2e/mcp-tools.test.ts diff --git a/packages/owletto-openclaw/test/e2e/memory-loop.test.ts b/packages/openclaw-plugin/test/e2e/memory-loop.test.ts similarity index 90% rename from packages/owletto-openclaw/test/e2e/memory-loop.test.ts rename to packages/openclaw-plugin/test/e2e/memory-loop.test.ts index fe641814c..f6cae0067 100644 --- a/packages/owletto-openclaw/test/e2e/memory-loop.test.ts +++ b/packages/openclaw-plugin/test/e2e/memory-loop.test.ts @@ -54,11 +54,11 @@ beforeAll(async () => { } try { - execSync('docker inspect owletto-openclaw-1 --format "{{.State.Running}}"', { + execSync('docker inspect openclaw-plugin-1 --format "{{.State.Running}}"', { encoding: 'utf-8', }).trim(); } catch { - throw new Error('owletto-openclaw-1 container is not running'); + throw new Error('openclaw-plugin-1 container is not running'); } // Sign up a real user via Better Auth @@ -82,7 +82,7 @@ beforeAll(async () => { // Stop the container first so the config file watcher doesn't trigger a // disruptive "full process restart" when we write to the mounted volume. - execSync('docker stop owletto-openclaw-1', { + execSync('docker stop openclaw-plugin-1', { encoding: 'utf-8', timeout: 15_000, }); @@ -101,7 +101,7 @@ beforeAll(async () => { patchOpenclawPluginConfig(org.slug); // Start the container — it reads the patched config + auth file on boot - execSync('docker start owletto-openclaw-1', { + execSync('docker start openclaw-plugin-1', { encoding: 'utf-8', timeout: 10_000, }); @@ -109,14 +109,14 @@ beforeAll(async () => { // Wait for it to be running and the plugin to initialize for (let i = 0; i < 30; i++) { try { - const running = execSync('docker inspect owletto-openclaw-1 --format "{{.State.Running}}"', { + const running = execSync('docker inspect openclaw-plugin-1 --format "{{.State.Running}}"', { encoding: 'utf-8', }).trim(); if (running !== 'true') { await new Promise((r) => setTimeout(r, 1000)); continue; } - const logs = execSync('docker logs owletto-openclaw-1 --since 10s 2>&1', { + const logs = execSync('docker logs openclaw-plugin-1 --since 10s 2>&1', { encoding: 'utf-8', timeout: 5_000, }); @@ -134,7 +134,7 @@ afterAll(async () => { // Stop the container first so config restoration doesn't trigger the // file-watcher "full process restart" which kills the container. try { - execSync('docker stop owletto-openclaw-1', { timeout: 15_000 }); + execSync('docker stop openclaw-plugin-1', { timeout: 15_000 }); } catch { // may already be stopped } @@ -146,7 +146,7 @@ afterAll(async () => { // Restart the container with the original config try { - execSync('docker start owletto-openclaw-1', { timeout: 10_000 }); + execSync('docker start openclaw-plugin-1', { timeout: 10_000 }); } catch { // ignore — CI will tear down docker anyway } diff --git a/packages/owletto-openclaw/test/e2e/vitest.config.ts b/packages/openclaw-plugin/test/e2e/vitest.config.ts similarity index 100% rename from packages/owletto-openclaw/test/e2e/vitest.config.ts rename to packages/openclaw-plugin/test/e2e/vitest.config.ts diff --git a/packages/owletto-openclaw/tsconfig.json b/packages/openclaw-plugin/tsconfig.json similarity index 100% rename from packages/owletto-openclaw/tsconfig.json rename to packages/openclaw-plugin/tsconfig.json diff --git a/packages/owletto-connectors/package.json b/packages/owletto-connectors/package.json index 998f2c10c..1b9b14e8a 100644 --- a/packages/owletto-connectors/package.json +++ b/packages/owletto-connectors/package.json @@ -1,15 +1,28 @@ { "name": "@lobu/owletto-connectors", "version": "1.6.0", - "private": true, - "license": "BUSL-1.1", + "description": "Deprecated compatibility package. Use @lobu/connectors instead.", "type": "module", - "description": "Lobu memory connectors — third-party integration implementations built on @lobu/owletto-sdk", - "scripts": { - "typecheck": "tsc --noEmit" - }, + "license": "BUSL-1.1", + "deprecated": "This package has been renamed to @lobu/connectors. Please install @lobu/connectors instead.", "dependencies": { - "@lobu/owletto-sdk": "workspace:*", - "playwright": "npm:patchright@^1.57.0" + "@lobu/connectors": "workspace:*" + }, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/lobu-ai/lobu.git", + "directory": "packages/owletto-connectors" + }, + "main": "index.js", + "types": "index.d.ts", + "files": [ + "index.js", + "index.d.ts" + ], + "exports": { + ".": "./index.js" } } diff --git a/packages/owletto-embeddings/package.json b/packages/owletto-embeddings/package.json index f69c3b590..97ee42cf0 100644 --- a/packages/owletto-embeddings/package.json +++ b/packages/owletto-embeddings/package.json @@ -1,28 +1,28 @@ { "name": "@lobu/owletto-embeddings", "version": "1.6.0", - "private": true, - "license": "BUSL-1.1", + "description": "Deprecated compatibility package. Use @lobu/embeddings instead.", "type": "module", - "description": "Embeddings HTTP service for Lobu memory", - "main": "dist/index.js", - "scripts": { - "dev": "tsx watch --tsconfig tsconfig.json src/server.ts", - "start": "tsx --tsconfig tsconfig.json src/server.ts", - "typecheck": "tsc --noEmit", - "build": "tsc" - }, + "license": "BUSL-1.1", + "deprecated": "This package has been renamed to @lobu/embeddings. Please install @lobu/embeddings instead.", "dependencies": { - "@hono/node-server": "^1.13.7", - "@xenova/transformers": "^2.17.2", - "hono": "^4.10.4" + "@lobu/embeddings": "workspace:*" + }, + "publishConfig": { + "access": "public" }, - "devDependencies": { - "@types/node": "^22.10.2", - "tsx": "^4.19.2", - "typescript": "^5.7.2" + "repository": { + "type": "git", + "url": "git+https://github.com/lobu-ai/lobu.git", + "directory": "packages/owletto-embeddings" }, - "engines": { - "node": ">=20" + "main": "index.js", + "types": "index.d.ts", + "files": [ + "index.js", + "index.d.ts" + ], + "exports": { + ".": "./index.js" } } diff --git a/packages/owletto-openclaw/openclaw.plugin.json b/packages/owletto-openclaw/openclaw.plugin.json index 7e53cae1e..42103660e 100644 --- a/packages/owletto-openclaw/openclaw.plugin.json +++ b/packages/owletto-openclaw/openclaw.plugin.json @@ -2,7 +2,7 @@ "id": "openclaw-owletto", "kind": "memory", "description": "Lobu memory over MCP. Set mcpUrl to enable. Authentication via token, tokenCommand, or interactive device login.", - "entry": "./dist/index.js", + "entry": "./index.js", "configSchema": { "type": "object", "additionalProperties": false, diff --git a/packages/owletto-openclaw/package.json b/packages/owletto-openclaw/package.json index d29b1c825..0181b9c3f 100644 --- a/packages/owletto-openclaw/package.json +++ b/packages/owletto-openclaw/package.json @@ -1,45 +1,29 @@ { "name": "@lobu/owletto-openclaw", "version": "6.0.0", - "description": "Lobu memory plugin for OpenClaw", + "description": "Deprecated compatibility package. Use @lobu/openclaw-plugin instead.", "type": "module", - "main": "dist/index.js", - "types": "dist/index.d.ts", - "exports": { - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "files": [ - "dist", - "openclaw.plugin.json" - ], - "scripts": { - "build": "tsc && cp ./openclaw.plugin.json ./dist/openclaw.plugin.json", - "typecheck": "tsc --noEmit", - "clean": "rm -rf dist", - "test:e2e": "vitest run --config test/e2e/vitest.config.ts" - }, - "openclaw": { - "extensions": [ - "./dist/index.js" - ] - }, - "devDependencies": { - "@types/node": "^20.10.0", - "postgres": "^3.4.7", - "typescript": "^5.3.3", - "vitest": "^2.1.8" - }, "license": "BUSL-1.1", + "deprecated": "This package has been renamed to @lobu/openclaw-plugin. Please install @lobu/openclaw-plugin instead.", + "dependencies": { + "@lobu/openclaw-plugin": "workspace:*" + }, "publishConfig": { "access": "public" }, "repository": { "type": "git", - "url": "https://github.com/lobu-ai/lobu.git", + "url": "git+https://github.com/lobu-ai/lobu.git", "directory": "packages/owletto-openclaw" + }, + "main": "index.js", + "types": "index.d.ts", + "files": [ + "index.js", + "index.d.ts", + "openclaw.plugin.json" + ], + "exports": { + ".": "./index.js" } } diff --git a/packages/owletto-sdk/package.json b/packages/owletto-sdk/package.json index 67fef71ac..e191f1edc 100644 --- a/packages/owletto-sdk/package.json +++ b/packages/owletto-sdk/package.json @@ -1,59 +1,28 @@ { "name": "@lobu/owletto-sdk", "version": "6.0.0", - "description": "Lobu memory SDK — build pluggable connectors for Lobu memory", + "description": "Deprecated compatibility package. Use @lobu/connector-sdk instead.", "type": "module", - "main": "dist/index.js", - "types": "dist/index.d.ts", - "exports": { - ".": { - "import": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - }, - "require": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - } - }, - "files": [ - "dist" - ], - "scripts": { - "build": "tsc", - "typecheck": "tsc --noEmit", - "clean": "rm -rf dist" - }, + "license": "BUSL-1.1", + "deprecated": "This package has been renamed to @lobu/connector-sdk. Please install @lobu/connector-sdk instead.", "dependencies": { - "@sinclair/typebox": "^0.34.41", - "ky": "^1.14.0", - "p-retry": "^7.1.0", - "pino": "^10.1.0" - }, - "peerDependencies": { - "playwright": "npm:patchright@^1.57.0" - }, - "peerDependenciesMeta": { - "playwright": { - "optional": true - } + "@lobu/connector-sdk": "workspace:*" }, - "devDependencies": { - "@types/node": "^20.10.0", - "typescript": "^5.3.3" - }, - "engines": { - "node": ">=18" - }, - "license": "BUSL-1.1", "publishConfig": { "access": "public" }, - "homepage": "https://github.com/lobu-ai/owletto", "repository": { "type": "git", - "url": "https://github.com/lobu-ai/owletto.git", - "directory": "packages/sdk" + "url": "git+https://github.com/lobu-ai/lobu.git", + "directory": "packages/owletto-sdk" + }, + "main": "index.js", + "types": "index.d.ts", + "files": [ + "index.js", + "index.d.ts" + ], + "exports": { + ".": "./index.js" } } diff --git a/packages/owletto-web b/packages/owletto-web deleted file mode 160000 index 1698cd06e..000000000 --- a/packages/owletto-web +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 1698cd06eb52fc48c513ff5bb05a72befbd53356 diff --git a/packages/owletto-worker/package.json b/packages/owletto-worker/package.json index dde84fcac..d9e630163 100644 --- a/packages/owletto-worker/package.json +++ b/packages/owletto-worker/package.json @@ -1,67 +1,29 @@ { "name": "@lobu/owletto-worker", "version": "1.6.0", - "private": true, - "description": "Self-hosted worker for Lobu memory — connectors and embedding generation", + "description": "Deprecated compatibility package. Use @lobu/connector-worker instead.", "type": "module", - "main": "dist/index.js", - "types": "dist/index.d.ts", - "bin": { - "owletto-worker": "./dist/bin.js" - }, - "exports": { - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - }, - "./daemon": { - "import": "./dist/daemon/index.js", - "types": "./dist/daemon/index.d.ts" - }, - "./embeddings": { - "import": "./dist/embeddings.js", - "types": "./dist/embeddings.d.ts" - } - }, - "files": [ - "dist", - "README.md" - ], - "scripts": { - "build": "tsc", - "dev": "tsx watch --tsconfig tsconfig.json src/bin.ts", - "start": "node dist/bin.js", - "daemon": "tsx --tsconfig tsconfig.json src/bin.ts daemon", - "typecheck": "tsc --noEmit", - "clean": "rm -rf dist" - }, + "license": "BUSL-1.1", + "deprecated": "This package has been renamed to @lobu/connector-worker. Please install @lobu/connector-worker instead.", "dependencies": { - "@lobu/owletto-sdk": "workspace:*", - "@lobu/worker": "workspace:*", - "@xenova/transformers": "^2.17.2", - "jimp": "^1.6.0", - "playwright": "npm:patchright@^1.57.0", - "sharp": "^0.34.4" + "@lobu/connector-worker": "workspace:*" }, - "devDependencies": { - "@types/node": "^20.10.0", - "tsx": "^4.7.0", - "typescript": "^5.3.3" + "publishConfig": { + "access": "public" }, - "engines": { - "node": ">=18" - }, - "keywords": [ - "worker", - "connector", - "embedding", - "content", - "user-research" - ], - "license": "BUSL-1.1", "repository": { "type": "git", - "url": "https://github.com/lobu-ai/owletto.git" - } + "url": "git+https://github.com/lobu-ai/lobu.git", + "directory": "packages/owletto-worker" + }, + "main": "index.js", + "types": "index.d.ts", + "bin": { + "owletto-worker": "./bin/owletto-worker.js" + }, + "files": [ + "index.js", + "index.d.ts", + "bin" + ] } diff --git a/packages/owletto-worker/src/types.ts b/packages/owletto-worker/src/types.ts deleted file mode 100644 index d408edf52..000000000 --- a/packages/owletto-worker/src/types.ts +++ /dev/null @@ -1 +0,0 @@ -export type { Env } from '@lobu/owletto-sdk'; diff --git a/packages/owletto-backend/package.json b/packages/server/package.json similarity index 93% rename from packages/owletto-backend/package.json rename to packages/server/package.json index 4d4b7e346..6a1559771 100644 --- a/packages/owletto-backend/package.json +++ b/packages/server/package.json @@ -1,12 +1,12 @@ { - "name": "@lobu/owletto-backend", + "name": "@lobu/server", "version": "1.6.0", "private": true, "license": "BUSL-1.1", "type": "module", "description": "Lobu memory backend — Hono HTTP server, MCP handler, REST API, in-process Lobu gateway", "scripts": { - "dev": "tsx watch --ignore=../owletto-web/** --ignore=../../node_modules/** src/server.ts", + "dev": "tsx watch --ignore=../web/** --ignore=../../node_modules/** src/server.ts", "start": "tsx src/server.ts", "build:server": "node ./scripts/build-server-bundle.mjs", "test": "vitest", @@ -32,7 +32,7 @@ "@hono/node-server": "^1.13.7", "@hono/zod-openapi": "^1.2.1", "@lobu/core": "workspace:*", - "@lobu/owletto-sdk": "workspace:*", + "@lobu/connector-sdk": "workspace:*", "@mariozechner/pi-ai": "^0.51.6", "@modelcontextprotocol/sdk": "^1.27.1", "@polyglot-sql/sdk": "^0.1.13", diff --git a/packages/owletto-backend/scripts/build-server-bundle.mjs b/packages/server/scripts/build-server-bundle.mjs similarity index 100% rename from packages/owletto-backend/scripts/build-server-bundle.mjs rename to packages/server/scripts/build-server-bundle.mjs diff --git a/packages/owletto-backend/src/__tests__/integration/classifiers/classifiers-crud.test.ts b/packages/server/src/__tests__/integration/classifiers/classifiers-crud.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/classifiers/classifiers-crud.test.ts rename to packages/server/src/__tests__/integration/classifiers/classifiers-crud.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/classifiers/classifiers-isolation.test.ts b/packages/server/src/__tests__/integration/classifiers/classifiers-isolation.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/classifiers/classifiers-isolation.test.ts rename to packages/server/src/__tests__/integration/classifiers/classifiers-isolation.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/connectors/entity-links-contract.test.ts b/packages/server/src/__tests__/integration/connectors/entity-links-contract.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/connectors/entity-links-contract.test.ts rename to packages/server/src/__tests__/integration/connectors/entity-links-contract.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/cross-org/isolation.test.ts b/packages/server/src/__tests__/integration/cross-org/isolation.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/cross-org/isolation.test.ts rename to packages/server/src/__tests__/integration/cross-org/isolation.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/entities/entity-crud.test.ts b/packages/server/src/__tests__/integration/entities/entity-crud.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/entities/entity-crud.test.ts rename to packages/server/src/__tests__/integration/entities/entity-crud.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/entities/entity-history-contract.test.ts b/packages/server/src/__tests__/integration/entities/entity-history-contract.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/entities/entity-history-contract.test.ts rename to packages/server/src/__tests__/integration/entities/entity-history-contract.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/entities/member-privacy-contract.test.ts b/packages/server/src/__tests__/integration/entities/member-privacy-contract.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/entities/member-privacy-contract.test.ts rename to packages/server/src/__tests__/integration/entities/member-privacy-contract.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/entity-schema/entity-types.test.ts b/packages/server/src/__tests__/integration/entity-schema/entity-types.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/entity-schema/entity-types.test.ts rename to packages/server/src/__tests__/integration/entity-schema/entity-types.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/events/content-distribution-contract.test.ts b/packages/server/src/__tests__/integration/events/content-distribution-contract.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/events/content-distribution-contract.test.ts rename to packages/server/src/__tests__/integration/events/content-distribution-contract.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/events/delete-content-tombstone.test.ts b/packages/server/src/__tests__/integration/events/delete-content-tombstone.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/events/delete-content-tombstone.test.ts rename to packages/server/src/__tests__/integration/events/delete-content-tombstone.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/events/get-content-visibility.test.ts b/packages/server/src/__tests__/integration/events/get-content-visibility.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/events/get-content-visibility.test.ts rename to packages/server/src/__tests__/integration/events/get-content-visibility.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/events/scheduling-contract.test.ts b/packages/server/src/__tests__/integration/events/scheduling-contract.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/events/scheduling-contract.test.ts rename to packages/server/src/__tests__/integration/events/scheduling-contract.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/events/search-content-embedding-only.test.ts b/packages/server/src/__tests__/integration/events/search-content-embedding-only.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/events/search-content-embedding-only.test.ts rename to packages/server/src/__tests__/integration/events/search-content-embedding-only.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/events/search-content-org-scope.test.ts b/packages/server/src/__tests__/integration/events/search-content-org-scope.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/events/search-content-org-scope.test.ts rename to packages/server/src/__tests__/integration/events/search-content-org-scope.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/identity/engine.test.ts b/packages/server/src/__tests__/integration/identity/engine.test.ts similarity index 99% rename from packages/owletto-backend/src/__tests__/integration/identity/engine.test.ts rename to packages/server/src/__tests__/integration/identity/engine.test.ts index 17ede354b..e5ebc84e5 100644 --- a/packages/owletto-backend/src/__tests__/integration/identity/engine.test.ts +++ b/packages/server/src/__tests__/integration/identity/engine.test.ts @@ -25,7 +25,7 @@ import { CLAIM_COLLISION_SEMANTIC_TYPE, type AutoCreateWhenRule, type ConnectorFact, -} from "@lobu/owletto-sdk"; +} from "@lobu/connector-sdk"; import { IdentitySchemaError } from "../../../identity/validate"; import { cleanupTestDatabase, getTestDb } from "../../setup/test-db"; import { diff --git a/packages/owletto-backend/src/__tests__/integration/identity/founder-to-member-migration.test.ts b/packages/server/src/__tests__/integration/identity/founder-to-member-migration.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/identity/founder-to-member-migration.test.ts rename to packages/server/src/__tests__/integration/identity/founder-to-member-migration.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/mcp/auth-wire.test.ts b/packages/server/src/__tests__/integration/mcp/auth-wire.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/mcp/auth-wire.test.ts rename to packages/server/src/__tests__/integration/mcp/auth-wire.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/mcp/auth.test.ts b/packages/server/src/__tests__/integration/mcp/auth.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/mcp/auth.test.ts rename to packages/server/src/__tests__/integration/mcp/auth.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/mcp/member-write-access.test.ts b/packages/server/src/__tests__/integration/mcp/member-write-access.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/mcp/member-write-access.test.ts rename to packages/server/src/__tests__/integration/mcp/member-write-access.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/mcp/query-tool.test.ts b/packages/server/src/__tests__/integration/mcp/query-tool.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/mcp/query-tool.test.ts rename to packages/server/src/__tests__/integration/mcp/query-tool.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/oauth/discovery.test.ts b/packages/server/src/__tests__/integration/oauth/discovery.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/oauth/discovery.test.ts rename to packages/server/src/__tests__/integration/oauth/discovery.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/pages/public-pages-contract.test.ts b/packages/server/src/__tests__/integration/pages/public-pages-contract.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/pages/public-pages-contract.test.ts rename to packages/server/src/__tests__/integration/pages/public-pages-contract.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/pages/resolve-path-contract.test.ts b/packages/server/src/__tests__/integration/pages/resolve-path-contract.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/pages/resolve-path-contract.test.ts rename to packages/server/src/__tests__/integration/pages/resolve-path-contract.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/relationships/relationships-contract.test.ts b/packages/server/src/__tests__/integration/relationships/relationships-contract.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/relationships/relationships-contract.test.ts rename to packages/server/src/__tests__/integration/relationships/relationships-contract.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/sandbox/client-sdk-org.test.ts b/packages/server/src/__tests__/integration/sandbox/client-sdk-org.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/sandbox/client-sdk-org.test.ts rename to packages/server/src/__tests__/integration/sandbox/client-sdk-org.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/sandbox/execute-wire.test.ts b/packages/server/src/__tests__/integration/sandbox/execute-wire.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/sandbox/execute-wire.test.ts rename to packages/server/src/__tests__/integration/sandbox/execute-wire.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/sandbox/namespace-dispatch.test.ts b/packages/server/src/__tests__/integration/sandbox/namespace-dispatch.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/sandbox/namespace-dispatch.test.ts rename to packages/server/src/__tests__/integration/sandbox/namespace-dispatch.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/sandbox/run-script-runtime.test.ts b/packages/server/src/__tests__/integration/sandbox/run-script-runtime.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/sandbox/run-script-runtime.test.ts rename to packages/server/src/__tests__/integration/sandbox/run-script-runtime.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/watchers/automation-contract.test.ts b/packages/server/src/__tests__/integration/watchers/automation-contract.test.ts similarity index 98% rename from packages/owletto-backend/src/__tests__/integration/watchers/automation-contract.test.ts rename to packages/server/src/__tests__/integration/watchers/automation-contract.test.ts index 4f0270c10..bbd309b51 100644 --- a/packages/owletto-backend/src/__tests__/integration/watchers/automation-contract.test.ts +++ b/packages/server/src/__tests__/integration/watchers/automation-contract.test.ts @@ -7,7 +7,7 @@ * a running queued run. */ -import { inferWatcherGranularityFromSchedule } from '@lobu/owletto-sdk'; +import { inferWatcherGranularityFromSchedule } from '@lobu/connector-sdk'; import { beforeEach, describe, expect, it } from 'vitest'; import type { DbClient } from '../../../db/client'; import type { Env } from '../../../index'; diff --git a/packages/owletto-backend/src/__tests__/integration/watchers/feedback-contract.test.ts b/packages/server/src/__tests__/integration/watchers/feedback-contract.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/watchers/feedback-contract.test.ts rename to packages/server/src/__tests__/integration/watchers/feedback-contract.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/watchers/group-edit.test.ts b/packages/server/src/__tests__/integration/watchers/group-edit.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/watchers/group-edit.test.ts rename to packages/server/src/__tests__/integration/watchers/group-edit.test.ts diff --git a/packages/owletto-backend/src/__tests__/integration/watchers/watchers-crud.test.ts b/packages/server/src/__tests__/integration/watchers/watchers-crud.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/integration/watchers/watchers-crud.test.ts rename to packages/server/src/__tests__/integration/watchers/watchers-crud.test.ts diff --git a/packages/owletto-backend/src/__tests__/setup/global-setup.ts b/packages/server/src/__tests__/setup/global-setup.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/setup/global-setup.ts rename to packages/server/src/__tests__/setup/global-setup.ts diff --git a/packages/owletto-backend/src/__tests__/setup/pglite-backend.ts b/packages/server/src/__tests__/setup/pglite-backend.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/setup/pglite-backend.ts rename to packages/server/src/__tests__/setup/pglite-backend.ts diff --git a/packages/owletto-backend/src/__tests__/setup/test-db.ts b/packages/server/src/__tests__/setup/test-db.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/setup/test-db.ts rename to packages/server/src/__tests__/setup/test-db.ts diff --git a/packages/owletto-backend/src/__tests__/setup/test-fixtures.ts b/packages/server/src/__tests__/setup/test-fixtures.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/setup/test-fixtures.ts rename to packages/server/src/__tests__/setup/test-fixtures.ts diff --git a/packages/owletto-backend/src/__tests__/setup/test-helpers.ts b/packages/server/src/__tests__/setup/test-helpers.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/setup/test-helpers.ts rename to packages/server/src/__tests__/setup/test-helpers.ts diff --git a/packages/owletto-backend/src/__tests__/setup/test-mcp-client.ts b/packages/server/src/__tests__/setup/test-mcp-client.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/setup/test-mcp-client.ts rename to packages/server/src/__tests__/setup/test-mcp-client.ts diff --git a/packages/owletto-backend/src/__tests__/setup/test-workspace.ts b/packages/server/src/__tests__/setup/test-workspace.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/setup/test-workspace.ts rename to packages/server/src/__tests__/setup/test-workspace.ts diff --git a/packages/owletto-backend/src/__tests__/unit/benchmarks/memory-benchmark.test.ts b/packages/server/src/__tests__/unit/benchmarks/memory-benchmark.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/benchmarks/memory-benchmark.test.ts rename to packages/server/src/__tests__/unit/benchmarks/memory-benchmark.test.ts diff --git a/packages/owletto-backend/src/__tests__/unit/bootstrap-pat-file-mode.test.ts b/packages/server/src/__tests__/unit/bootstrap-pat-file-mode.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/bootstrap-pat-file-mode.test.ts rename to packages/server/src/__tests__/unit/bootstrap-pat-file-mode.test.ts diff --git a/packages/owletto-backend/src/__tests__/unit/build-org-scope-where.test.ts b/packages/server/src/__tests__/unit/build-org-scope-where.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/build-org-scope-where.test.ts rename to packages/server/src/__tests__/unit/build-org-scope-where.test.ts diff --git a/packages/owletto-backend/src/__tests__/unit/connectors/linkedin.test.ts b/packages/server/src/__tests__/unit/connectors/linkedin.test.ts similarity index 95% rename from packages/owletto-backend/src/__tests__/unit/connectors/linkedin.test.ts rename to packages/server/src/__tests__/unit/connectors/linkedin.test.ts index e9ae77952..498d8a266 100644 --- a/packages/owletto-backend/src/__tests__/unit/connectors/linkedin.test.ts +++ b/packages/server/src/__tests__/unit/connectors/linkedin.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest'; -import { filterPostsSinceCheckpoint } from '../../../../../owletto-connectors/src/linkedin'; +import { filterPostsSinceCheckpoint } from '../../../../../connectors/src/linkedin'; describe('LinkedIn checkpoint filtering', () => { it('drops posts at or before the saved timestamp', () => { diff --git a/packages/owletto-backend/src/__tests__/unit/connectors/repair-agent.test.ts b/packages/server/src/__tests__/unit/connectors/repair-agent.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/connectors/repair-agent.test.ts rename to packages/server/src/__tests__/unit/connectors/repair-agent.test.ts diff --git a/packages/owletto-backend/src/__tests__/unit/connectors/whatsapp.test.ts b/packages/server/src/__tests__/unit/connectors/whatsapp.test.ts similarity index 99% rename from packages/owletto-backend/src/__tests__/unit/connectors/whatsapp.test.ts rename to packages/server/src/__tests__/unit/connectors/whatsapp.test.ts index 9deabc64f..4caaa1730 100644 --- a/packages/owletto-backend/src/__tests__/unit/connectors/whatsapp.test.ts +++ b/packages/server/src/__tests__/unit/connectors/whatsapp.test.ts @@ -43,7 +43,7 @@ beforeAll(async () => { // the static import graph. Resolve relative to this file so it works whether // process.cwd() is the repo root, the package, or a worktree. const target = pathToFileURL( - path.resolve(__dirname, '../../../../../owletto-connectors/src/whatsapp.ts') + path.resolve(__dirname, '../../../../../connectors/src/whatsapp.ts') ).href; const mod = (await import(target)) as { toEvent: ToEventFn; diff --git a/packages/owletto-backend/src/__tests__/unit/csp.test.ts b/packages/server/src/__tests__/unit/csp.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/csp.test.ts rename to packages/server/src/__tests__/unit/csp.test.ts diff --git a/packages/owletto-backend/src/__tests__/unit/delete-content-access.test.ts b/packages/server/src/__tests__/unit/delete-content-access.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/delete-content-access.test.ts rename to packages/server/src/__tests__/unit/delete-content-access.test.ts diff --git a/packages/owletto-backend/src/__tests__/unit/get-content-include-superseded.test.ts b/packages/server/src/__tests__/unit/get-content-include-superseded.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/get-content-include-superseded.test.ts rename to packages/server/src/__tests__/unit/get-content-include-superseded.test.ts diff --git a/packages/owletto-backend/src/__tests__/unit/google-identity-connector.test.ts b/packages/server/src/__tests__/unit/google-identity-connector.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/google-identity-connector.test.ts rename to packages/server/src/__tests__/unit/google-identity-connector.test.ts diff --git a/packages/owletto-backend/src/__tests__/unit/http/spa-route-filter.test.ts b/packages/server/src/__tests__/unit/http/spa-route-filter.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/http/spa-route-filter.test.ts rename to packages/server/src/__tests__/unit/http/spa-route-filter.test.ts diff --git a/packages/owletto-backend/src/__tests__/unit/lobu/gateway.test.ts b/packages/server/src/__tests__/unit/lobu/gateway.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/lobu/gateway.test.ts rename to packages/server/src/__tests__/unit/lobu/gateway.test.ts diff --git a/packages/owletto-backend/src/__tests__/unit/oauth-scope-filter.test.ts b/packages/server/src/__tests__/unit/oauth-scope-filter.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/oauth-scope-filter.test.ts rename to packages/server/src/__tests__/unit/oauth-scope-filter.test.ts diff --git a/packages/owletto-backend/src/__tests__/unit/resolve-path-redaction.test.ts b/packages/server/src/__tests__/unit/resolve-path-redaction.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/resolve-path-redaction.test.ts rename to packages/server/src/__tests__/unit/resolve-path-redaction.test.ts diff --git a/packages/owletto-backend/src/__tests__/unit/sandbox/_helpers.ts b/packages/server/src/__tests__/unit/sandbox/_helpers.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/sandbox/_helpers.ts rename to packages/server/src/__tests__/unit/sandbox/_helpers.ts diff --git a/packages/owletto-backend/src/__tests__/unit/sandbox/abort.test.ts b/packages/server/src/__tests__/unit/sandbox/abort.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/sandbox/abort.test.ts rename to packages/server/src/__tests__/unit/sandbox/abort.test.ts diff --git a/packages/owletto-backend/src/__tests__/unit/sandbox/cross-org-gate.test.ts b/packages/server/src/__tests__/unit/sandbox/cross-org-gate.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/sandbox/cross-org-gate.test.ts rename to packages/server/src/__tests__/unit/sandbox/cross-org-gate.test.ts diff --git a/packages/owletto-backend/src/__tests__/unit/sandbox/method-metadata.test.ts b/packages/server/src/__tests__/unit/sandbox/method-metadata.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/sandbox/method-metadata.test.ts rename to packages/server/src/__tests__/unit/sandbox/method-metadata.test.ts diff --git a/packages/owletto-backend/src/__tests__/unit/sandbox/read-only.test.ts b/packages/server/src/__tests__/unit/sandbox/read-only.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/sandbox/read-only.test.ts rename to packages/server/src/__tests__/unit/sandbox/read-only.test.ts diff --git a/packages/owletto-backend/src/__tests__/unit/sandbox/sdk-search.test.ts b/packages/server/src/__tests__/unit/sandbox/sdk-search.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/sandbox/sdk-search.test.ts rename to packages/server/src/__tests__/unit/sandbox/sdk-search.test.ts diff --git a/packages/owletto-backend/src/__tests__/unit/sandbox/typebox-to-signature.test.ts b/packages/server/src/__tests__/unit/sandbox/typebox-to-signature.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/sandbox/typebox-to-signature.test.ts rename to packages/server/src/__tests__/unit/sandbox/typebox-to-signature.test.ts diff --git a/packages/owletto-backend/src/__tests__/unit/save-content-access.test.ts b/packages/server/src/__tests__/unit/save-content-access.test.ts similarity index 100% rename from packages/owletto-backend/src/__tests__/unit/save-content-access.test.ts rename to packages/server/src/__tests__/unit/save-content-access.test.ts diff --git a/packages/owletto-backend/src/__tests__/unit/subdomain-reserved-parity.test.ts b/packages/server/src/__tests__/unit/subdomain-reserved-parity.test.ts similarity index 83% rename from packages/owletto-backend/src/__tests__/unit/subdomain-reserved-parity.test.ts rename to packages/server/src/__tests__/unit/subdomain-reserved-parity.test.ts index 9de8ca19c..255cce67f 100644 --- a/packages/owletto-backend/src/__tests__/unit/subdomain-reserved-parity.test.ts +++ b/packages/server/src/__tests__/unit/subdomain-reserved-parity.test.ts @@ -4,8 +4,8 @@ import { describe, expect, it } from 'vitest'; /** * Guard against drift between the SPA copy of RESERVED_SUBDOMAINS in - * `packages/owletto-web/src/lib/subdomain.ts` and the backend canonical - * list in `packages/owletto-backend/src/index.ts`. Divergence would + * `packages/web/src/lib/subdomain.ts` and the backend canonical + * list in `packages/server/src/index.ts`. Divergence would * silently break subdomain → org resolution on one side. * * The SPA is a git submodule, so we read the file via fs and parse the @@ -14,8 +14,8 @@ import { describe, expect, it } from 'vitest'; */ const REPO_ROOT = join(__dirname, '..', '..', '..', '..', '..'); -const SPA_FILE = join(REPO_ROOT, 'packages/owletto-web/src/lib/subdomain.ts'); -const BACKEND_FILE = join(REPO_ROOT, 'packages/owletto-backend/src/index.ts'); +const SPA_FILE = join(REPO_ROOT, 'packages/web/src/lib/subdomain.ts'); +const BACKEND_FILE = join(REPO_ROOT, 'packages/server/src/index.ts'); function extractReservedSubdomains(filePath: string): string[] { const source = readFileSync(filePath, 'utf8'); diff --git a/packages/owletto-backend/src/agents/LICENSE b/packages/server/src/agents/LICENSE similarity index 100% rename from packages/owletto-backend/src/agents/LICENSE rename to packages/server/src/agents/LICENSE diff --git a/packages/owletto-backend/src/auth/__tests__/config.test.ts b/packages/server/src/auth/__tests__/config.test.ts similarity index 100% rename from packages/owletto-backend/src/auth/__tests__/config.test.ts rename to packages/server/src/auth/__tests__/config.test.ts diff --git a/packages/owletto-backend/src/auth/__tests__/personal-org-provisioning.test.ts b/packages/server/src/auth/__tests__/personal-org-provisioning.test.ts similarity index 100% rename from packages/owletto-backend/src/auth/__tests__/personal-org-provisioning.test.ts rename to packages/server/src/auth/__tests__/personal-org-provisioning.test.ts diff --git a/packages/owletto-backend/src/auth/__tests__/token-routes.test.ts b/packages/server/src/auth/__tests__/token-routes.test.ts similarity index 100% rename from packages/owletto-backend/src/auth/__tests__/token-routes.test.ts rename to packages/server/src/auth/__tests__/token-routes.test.ts diff --git a/packages/owletto-backend/src/auth/__tests__/tool-access.test.ts b/packages/server/src/auth/__tests__/tool-access.test.ts similarity index 98% rename from packages/owletto-backend/src/auth/__tests__/tool-access.test.ts rename to packages/server/src/auth/__tests__/tool-access.test.ts index 192b71b30..462ac163e 100644 --- a/packages/owletto-backend/src/auth/__tests__/tool-access.test.ts +++ b/packages/server/src/auth/__tests__/tool-access.test.ts @@ -360,7 +360,7 @@ describe('first-party tool-name coverage', () => { // visible on `tools/list` (i.e. NOT `internal: true`). These tests pin both // invariants. const __dirname = dirname(fileURLToPath(import.meta.url)); - const webSrcRoot = join(__dirname, '..', '..', '..', '..', 'owletto-web', 'src'); + const webSrcRoot = join(__dirname, '..', '..', '..', '..', 'web', 'src'); // The standalone owletto-cli package was merged into @lobu/cli's `memory` // namespace; the REST callTool(...) sites moved to packages/cli/src/commands/memory/. const cliSrcRoot = join(__dirname, '..', '..', '..', '..', 'cli', 'src', 'commands', 'memory'); @@ -401,7 +401,7 @@ describe('first-party tool-name coverage', () => { // entry is dead code — kept here so the test fails the day someone wires // it up without first registering the tool. Empty this set when cleaned up. const KNOWN_DEAD_NAMES = new Set([ - // useDeleteWindow in owletto-web/src/hooks/use-watchers.ts has no caller; + // useDeleteWindow in web/src/hooks/use-watchers.ts has no caller; // manage_queue was never registered. Delete the hook or add the tool. 'manage_queue', ]); @@ -422,7 +422,7 @@ describe('first-party tool-name coverage', () => { expect(stale).toEqual([]); } - it('every owletto-web tool reference (apiCall + hook-factory) is registered', () => { + it('every web tool reference (apiCall + hook-factory) is registered', () => { if (!present(webSrcRoot)) return; // submodule not checked out (shallow clone) // Two patterns: direct `apiCall(<...>?)('foo', …)` and the hook-factory // config form `tool: 'foo'` (used at api/entities.ts:165, api/connections.ts, diff --git a/packages/owletto-backend/src/auth/base-url.ts b/packages/server/src/auth/base-url.ts similarity index 100% rename from packages/owletto-backend/src/auth/base-url.ts rename to packages/server/src/auth/base-url.ts diff --git a/packages/owletto-backend/src/auth/config.ts b/packages/server/src/auth/config.ts similarity index 100% rename from packages/owletto-backend/src/auth/config.ts rename to packages/server/src/auth/config.ts diff --git a/packages/owletto-backend/src/auth/credentials.ts b/packages/server/src/auth/credentials.ts similarity index 100% rename from packages/owletto-backend/src/auth/credentials.ts rename to packages/server/src/auth/credentials.ts diff --git a/packages/owletto-backend/src/auth/index.tsx b/packages/server/src/auth/index.tsx similarity index 100% rename from packages/owletto-backend/src/auth/index.tsx rename to packages/server/src/auth/index.tsx diff --git a/packages/owletto-backend/src/auth/middleware.ts b/packages/server/src/auth/middleware.ts similarity index 100% rename from packages/owletto-backend/src/auth/middleware.ts rename to packages/server/src/auth/middleware.ts diff --git a/packages/owletto-backend/src/auth/oauth/clients.ts b/packages/server/src/auth/oauth/clients.ts similarity index 100% rename from packages/owletto-backend/src/auth/oauth/clients.ts rename to packages/server/src/auth/oauth/clients.ts diff --git a/packages/owletto-backend/src/auth/oauth/provider.ts b/packages/server/src/auth/oauth/provider.ts similarity index 100% rename from packages/owletto-backend/src/auth/oauth/provider.ts rename to packages/server/src/auth/oauth/provider.ts diff --git a/packages/owletto-backend/src/auth/oauth/routes.ts b/packages/server/src/auth/oauth/routes.ts similarity index 99% rename from packages/owletto-backend/src/auth/oauth/routes.ts rename to packages/server/src/auth/oauth/routes.ts index 341fda8fd..14a184a5e 100644 --- a/packages/owletto-backend/src/auth/oauth/routes.ts +++ b/packages/server/src/auth/oauth/routes.ts @@ -643,7 +643,7 @@ oauthRoutes.post('/oauth/device_authorization', async (c) => { return c.json(result); }); -// GET /oauth/device is served by the SPA fallback (packages/owletto-web/src/app/oauth/device.tsx). +// GET /oauth/device is served by the SPA fallback (packages/web/src/app/oauth/device.tsx). // No API route needed — the web app and API share the same origin. /** diff --git a/packages/owletto-backend/src/auth/oauth/scopes.ts b/packages/server/src/auth/oauth/scopes.ts similarity index 100% rename from packages/owletto-backend/src/auth/oauth/scopes.ts rename to packages/server/src/auth/oauth/scopes.ts diff --git a/packages/owletto-backend/src/auth/oauth/types.ts b/packages/server/src/auth/oauth/types.ts similarity index 100% rename from packages/owletto-backend/src/auth/oauth/types.ts rename to packages/server/src/auth/oauth/types.ts diff --git a/packages/owletto-backend/src/auth/oauth/utils.ts b/packages/server/src/auth/oauth/utils.ts similarity index 100% rename from packages/owletto-backend/src/auth/oauth/utils.ts rename to packages/server/src/auth/oauth/utils.ts diff --git a/packages/owletto-backend/src/auth/personal-org-provisioning.ts b/packages/server/src/auth/personal-org-provisioning.ts similarity index 100% rename from packages/owletto-backend/src/auth/personal-org-provisioning.ts rename to packages/server/src/auth/personal-org-provisioning.ts diff --git a/packages/owletto-backend/src/auth/routes.ts b/packages/server/src/auth/routes.ts similarity index 100% rename from packages/owletto-backend/src/auth/routes.ts rename to packages/server/src/auth/routes.ts diff --git a/packages/owletto-backend/src/auth/social-login-provisioning.ts b/packages/server/src/auth/social-login-provisioning.ts similarity index 100% rename from packages/owletto-backend/src/auth/social-login-provisioning.ts rename to packages/server/src/auth/social-login-provisioning.ts diff --git a/packages/owletto-backend/src/auth/subject-identities.ts b/packages/server/src/auth/subject-identities.ts similarity index 100% rename from packages/owletto-backend/src/auth/subject-identities.ts rename to packages/server/src/auth/subject-identities.ts diff --git a/packages/owletto-backend/src/auth/tokens.ts b/packages/server/src/auth/tokens.ts similarity index 100% rename from packages/owletto-backend/src/auth/tokens.ts rename to packages/server/src/auth/tokens.ts diff --git a/packages/owletto-backend/src/auth/tool-access.ts b/packages/server/src/auth/tool-access.ts similarity index 100% rename from packages/owletto-backend/src/auth/tool-access.ts rename to packages/server/src/auth/tool-access.ts diff --git a/packages/owletto-backend/src/benchmarks/memory/adapters/command.ts b/packages/server/src/benchmarks/memory/adapters/command.ts similarity index 100% rename from packages/owletto-backend/src/benchmarks/memory/adapters/command.ts rename to packages/server/src/benchmarks/memory/adapters/command.ts diff --git a/packages/owletto-backend/src/benchmarks/memory/adapters/owletto-inprocess.ts b/packages/server/src/benchmarks/memory/adapters/owletto-inprocess.ts similarity index 100% rename from packages/owletto-backend/src/benchmarks/memory/adapters/owletto-inprocess.ts rename to packages/server/src/benchmarks/memory/adapters/owletto-inprocess.ts diff --git a/packages/owletto-backend/src/benchmarks/memory/adapters/owletto-mcp.ts b/packages/server/src/benchmarks/memory/adapters/owletto-mcp.ts similarity index 100% rename from packages/owletto-backend/src/benchmarks/memory/adapters/owletto-mcp.ts rename to packages/server/src/benchmarks/memory/adapters/owletto-mcp.ts diff --git a/packages/owletto-backend/src/benchmarks/memory/answerer.ts b/packages/server/src/benchmarks/memory/answerer.ts similarity index 100% rename from packages/owletto-backend/src/benchmarks/memory/answerer.ts rename to packages/server/src/benchmarks/memory/answerer.ts diff --git a/packages/owletto-backend/src/benchmarks/memory/config.ts b/packages/server/src/benchmarks/memory/config.ts similarity index 100% rename from packages/owletto-backend/src/benchmarks/memory/config.ts rename to packages/server/src/benchmarks/memory/config.ts diff --git a/packages/owletto-backend/src/benchmarks/memory/mcp-client.ts b/packages/server/src/benchmarks/memory/mcp-client.ts similarity index 100% rename from packages/owletto-backend/src/benchmarks/memory/mcp-client.ts rename to packages/server/src/benchmarks/memory/mcp-client.ts diff --git a/packages/owletto-backend/src/benchmarks/memory/public-datasets/locomo.ts b/packages/server/src/benchmarks/memory/public-datasets/locomo.ts similarity index 100% rename from packages/owletto-backend/src/benchmarks/memory/public-datasets/locomo.ts rename to packages/server/src/benchmarks/memory/public-datasets/locomo.ts diff --git a/packages/owletto-backend/src/benchmarks/memory/public-datasets/longmemeval.ts b/packages/server/src/benchmarks/memory/public-datasets/longmemeval.ts similarity index 100% rename from packages/owletto-backend/src/benchmarks/memory/public-datasets/longmemeval.ts rename to packages/server/src/benchmarks/memory/public-datasets/longmemeval.ts diff --git a/packages/owletto-backend/src/benchmarks/memory/publish.ts b/packages/server/src/benchmarks/memory/publish.ts similarity index 100% rename from packages/owletto-backend/src/benchmarks/memory/publish.ts rename to packages/server/src/benchmarks/memory/publish.ts diff --git a/packages/owletto-backend/src/benchmarks/memory/runner.ts b/packages/server/src/benchmarks/memory/runner.ts similarity index 100% rename from packages/owletto-backend/src/benchmarks/memory/runner.ts rename to packages/server/src/benchmarks/memory/runner.ts diff --git a/packages/owletto-backend/src/benchmarks/memory/scoring.ts b/packages/server/src/benchmarks/memory/scoring.ts similarity index 100% rename from packages/owletto-backend/src/benchmarks/memory/scoring.ts rename to packages/server/src/benchmarks/memory/scoring.ts diff --git a/packages/owletto-backend/src/benchmarks/memory/suite.ts b/packages/server/src/benchmarks/memory/suite.ts similarity index 100% rename from packages/owletto-backend/src/benchmarks/memory/suite.ts rename to packages/server/src/benchmarks/memory/suite.ts diff --git a/packages/owletto-backend/src/benchmarks/memory/types.ts b/packages/server/src/benchmarks/memory/types.ts similarity index 100% rename from packages/owletto-backend/src/benchmarks/memory/types.ts rename to packages/server/src/benchmarks/memory/types.ts diff --git a/packages/owletto-backend/src/connect/oauth-providers.ts b/packages/server/src/connect/oauth-providers.ts similarity index 100% rename from packages/owletto-backend/src/connect/oauth-providers.ts rename to packages/server/src/connect/oauth-providers.ts diff --git a/packages/owletto-backend/src/connect/routes.ts b/packages/server/src/connect/routes.ts similarity index 100% rename from packages/owletto-backend/src/connect/routes.ts rename to packages/server/src/connect/routes.ts diff --git a/packages/owletto-backend/src/connectors/repair-agent-packet.ts b/packages/server/src/connectors/repair-agent-packet.ts similarity index 100% rename from packages/owletto-backend/src/connectors/repair-agent-packet.ts rename to packages/server/src/connectors/repair-agent-packet.ts diff --git a/packages/owletto-backend/src/connectors/repair-agent.ts b/packages/server/src/connectors/repair-agent.ts similarity index 100% rename from packages/owletto-backend/src/connectors/repair-agent.ts rename to packages/server/src/connectors/repair-agent.ts diff --git a/packages/owletto-backend/src/db/__tests__/client.test.ts b/packages/server/src/db/__tests__/client.test.ts similarity index 100% rename from packages/owletto-backend/src/db/__tests__/client.test.ts rename to packages/server/src/db/__tests__/client.test.ts diff --git a/packages/owletto-backend/src/db/client.ts b/packages/server/src/db/client.ts similarity index 99% rename from packages/owletto-backend/src/db/client.ts rename to packages/server/src/db/client.ts index 370a88c73..62c5958d2 100644 --- a/packages/owletto-backend/src/db/client.ts +++ b/packages/server/src/db/client.ts @@ -84,7 +84,7 @@ function createDbClient(connectionString: string, maxConnections?: number): Crea // (defends against PG-side state drift, certificate rotations, etc.). max_lifetime: 60 * 30, connection: { - application_name: 'owletto-backend', + application_name: 'server', }, fetch_types: false, ...embeddedProtocolOptions, diff --git a/packages/owletto-backend/src/db/migration-loader.ts b/packages/server/src/db/migration-loader.ts similarity index 100% rename from packages/owletto-backend/src/db/migration-loader.ts rename to packages/server/src/db/migration-loader.ts diff --git a/packages/owletto-backend/src/email/send.ts b/packages/server/src/email/send.ts similarity index 98% rename from packages/owletto-backend/src/email/send.ts rename to packages/server/src/email/send.ts index de8bc244b..c02a39350 100644 --- a/packages/owletto-backend/src/email/send.ts +++ b/packages/server/src/email/send.ts @@ -1,5 +1,5 @@ import { render } from '@react-email/render'; -import type { Env } from '@lobu/owletto-sdk'; +import type { Env } from '@lobu/connector-sdk'; import type { ReactElement } from 'react'; import { Resend } from 'resend'; diff --git a/packages/owletto-backend/src/email/templates/BrandedEmail.tsx b/packages/server/src/email/templates/BrandedEmail.tsx similarity index 100% rename from packages/owletto-backend/src/email/templates/BrandedEmail.tsx rename to packages/server/src/email/templates/BrandedEmail.tsx diff --git a/packages/owletto-backend/src/email/templates/invitation.tsx b/packages/server/src/email/templates/invitation.tsx similarity index 100% rename from packages/owletto-backend/src/email/templates/invitation.tsx rename to packages/server/src/email/templates/invitation.tsx diff --git a/packages/owletto-backend/src/email/templates/magic-link.tsx b/packages/server/src/email/templates/magic-link.tsx similarity index 100% rename from packages/owletto-backend/src/email/templates/magic-link.tsx rename to packages/server/src/email/templates/magic-link.tsx diff --git a/packages/owletto-backend/src/email/templates/password-reset.tsx b/packages/server/src/email/templates/password-reset.tsx similarity index 100% rename from packages/owletto-backend/src/email/templates/password-reset.tsx rename to packages/server/src/email/templates/password-reset.tsx diff --git a/packages/owletto-backend/src/events/emitter.ts b/packages/server/src/events/emitter.ts similarity index 100% rename from packages/owletto-backend/src/events/emitter.ts rename to packages/server/src/events/emitter.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/agent-config-routes.test.ts b/packages/server/src/gateway/__tests__/agent-config-routes.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/agent-config-routes.test.ts rename to packages/server/src/gateway/__tests__/agent-config-routes.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/agent-history-routes.test.ts b/packages/server/src/gateway/__tests__/agent-history-routes.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/agent-history-routes.test.ts rename to packages/server/src/gateway/__tests__/agent-history-routes.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/agent-ownership.test.ts b/packages/server/src/gateway/__tests__/agent-ownership.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/agent-ownership.test.ts rename to packages/server/src/gateway/__tests__/agent-ownership.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/agent-routes.test.ts b/packages/server/src/gateway/__tests__/agent-routes.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/agent-routes.test.ts rename to packages/server/src/gateway/__tests__/agent-routes.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/agent-settings-store.test.ts b/packages/server/src/gateway/__tests__/agent-settings-store.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/agent-settings-store.test.ts rename to packages/server/src/gateway/__tests__/agent-settings-store.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/base-deployment-grants.test.ts b/packages/server/src/gateway/__tests__/base-deployment-grants.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/base-deployment-grants.test.ts rename to packages/server/src/gateway/__tests__/base-deployment-grants.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/bedrock-model-catalog.test.ts b/packages/server/src/gateway/__tests__/bedrock-model-catalog.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/bedrock-model-catalog.test.ts rename to packages/server/src/gateway/__tests__/bedrock-model-catalog.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/bedrock-openai-service.test.ts b/packages/server/src/gateway/__tests__/bedrock-openai-service.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/bedrock-openai-service.test.ts rename to packages/server/src/gateway/__tests__/bedrock-openai-service.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/bedrock-provider-module.test.ts b/packages/server/src/gateway/__tests__/bedrock-provider-module.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/bedrock-provider-module.test.ts rename to packages/server/src/gateway/__tests__/bedrock-provider-module.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/chat-history-store.test.ts b/packages/server/src/gateway/__tests__/chat-history-store.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/chat-history-store.test.ts rename to packages/server/src/gateway/__tests__/chat-history-store.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/chat-instance-manager-slack.test.ts b/packages/server/src/gateway/__tests__/chat-instance-manager-slack.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/chat-instance-manager-slack.test.ts rename to packages/server/src/gateway/__tests__/chat-instance-manager-slack.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/chat-response-bridge.test.ts b/packages/server/src/gateway/__tests__/chat-response-bridge.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/chat-response-bridge.test.ts rename to packages/server/src/gateway/__tests__/chat-response-bridge.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/config-memory-plugins.test.ts b/packages/server/src/gateway/__tests__/config-memory-plugins.test.ts similarity index 96% rename from packages/owletto-backend/src/gateway/__tests__/config-memory-plugins.test.ts rename to packages/server/src/gateway/__tests__/config-memory-plugins.test.ts index 58a9cc969..2be7f8756 100644 --- a/packages/owletto-backend/src/gateway/__tests__/config-memory-plugins.test.ts +++ b/packages/server/src/gateway/__tests__/config-memory-plugins.test.ts @@ -17,7 +17,7 @@ describe("buildMemoryPlugins", () => { expect(buildMemoryPlugins({ hasOwlettoPlugin: true })).toEqual([ { - source: "@lobu/owletto-openclaw", + source: "@lobu/openclaw-plugin", slot: "memory", enabled: true, config: { diff --git a/packages/owletto-backend/src/gateway/__tests__/connection-routes.test.ts b/packages/server/src/gateway/__tests__/connection-routes.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/connection-routes.test.ts rename to packages/server/src/gateway/__tests__/connection-routes.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/core-services-store-selection.test.ts b/packages/server/src/gateway/__tests__/core-services-store-selection.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/core-services-store-selection.test.ts rename to packages/server/src/gateway/__tests__/core-services-store-selection.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/declared-agent-registry.test.ts b/packages/server/src/gateway/__tests__/declared-agent-registry.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/declared-agent-registry.test.ts rename to packages/server/src/gateway/__tests__/declared-agent-registry.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/device-auth.test.ts b/packages/server/src/gateway/__tests__/device-auth.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/device-auth.test.ts rename to packages/server/src/gateway/__tests__/device-auth.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/egress-judge-cache.test.ts b/packages/server/src/gateway/__tests__/egress-judge-cache.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/egress-judge-cache.test.ts rename to packages/server/src/gateway/__tests__/egress-judge-cache.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/egress-judge-circuit-breaker.test.ts b/packages/server/src/gateway/__tests__/egress-judge-circuit-breaker.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/egress-judge-circuit-breaker.test.ts rename to packages/server/src/gateway/__tests__/egress-judge-circuit-breaker.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/egress-judge-composer.test.ts b/packages/server/src/gateway/__tests__/egress-judge-composer.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/egress-judge-composer.test.ts rename to packages/server/src/gateway/__tests__/egress-judge-composer.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/egress-judge.test.ts b/packages/server/src/gateway/__tests__/egress-judge.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/egress-judge.test.ts rename to packages/server/src/gateway/__tests__/egress-judge.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/embedded-deployment.test.ts b/packages/server/src/gateway/__tests__/embedded-deployment.test.ts similarity index 98% rename from packages/owletto-backend/src/gateway/__tests__/embedded-deployment.test.ts rename to packages/server/src/gateway/__tests__/embedded-deployment.test.ts index d6ea43fcc..80323f98f 100644 --- a/packages/owletto-backend/src/gateway/__tests__/embedded-deployment.test.ts +++ b/packages/server/src/gateway/__tests__/embedded-deployment.test.ts @@ -70,7 +70,7 @@ const TEST_CONFIG: OrchestratorConfig = { expireInSeconds: 300, }, worker: { - entryPoint: "/test/packages/worker/src/index.ts", + entryPoint: "/test/packages/agent-worker/src/index.ts", binPathEntries: ["/test/node_modules/.bin"], idleCleanupMinutes: 30, maxDeployments: 10, @@ -180,7 +180,7 @@ describe("EmbeddedDeploymentManager", () => { ...TEST_CONFIG, worker: { ...TEST_CONFIG.worker, - entryPoint: "/test/packages/worker/dist/index.js", + entryPoint: "/test/packages/agent-worker/dist/index.js", }, }); const msg = createTestMessagePayload(); @@ -192,7 +192,7 @@ describe("EmbeddedDeploymentManager", () => { : "node"; expect(mockSpawn.mock.calls.at(-1)?.[0]).toBe(expectedNode); expect(mockSpawn.mock.calls.at(-1)?.[1]).toEqual([ - "/test/packages/worker/dist/index.js", + "/test/packages/agent-worker/dist/index.js", ]); }); diff --git a/packages/owletto-backend/src/gateway/__tests__/file-loader-egress.test.ts b/packages/server/src/gateway/__tests__/file-loader-egress.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/file-loader-egress.test.ts rename to packages/server/src/gateway/__tests__/file-loader-egress.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/file-loader-memory.test.ts b/packages/server/src/gateway/__tests__/file-loader-memory.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/file-loader-memory.test.ts rename to packages/server/src/gateway/__tests__/file-loader-memory.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/file-loader-platforms.test.ts b/packages/server/src/gateway/__tests__/file-loader-platforms.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/file-loader-platforms.test.ts rename to packages/server/src/gateway/__tests__/file-loader-platforms.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/file-loader-providers.test.ts b/packages/server/src/gateway/__tests__/file-loader-providers.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/file-loader-providers.test.ts rename to packages/server/src/gateway/__tests__/file-loader-providers.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/file-loader-tools.test.ts b/packages/server/src/gateway/__tests__/file-loader-tools.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/file-loader-tools.test.ts rename to packages/server/src/gateway/__tests__/file-loader-tools.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/file-routes.test.ts b/packages/server/src/gateway/__tests__/file-routes.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/file-routes.test.ts rename to packages/server/src/gateway/__tests__/file-routes.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/fixtures/in-memory-state-adapter.ts b/packages/server/src/gateway/__tests__/fixtures/in-memory-state-adapter.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/fixtures/in-memory-state-adapter.ts rename to packages/server/src/gateway/__tests__/fixtures/in-memory-state-adapter.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/fixtures/slack-signing.ts b/packages/server/src/gateway/__tests__/fixtures/slack-signing.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/fixtures/slack-signing.ts rename to packages/server/src/gateway/__tests__/fixtures/slack-signing.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/grant-store.test.ts b/packages/server/src/gateway/__tests__/grant-store.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/grant-store.test.ts rename to packages/server/src/gateway/__tests__/grant-store.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/helpers/db-setup.ts b/packages/server/src/gateway/__tests__/helpers/db-setup.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/helpers/db-setup.ts rename to packages/server/src/gateway/__tests__/helpers/db-setup.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/http-proxy-judge.test.ts b/packages/server/src/gateway/__tests__/http-proxy-judge.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/http-proxy-judge.test.ts rename to packages/server/src/gateway/__tests__/http-proxy-judge.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/http-proxy.test.ts b/packages/server/src/gateway/__tests__/http-proxy.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/http-proxy.test.ts rename to packages/server/src/gateway/__tests__/http-proxy.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/instruction-service.test.ts b/packages/server/src/gateway/__tests__/instruction-service.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/instruction-service.test.ts rename to packages/server/src/gateway/__tests__/instruction-service.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/interaction-bridge-action-handlers.test.ts b/packages/server/src/gateway/__tests__/interaction-bridge-action-handlers.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/interaction-bridge-action-handlers.test.ts rename to packages/server/src/gateway/__tests__/interaction-bridge-action-handlers.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/interaction-bridge-slack-webhook.test.ts b/packages/server/src/gateway/__tests__/interaction-bridge-slack-webhook.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/interaction-bridge-slack-webhook.test.ts rename to packages/server/src/gateway/__tests__/interaction-bridge-slack-webhook.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/link-buttons.test.ts b/packages/server/src/gateway/__tests__/link-buttons.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/link-buttons.test.ts rename to packages/server/src/gateway/__tests__/link-buttons.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/mcp-config-service.test.ts b/packages/server/src/gateway/__tests__/mcp-config-service.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/mcp-config-service.test.ts rename to packages/server/src/gateway/__tests__/mcp-config-service.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/mcp-proxy.test.ts b/packages/server/src/gateway/__tests__/mcp-proxy.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/mcp-proxy.test.ts rename to packages/server/src/gateway/__tests__/mcp-proxy.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/message-handler-bridge.test.ts b/packages/server/src/gateway/__tests__/message-handler-bridge.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/message-handler-bridge.test.ts rename to packages/server/src/gateway/__tests__/message-handler-bridge.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/model-selection.test.ts b/packages/server/src/gateway/__tests__/model-selection.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/model-selection.test.ts rename to packages/server/src/gateway/__tests__/model-selection.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/oauth-state-store.test.ts b/packages/server/src/gateway/__tests__/oauth-state-store.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/oauth-state-store.test.ts rename to packages/server/src/gateway/__tests__/oauth-state-store.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/oauth-templates.test.ts b/packages/server/src/gateway/__tests__/oauth-templates.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/oauth-templates.test.ts rename to packages/server/src/gateway/__tests__/oauth-templates.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/platform-adapter-slack-send.test.ts b/packages/server/src/gateway/__tests__/platform-adapter-slack-send.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/platform-adapter-slack-send.test.ts rename to packages/server/src/gateway/__tests__/platform-adapter-slack-send.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/platform-file-handler.test.ts b/packages/server/src/gateway/__tests__/platform-file-handler.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/platform-file-handler.test.ts rename to packages/server/src/gateway/__tests__/platform-file-handler.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/platform-helpers-model-resolution.test.ts b/packages/server/src/gateway/__tests__/platform-helpers-model-resolution.test.ts similarity index 97% rename from packages/owletto-backend/src/gateway/__tests__/platform-helpers-model-resolution.test.ts rename to packages/server/src/gateway/__tests__/platform-helpers-model-resolution.test.ts index 66899b95f..4a6e70bcc 100644 --- a/packages/owletto-backend/src/gateway/__tests__/platform-helpers-model-resolution.test.ts +++ b/packages/server/src/gateway/__tests__/platform-helpers-model-resolution.test.ts @@ -111,7 +111,7 @@ describe("resolveAgentOptions model resolution", () => { pluginsConfig: { plugins: [ { - source: "@lobu/owletto-openclaw", + source: "@lobu/openclaw-plugin", slot: "memory", enabled: true, config: { @@ -133,7 +133,7 @@ describe("resolveAgentOptions model resolution", () => { expect(resolved.pluginsConfig).toEqual({ plugins: [ { - source: "@lobu/owletto-openclaw", + source: "@lobu/openclaw-plugin", slot: "memory", enabled: true, config: { @@ -154,7 +154,7 @@ describe("resolveAgentOptions model resolution", () => { pluginsConfig: { plugins: [ { - source: "@lobu/owletto-openclaw", + source: "@lobu/openclaw-plugin", slot: "memory", enabled: true, config: { @@ -176,7 +176,7 @@ describe("resolveAgentOptions model resolution", () => { expect(resolved.pluginsConfig).toEqual({ plugins: [ { - source: "@lobu/owletto-openclaw", + source: "@lobu/openclaw-plugin", slot: "memory", enabled: true, config: { @@ -197,7 +197,7 @@ describe("resolveAgentOptions model resolution", () => { pluginsConfig: { plugins: [ { - source: "@lobu/owletto-openclaw", + source: "@lobu/openclaw-plugin", slot: "memory", enabled: true, }, @@ -215,7 +215,7 @@ describe("resolveAgentOptions model resolution", () => { expect(resolved.pluginsConfig).toEqual({ plugins: [ { - source: "@lobu/owletto-openclaw", + source: "@lobu/openclaw-plugin", slot: "memory", enabled: true, config: { diff --git a/packages/owletto-backend/src/gateway/__tests__/policy-store.test.ts b/packages/server/src/gateway/__tests__/policy-store.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/policy-store.test.ts rename to packages/server/src/gateway/__tests__/policy-store.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/provider-config-resolver.test.ts b/packages/server/src/gateway/__tests__/provider-config-resolver.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/provider-config-resolver.test.ts rename to packages/server/src/gateway/__tests__/provider-config-resolver.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/provider-inheritance.test.ts b/packages/server/src/gateway/__tests__/provider-inheritance.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/provider-inheritance.test.ts rename to packages/server/src/gateway/__tests__/provider-inheritance.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/provider-registry-service.test.ts b/packages/server/src/gateway/__tests__/provider-registry-service.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/provider-registry-service.test.ts rename to packages/server/src/gateway/__tests__/provider-registry-service.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/routes/interactions.test.ts b/packages/server/src/gateway/__tests__/routes/interactions.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/routes/interactions.test.ts rename to packages/server/src/gateway/__tests__/routes/interactions.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/routes/mcp-oauth.test.ts b/packages/server/src/gateway/__tests__/routes/mcp-oauth.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/routes/mcp-oauth.test.ts rename to packages/server/src/gateway/__tests__/routes/mcp-oauth.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/routes/media.test.ts b/packages/server/src/gateway/__tests__/routes/media.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/routes/media.test.ts rename to packages/server/src/gateway/__tests__/routes/media.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/runs-queue-integration.test.ts b/packages/server/src/gateway/__tests__/runs-queue-integration.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/runs-queue-integration.test.ts rename to packages/server/src/gateway/__tests__/runs-queue-integration.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/secret-proxy.test.ts b/packages/server/src/gateway/__tests__/secret-proxy.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/secret-proxy.test.ts rename to packages/server/src/gateway/__tests__/secret-proxy.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/secret-store.test.ts b/packages/server/src/gateway/__tests__/secret-store.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/secret-store.test.ts rename to packages/server/src/gateway/__tests__/secret-store.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/session-manager.test.ts b/packages/server/src/gateway/__tests__/session-manager.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/session-manager.test.ts rename to packages/server/src/gateway/__tests__/session-manager.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/setup.ts b/packages/server/src/gateway/__tests__/setup.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/setup.ts rename to packages/server/src/gateway/__tests__/setup.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/skill-and-mcp-registry.test.ts b/packages/server/src/gateway/__tests__/skill-and-mcp-registry.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/skill-and-mcp-registry.test.ts rename to packages/server/src/gateway/__tests__/skill-and-mcp-registry.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/slack-connection-coordinator.test.ts b/packages/server/src/gateway/__tests__/slack-connection-coordinator.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/slack-connection-coordinator.test.ts rename to packages/server/src/gateway/__tests__/slack-connection-coordinator.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/slack-platform-bridge.test.ts b/packages/server/src/gateway/__tests__/slack-platform-bridge.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/slack-platform-bridge.test.ts rename to packages/server/src/gateway/__tests__/slack-platform-bridge.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/slack-routes.test.ts b/packages/server/src/gateway/__tests__/slack-routes.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/slack-routes.test.ts rename to packages/server/src/gateway/__tests__/slack-routes.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/sse-manager.test.ts b/packages/server/src/gateway/__tests__/sse-manager.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/sse-manager.test.ts rename to packages/server/src/gateway/__tests__/sse-manager.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/transcription-service.test.ts b/packages/server/src/gateway/__tests__/transcription-service.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/transcription-service.test.ts rename to packages/server/src/gateway/__tests__/transcription-service.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/unified-thread-consumer.test.ts b/packages/server/src/gateway/__tests__/unified-thread-consumer.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/unified-thread-consumer.test.ts rename to packages/server/src/gateway/__tests__/unified-thread-consumer.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/user-auth-profile-store.test.ts b/packages/server/src/gateway/__tests__/user-auth-profile-store.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/user-auth-profile-store.test.ts rename to packages/server/src/gateway/__tests__/user-auth-profile-store.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/utils/rate-limiter.test.ts b/packages/server/src/gateway/__tests__/utils/rate-limiter.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/utils/rate-limiter.test.ts rename to packages/server/src/gateway/__tests__/utils/rate-limiter.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/worker-connection-manager.test.ts b/packages/server/src/gateway/__tests__/worker-connection-manager.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/worker-connection-manager.test.ts rename to packages/server/src/gateway/__tests__/worker-connection-manager.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/worker-gateway-session-context.test.ts b/packages/server/src/gateway/__tests__/worker-gateway-session-context.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/worker-gateway-session-context.test.ts rename to packages/server/src/gateway/__tests__/worker-gateway-session-context.test.ts diff --git a/packages/owletto-backend/src/gateway/__tests__/worker-job-router.test.ts b/packages/server/src/gateway/__tests__/worker-job-router.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/__tests__/worker-job-router.test.ts rename to packages/server/src/gateway/__tests__/worker-job-router.test.ts diff --git a/packages/owletto-backend/src/gateway/api/index.ts b/packages/server/src/gateway/api/index.ts similarity index 100% rename from packages/owletto-backend/src/gateway/api/index.ts rename to packages/server/src/gateway/api/index.ts diff --git a/packages/owletto-backend/src/gateway/api/platform.ts b/packages/server/src/gateway/api/platform.ts similarity index 100% rename from packages/owletto-backend/src/gateway/api/platform.ts rename to packages/server/src/gateway/api/platform.ts diff --git a/packages/owletto-backend/src/gateway/api/response-renderer.ts b/packages/server/src/gateway/api/response-renderer.ts similarity index 100% rename from packages/owletto-backend/src/gateway/api/response-renderer.ts rename to packages/server/src/gateway/api/response-renderer.ts diff --git a/packages/owletto-backend/src/gateway/auth/agent-metadata-store.ts b/packages/server/src/gateway/auth/agent-metadata-store.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/agent-metadata-store.ts rename to packages/server/src/gateway/auth/agent-metadata-store.ts diff --git a/packages/owletto-backend/src/gateway/auth/api-auth-middleware.ts b/packages/server/src/gateway/auth/api-auth-middleware.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/api-auth-middleware.ts rename to packages/server/src/gateway/auth/api-auth-middleware.ts diff --git a/packages/owletto-backend/src/gateway/auth/api-key-provider-module.ts b/packages/server/src/gateway/auth/api-key-provider-module.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/api-key-provider-module.ts rename to packages/server/src/gateway/auth/api-key-provider-module.ts diff --git a/packages/owletto-backend/src/gateway/auth/base-provider-module.ts b/packages/server/src/gateway/auth/base-provider-module.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/base-provider-module.ts rename to packages/server/src/gateway/auth/base-provider-module.ts diff --git a/packages/owletto-backend/src/gateway/auth/bedrock/provider-module.ts b/packages/server/src/gateway/auth/bedrock/provider-module.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/bedrock/provider-module.ts rename to packages/server/src/gateway/auth/bedrock/provider-module.ts diff --git a/packages/owletto-backend/src/gateway/auth/chatgpt/chatgpt-oauth-module.ts b/packages/server/src/gateway/auth/chatgpt/chatgpt-oauth-module.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/chatgpt/chatgpt-oauth-module.ts rename to packages/server/src/gateway/auth/chatgpt/chatgpt-oauth-module.ts diff --git a/packages/owletto-backend/src/gateway/auth/chatgpt/device-code-client.ts b/packages/server/src/gateway/auth/chatgpt/device-code-client.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/chatgpt/device-code-client.ts rename to packages/server/src/gateway/auth/chatgpt/device-code-client.ts diff --git a/packages/owletto-backend/src/gateway/auth/chatgpt/index.ts b/packages/server/src/gateway/auth/chatgpt/index.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/chatgpt/index.ts rename to packages/server/src/gateway/auth/chatgpt/index.ts diff --git a/packages/owletto-backend/src/gateway/auth/claude/oauth-module.ts b/packages/server/src/gateway/auth/claude/oauth-module.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/claude/oauth-module.ts rename to packages/server/src/gateway/auth/claude/oauth-module.ts diff --git a/packages/owletto-backend/src/gateway/auth/cli-backend-only-module.ts b/packages/server/src/gateway/auth/cli-backend-only-module.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/cli-backend-only-module.ts rename to packages/server/src/gateway/auth/cli-backend-only-module.ts diff --git a/packages/owletto-backend/src/gateway/auth/external/client.ts b/packages/server/src/gateway/auth/external/client.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/external/client.ts rename to packages/server/src/gateway/auth/external/client.ts diff --git a/packages/owletto-backend/src/gateway/auth/external/device-code-client.ts b/packages/server/src/gateway/auth/external/device-code-client.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/external/device-code-client.ts rename to packages/server/src/gateway/auth/external/device-code-client.ts diff --git a/packages/owletto-backend/src/gateway/auth/gemini/cli-module.ts b/packages/server/src/gateway/auth/gemini/cli-module.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/gemini/cli-module.ts rename to packages/server/src/gateway/auth/gemini/cli-module.ts diff --git a/packages/owletto-backend/src/gateway/auth/gemini/index.ts b/packages/server/src/gateway/auth/gemini/index.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/gemini/index.ts rename to packages/server/src/gateway/auth/gemini/index.ts diff --git a/packages/owletto-backend/src/gateway/auth/mcp/config-service.ts b/packages/server/src/gateway/auth/mcp/config-service.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/mcp/config-service.ts rename to packages/server/src/gateway/auth/mcp/config-service.ts diff --git a/packages/owletto-backend/src/gateway/auth/mcp/oauth-discovery.ts b/packages/server/src/gateway/auth/mcp/oauth-discovery.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/mcp/oauth-discovery.ts rename to packages/server/src/gateway/auth/mcp/oauth-discovery.ts diff --git a/packages/owletto-backend/src/gateway/auth/mcp/oauth-flow.ts b/packages/server/src/gateway/auth/mcp/oauth-flow.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/mcp/oauth-flow.ts rename to packages/server/src/gateway/auth/mcp/oauth-flow.ts diff --git a/packages/owletto-backend/src/gateway/auth/mcp/pending-tool-store.ts b/packages/server/src/gateway/auth/mcp/pending-tool-store.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/mcp/pending-tool-store.ts rename to packages/server/src/gateway/auth/mcp/pending-tool-store.ts diff --git a/packages/owletto-backend/src/gateway/auth/mcp/proxy.ts b/packages/server/src/gateway/auth/mcp/proxy.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/mcp/proxy.ts rename to packages/server/src/gateway/auth/mcp/proxy.ts diff --git a/packages/owletto-backend/src/gateway/auth/mcp/resume-after-oauth.ts b/packages/server/src/gateway/auth/mcp/resume-after-oauth.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/mcp/resume-after-oauth.ts rename to packages/server/src/gateway/auth/mcp/resume-after-oauth.ts diff --git a/packages/owletto-backend/src/gateway/auth/mcp/string-substitution.ts b/packages/server/src/gateway/auth/mcp/string-substitution.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/mcp/string-substitution.ts rename to packages/server/src/gateway/auth/mcp/string-substitution.ts diff --git a/packages/owletto-backend/src/gateway/auth/mcp/tool-cache.ts b/packages/server/src/gateway/auth/mcp/tool-cache.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/mcp/tool-cache.ts rename to packages/server/src/gateway/auth/mcp/tool-cache.ts diff --git a/packages/owletto-backend/src/gateway/auth/oauth-templates.ts b/packages/server/src/gateway/auth/oauth-templates.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/oauth-templates.ts rename to packages/server/src/gateway/auth/oauth-templates.ts diff --git a/packages/owletto-backend/src/gateway/auth/oauth/base-client.ts b/packages/server/src/gateway/auth/oauth/base-client.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/oauth/base-client.ts rename to packages/server/src/gateway/auth/oauth/base-client.ts diff --git a/packages/owletto-backend/src/gateway/auth/oauth/client.ts b/packages/server/src/gateway/auth/oauth/client.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/oauth/client.ts rename to packages/server/src/gateway/auth/oauth/client.ts diff --git a/packages/owletto-backend/src/gateway/auth/oauth/credentials.ts b/packages/server/src/gateway/auth/oauth/credentials.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/oauth/credentials.ts rename to packages/server/src/gateway/auth/oauth/credentials.ts diff --git a/packages/owletto-backend/src/gateway/auth/oauth/providers.ts b/packages/server/src/gateway/auth/oauth/providers.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/oauth/providers.ts rename to packages/server/src/gateway/auth/oauth/providers.ts diff --git a/packages/owletto-backend/src/gateway/auth/oauth/state-store.ts b/packages/server/src/gateway/auth/oauth/state-store.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/oauth/state-store.ts rename to packages/server/src/gateway/auth/oauth/state-store.ts diff --git a/packages/owletto-backend/src/gateway/auth/provider-catalog.ts b/packages/server/src/gateway/auth/provider-catalog.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/provider-catalog.ts rename to packages/server/src/gateway/auth/provider-catalog.ts diff --git a/packages/owletto-backend/src/gateway/auth/provider-model-options.ts b/packages/server/src/gateway/auth/provider-model-options.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/provider-model-options.ts rename to packages/server/src/gateway/auth/provider-model-options.ts diff --git a/packages/owletto-backend/src/gateway/auth/settings/agent-settings-store.ts b/packages/server/src/gateway/auth/settings/agent-settings-store.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/settings/agent-settings-store.ts rename to packages/server/src/gateway/auth/settings/agent-settings-store.ts diff --git a/packages/owletto-backend/src/gateway/auth/settings/auth-profiles-manager.ts b/packages/server/src/gateway/auth/settings/auth-profiles-manager.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/settings/auth-profiles-manager.ts rename to packages/server/src/gateway/auth/settings/auth-profiles-manager.ts diff --git a/packages/owletto-backend/src/gateway/auth/settings/index.ts b/packages/server/src/gateway/auth/settings/index.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/settings/index.ts rename to packages/server/src/gateway/auth/settings/index.ts diff --git a/packages/owletto-backend/src/gateway/auth/settings/model-preference-store.ts b/packages/server/src/gateway/auth/settings/model-preference-store.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/settings/model-preference-store.ts rename to packages/server/src/gateway/auth/settings/model-preference-store.ts diff --git a/packages/owletto-backend/src/gateway/auth/settings/model-selection.ts b/packages/server/src/gateway/auth/settings/model-selection.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/settings/model-selection.ts rename to packages/server/src/gateway/auth/settings/model-selection.ts diff --git a/packages/owletto-backend/src/gateway/auth/settings/resolved-settings-view.ts b/packages/server/src/gateway/auth/settings/resolved-settings-view.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/settings/resolved-settings-view.ts rename to packages/server/src/gateway/auth/settings/resolved-settings-view.ts diff --git a/packages/owletto-backend/src/gateway/auth/settings/template-utils.ts b/packages/server/src/gateway/auth/settings/template-utils.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/settings/template-utils.ts rename to packages/server/src/gateway/auth/settings/template-utils.ts diff --git a/packages/owletto-backend/src/gateway/auth/settings/token-service.ts b/packages/server/src/gateway/auth/settings/token-service.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/settings/token-service.ts rename to packages/server/src/gateway/auth/settings/token-service.ts diff --git a/packages/owletto-backend/src/gateway/auth/settings/user-auth-profile-store.ts b/packages/server/src/gateway/auth/settings/user-auth-profile-store.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/settings/user-auth-profile-store.ts rename to packages/server/src/gateway/auth/settings/user-auth-profile-store.ts diff --git a/packages/owletto-backend/src/gateway/auth/system-env-store.ts b/packages/server/src/gateway/auth/system-env-store.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/system-env-store.ts rename to packages/server/src/gateway/auth/system-env-store.ts diff --git a/packages/owletto-backend/src/gateway/auth/user-agents-store.ts b/packages/server/src/gateway/auth/user-agents-store.ts similarity index 100% rename from packages/owletto-backend/src/gateway/auth/user-agents-store.ts rename to packages/server/src/gateway/auth/user-agents-store.ts diff --git a/packages/owletto-backend/src/gateway/channels/binding-service.ts b/packages/server/src/gateway/channels/binding-service.ts similarity index 100% rename from packages/owletto-backend/src/gateway/channels/binding-service.ts rename to packages/server/src/gateway/channels/binding-service.ts diff --git a/packages/owletto-backend/src/gateway/channels/index.ts b/packages/server/src/gateway/channels/index.ts similarity index 100% rename from packages/owletto-backend/src/gateway/channels/index.ts rename to packages/server/src/gateway/channels/index.ts diff --git a/packages/owletto-backend/src/gateway/cli/gateway.ts b/packages/server/src/gateway/cli/gateway.ts similarity index 100% rename from packages/owletto-backend/src/gateway/cli/gateway.ts rename to packages/server/src/gateway/cli/gateway.ts diff --git a/packages/owletto-backend/src/gateway/cli/index.ts b/packages/server/src/gateway/cli/index.ts similarity index 100% rename from packages/owletto-backend/src/gateway/cli/index.ts rename to packages/server/src/gateway/cli/index.ts diff --git a/packages/owletto-backend/src/gateway/commands/built-in-commands.ts b/packages/server/src/gateway/commands/built-in-commands.ts similarity index 100% rename from packages/owletto-backend/src/gateway/commands/built-in-commands.ts rename to packages/server/src/gateway/commands/built-in-commands.ts diff --git a/packages/owletto-backend/src/gateway/commands/command-dispatcher.ts b/packages/server/src/gateway/commands/command-dispatcher.ts similarity index 100% rename from packages/owletto-backend/src/gateway/commands/command-dispatcher.ts rename to packages/server/src/gateway/commands/command-dispatcher.ts diff --git a/packages/owletto-backend/src/gateway/commands/command-reply-adapters.ts b/packages/server/src/gateway/commands/command-reply-adapters.ts similarity index 100% rename from packages/owletto-backend/src/gateway/commands/command-reply-adapters.ts rename to packages/server/src/gateway/commands/command-reply-adapters.ts diff --git a/packages/owletto-backend/src/gateway/config/file-loader.ts b/packages/server/src/gateway/config/file-loader.ts similarity index 100% rename from packages/owletto-backend/src/gateway/config/file-loader.ts rename to packages/server/src/gateway/config/file-loader.ts diff --git a/packages/owletto-backend/src/gateway/config/index.ts b/packages/server/src/gateway/config/index.ts similarity index 97% rename from packages/owletto-backend/src/gateway/config/index.ts rename to packages/server/src/gateway/config/index.ts index 71f8cbe63..4e3198aa5 100644 --- a/packages/owletto-backend/src/gateway/config/index.ts +++ b/packages/server/src/gateway/config/index.ts @@ -19,11 +19,11 @@ import type { OrchestratorConfig } from "../orchestration/base-deployment-manage const __filename = fileURLToPath(import.meta.url); const logger = createLogger("cli-config"); -const OWLETTO_PLUGIN_SOURCE = "@lobu/owletto-openclaw"; +const OWLETTO_PLUGIN_SOURCE = "@lobu/openclaw-plugin"; const NATIVE_MEMORY_PLUGIN_SOURCE = "@openclaw/native-memory"; const WORKER_PACKAGE_JSON_CANDIDATES = [ - path.resolve(process.cwd(), "packages/worker/package.json"), - "/app/packages/worker/package.json", + path.resolve(process.cwd(), "packages/agent-worker/package.json"), + "/app/packages/agent-worker/package.json", ] as const; // Gateway-specific constants; core ones (TIME, DEFAULTS) come from @lobu/core. @@ -168,7 +168,7 @@ export function loadEnvFile(envPath?: string): void { /** * Derive the internal gateway URL for worker→gateway communication. * Embedded workers are subprocesses on the same host; the gateway is - * served by `@lobu/owletto-backend` on `PORT` under the `/lobu` mount. + * served by `@lobu/server` on `PORT` under the `/lobu` mount. * `DISPATCHER_URL` is honoured if set so a caller can override (e.g. a * separate network namespace). */ @@ -201,7 +201,7 @@ function isPluginInstalled(source: string): boolean { return true; } catch { // require.resolve() can fail for ESM-only packages whose `exports` map - // omits a `require`/`default` condition (e.g. @lobu/owletto-openclaw). + // omits a `require`/`default` condition (e.g. @lobu/openclaw-plugin). // Fall back to walking up parent directories looking for the package // folder under any ancestor `node_modules`, mirroring Node's module // resolution algorithm. @@ -301,10 +301,10 @@ function buildEmbeddedWorkerPaths(projectRoot: string): { const explicitBinPathEntries = process.env.LOBU_WORKER_BIN_PATHS?.split( path.delimiter ).filter(Boolean); - const monorepoEntryPoint = path.join(root, "packages/worker/src/index.ts"); + const monorepoEntryPoint = path.join(root, "packages/agent-worker/src/index.ts"); const monorepoBinPathEntries = [ path.join(root, "node_modules/.bin"), - path.join(root, "packages/worker/node_modules/.bin"), + path.join(root, "packages/agent-worker/node_modules/.bin"), ]; if (explicitEntryPoint) { diff --git a/packages/owletto-backend/src/gateway/config/network-allowlist.ts b/packages/server/src/gateway/config/network-allowlist.ts similarity index 100% rename from packages/owletto-backend/src/gateway/config/network-allowlist.ts rename to packages/server/src/gateway/config/network-allowlist.ts diff --git a/packages/owletto-backend/src/gateway/connections/chat-connection-store.ts b/packages/server/src/gateway/connections/chat-connection-store.ts similarity index 100% rename from packages/owletto-backend/src/gateway/connections/chat-connection-store.ts rename to packages/server/src/gateway/connections/chat-connection-store.ts diff --git a/packages/owletto-backend/src/gateway/connections/chat-instance-manager.ts b/packages/server/src/gateway/connections/chat-instance-manager.ts similarity index 100% rename from packages/owletto-backend/src/gateway/connections/chat-instance-manager.ts rename to packages/server/src/gateway/connections/chat-instance-manager.ts diff --git a/packages/owletto-backend/src/gateway/connections/chat-response-bridge.ts b/packages/server/src/gateway/connections/chat-response-bridge.ts similarity index 100% rename from packages/owletto-backend/src/gateway/connections/chat-response-bridge.ts rename to packages/server/src/gateway/connections/chat-response-bridge.ts diff --git a/packages/owletto-backend/src/gateway/connections/conversation-state-store.ts b/packages/server/src/gateway/connections/conversation-state-store.ts similarity index 100% rename from packages/owletto-backend/src/gateway/connections/conversation-state-store.ts rename to packages/server/src/gateway/connections/conversation-state-store.ts diff --git a/packages/owletto-backend/src/gateway/connections/index.ts b/packages/server/src/gateway/connections/index.ts similarity index 100% rename from packages/owletto-backend/src/gateway/connections/index.ts rename to packages/server/src/gateway/connections/index.ts diff --git a/packages/owletto-backend/src/gateway/connections/interaction-bridge.ts b/packages/server/src/gateway/connections/interaction-bridge.ts similarity index 100% rename from packages/owletto-backend/src/gateway/connections/interaction-bridge.ts rename to packages/server/src/gateway/connections/interaction-bridge.ts diff --git a/packages/owletto-backend/src/gateway/connections/message-handler-bridge.ts b/packages/server/src/gateway/connections/message-handler-bridge.ts similarity index 100% rename from packages/owletto-backend/src/gateway/connections/message-handler-bridge.ts rename to packages/server/src/gateway/connections/message-handler-bridge.ts diff --git a/packages/owletto-backend/src/gateway/connections/platform-auth-methods.ts b/packages/server/src/gateway/connections/platform-auth-methods.ts similarity index 100% rename from packages/owletto-backend/src/gateway/connections/platform-auth-methods.ts rename to packages/server/src/gateway/connections/platform-auth-methods.ts diff --git a/packages/owletto-backend/src/gateway/connections/platform-strategies/async-push-iterator.ts b/packages/server/src/gateway/connections/platform-strategies/async-push-iterator.ts similarity index 100% rename from packages/owletto-backend/src/gateway/connections/platform-strategies/async-push-iterator.ts rename to packages/server/src/gateway/connections/platform-strategies/async-push-iterator.ts diff --git a/packages/owletto-backend/src/gateway/connections/platform-strategies/index.ts b/packages/server/src/gateway/connections/platform-strategies/index.ts similarity index 100% rename from packages/owletto-backend/src/gateway/connections/platform-strategies/index.ts rename to packages/server/src/gateway/connections/platform-strategies/index.ts diff --git a/packages/owletto-backend/src/gateway/connections/slack-connection-coordinator.ts b/packages/server/src/gateway/connections/slack-connection-coordinator.ts similarity index 100% rename from packages/owletto-backend/src/gateway/connections/slack-connection-coordinator.ts rename to packages/server/src/gateway/connections/slack-connection-coordinator.ts diff --git a/packages/owletto-backend/src/gateway/connections/slack-instruction-provider.ts b/packages/server/src/gateway/connections/slack-instruction-provider.ts similarity index 100% rename from packages/owletto-backend/src/gateway/connections/slack-instruction-provider.ts rename to packages/server/src/gateway/connections/slack-instruction-provider.ts diff --git a/packages/owletto-backend/src/gateway/connections/slack-platform-bridge.ts b/packages/server/src/gateway/connections/slack-platform-bridge.ts similarity index 100% rename from packages/owletto-backend/src/gateway/connections/slack-platform-bridge.ts rename to packages/server/src/gateway/connections/slack-platform-bridge.ts diff --git a/packages/owletto-backend/src/gateway/connections/state-adapter.ts b/packages/server/src/gateway/connections/state-adapter.ts similarity index 100% rename from packages/owletto-backend/src/gateway/connections/state-adapter.ts rename to packages/server/src/gateway/connections/state-adapter.ts diff --git a/packages/owletto-backend/src/gateway/connections/types.ts b/packages/server/src/gateway/connections/types.ts similarity index 100% rename from packages/owletto-backend/src/gateway/connections/types.ts rename to packages/server/src/gateway/connections/types.ts diff --git a/packages/owletto-backend/src/gateway/embedded.ts b/packages/server/src/gateway/embedded.ts similarity index 100% rename from packages/owletto-backend/src/gateway/embedded.ts rename to packages/server/src/gateway/embedded.ts diff --git a/packages/owletto-backend/src/gateway/files/artifact-store.ts b/packages/server/src/gateway/files/artifact-store.ts similarity index 100% rename from packages/owletto-backend/src/gateway/files/artifact-store.ts rename to packages/server/src/gateway/files/artifact-store.ts diff --git a/packages/owletto-backend/src/gateway/gateway-main.ts b/packages/server/src/gateway/gateway-main.ts similarity index 100% rename from packages/owletto-backend/src/gateway/gateway-main.ts rename to packages/server/src/gateway/gateway-main.ts diff --git a/packages/owletto-backend/src/gateway/gateway/connection-manager.ts b/packages/server/src/gateway/gateway/connection-manager.ts similarity index 100% rename from packages/owletto-backend/src/gateway/gateway/connection-manager.ts rename to packages/server/src/gateway/gateway/connection-manager.ts diff --git a/packages/owletto-backend/src/gateway/gateway/index.ts b/packages/server/src/gateway/gateway/index.ts similarity index 100% rename from packages/owletto-backend/src/gateway/gateway/index.ts rename to packages/server/src/gateway/gateway/index.ts diff --git a/packages/owletto-backend/src/gateway/gateway/job-router.ts b/packages/server/src/gateway/gateway/job-router.ts similarity index 100% rename from packages/owletto-backend/src/gateway/gateway/job-router.ts rename to packages/server/src/gateway/gateway/job-router.ts diff --git a/packages/owletto-backend/src/gateway/index.ts b/packages/server/src/gateway/index.ts similarity index 96% rename from packages/owletto-backend/src/gateway/index.ts rename to packages/server/src/gateway/index.ts index b92e65b13..f8ee9361c 100644 --- a/packages/owletto-backend/src/gateway/index.ts +++ b/packages/server/src/gateway/index.ts @@ -2,7 +2,7 @@ * In-process Lobu gateway barrel. * * Exports the Gateway, config builders, and the Hono app factory used by - * `src/lobu/gateway.ts` to mount the gateway inside owletto-backend. The + * `src/lobu/gateway.ts` to mount the gateway inside server. The * standalone CLI lives in `./cli/index.ts` for callers that want to run the * gateway as its own process. */ diff --git a/packages/owletto-backend/src/gateway/infrastructure/queue/__tests__/runs-queue.test.ts b/packages/server/src/gateway/infrastructure/queue/__tests__/runs-queue.test.ts similarity index 100% rename from packages/owletto-backend/src/gateway/infrastructure/queue/__tests__/runs-queue.test.ts rename to packages/server/src/gateway/infrastructure/queue/__tests__/runs-queue.test.ts diff --git a/packages/owletto-backend/src/gateway/infrastructure/queue/index.ts b/packages/server/src/gateway/infrastructure/queue/index.ts similarity index 100% rename from packages/owletto-backend/src/gateway/infrastructure/queue/index.ts rename to packages/server/src/gateway/infrastructure/queue/index.ts diff --git a/packages/owletto-backend/src/gateway/infrastructure/queue/queue-producer.ts b/packages/server/src/gateway/infrastructure/queue/queue-producer.ts similarity index 100% rename from packages/owletto-backend/src/gateway/infrastructure/queue/queue-producer.ts rename to packages/server/src/gateway/infrastructure/queue/queue-producer.ts diff --git a/packages/owletto-backend/src/gateway/infrastructure/queue/runs-queue.ts b/packages/server/src/gateway/infrastructure/queue/runs-queue.ts similarity index 100% rename from packages/owletto-backend/src/gateway/infrastructure/queue/runs-queue.ts rename to packages/server/src/gateway/infrastructure/queue/runs-queue.ts diff --git a/packages/owletto-backend/src/gateway/infrastructure/queue/types.ts b/packages/server/src/gateway/infrastructure/queue/types.ts similarity index 100% rename from packages/owletto-backend/src/gateway/infrastructure/queue/types.ts rename to packages/server/src/gateway/infrastructure/queue/types.ts diff --git a/packages/owletto-backend/src/gateway/interactions.ts b/packages/server/src/gateway/interactions.ts similarity index 100% rename from packages/owletto-backend/src/gateway/interactions.ts rename to packages/server/src/gateway/interactions.ts diff --git a/packages/owletto-backend/src/gateway/metrics/prometheus.ts b/packages/server/src/gateway/metrics/prometheus.ts similarity index 100% rename from packages/owletto-backend/src/gateway/metrics/prometheus.ts rename to packages/server/src/gateway/metrics/prometheus.ts diff --git a/packages/owletto-backend/src/gateway/modules/module-system.ts b/packages/server/src/gateway/modules/module-system.ts similarity index 100% rename from packages/owletto-backend/src/gateway/modules/module-system.ts rename to packages/server/src/gateway/modules/module-system.ts diff --git a/packages/owletto-backend/src/gateway/orchestration/base-deployment-manager.ts b/packages/server/src/gateway/orchestration/base-deployment-manager.ts similarity index 100% rename from packages/owletto-backend/src/gateway/orchestration/base-deployment-manager.ts rename to packages/server/src/gateway/orchestration/base-deployment-manager.ts diff --git a/packages/owletto-backend/src/gateway/orchestration/deployment-utils.ts b/packages/server/src/gateway/orchestration/deployment-utils.ts similarity index 100% rename from packages/owletto-backend/src/gateway/orchestration/deployment-utils.ts rename to packages/server/src/gateway/orchestration/deployment-utils.ts diff --git a/packages/owletto-backend/src/gateway/orchestration/impl/embedded-deployment.ts b/packages/server/src/gateway/orchestration/impl/embedded-deployment.ts similarity index 99% rename from packages/owletto-backend/src/gateway/orchestration/impl/embedded-deployment.ts rename to packages/server/src/gateway/orchestration/impl/embedded-deployment.ts index 649743428..6b8a21554 100644 --- a/packages/owletto-backend/src/gateway/orchestration/impl/embedded-deployment.ts +++ b/packages/server/src/gateway/orchestration/impl/embedded-deployment.ts @@ -190,7 +190,7 @@ export class EmbeddedDeploymentManager extends BaseDeploymentManager { } /** - * Embedded gateway is served by `@lobu/owletto-backend` at the `/lobu` + * Embedded gateway is served by `@lobu/server` at the `/lobu` * mount on the configured PORT (default 8787). Without overriding here, * `BaseDeploymentManager` would hand workers the standalone gateway default * port with no mount prefix, so the worker would 404 on every dispatch and diff --git a/packages/owletto-backend/src/gateway/orchestration/impl/index.ts b/packages/server/src/gateway/orchestration/impl/index.ts similarity index 100% rename from packages/owletto-backend/src/gateway/orchestration/impl/index.ts rename to packages/server/src/gateway/orchestration/impl/index.ts diff --git a/packages/owletto-backend/src/gateway/orchestration/index.ts b/packages/server/src/gateway/orchestration/index.ts similarity index 100% rename from packages/owletto-backend/src/gateway/orchestration/index.ts rename to packages/server/src/gateway/orchestration/index.ts diff --git a/packages/owletto-backend/src/gateway/orchestration/message-consumer.ts b/packages/server/src/gateway/orchestration/message-consumer.ts similarity index 99% rename from packages/owletto-backend/src/gateway/orchestration/message-consumer.ts rename to packages/server/src/gateway/orchestration/message-consumer.ts index 8c46ae84a..4e0e8cdcf 100644 --- a/packages/owletto-backend/src/gateway/orchestration/message-consumer.ts +++ b/packages/server/src/gateway/orchestration/message-consumer.ts @@ -31,7 +31,7 @@ export class MessageConsumer { private config: OrchestratorConfig; private isRunning = false; /** - * Per-process deployment-creation lock. The embedded-only owletto-backend + * Per-process deployment-creation lock. The embedded-only server * has a single MessageConsumer instance per process, so an in-memory Map * is sufficient for the "two consecutive messages for the same thread * race to create the deployment" guard. The Phase-9 gateway no longer diff --git a/packages/owletto-backend/src/gateway/permissions/approval-policy.ts b/packages/server/src/gateway/permissions/approval-policy.ts similarity index 100% rename from packages/owletto-backend/src/gateway/permissions/approval-policy.ts rename to packages/server/src/gateway/permissions/approval-policy.ts diff --git a/packages/owletto-backend/src/gateway/permissions/grant-store.ts b/packages/server/src/gateway/permissions/grant-store.ts similarity index 100% rename from packages/owletto-backend/src/gateway/permissions/grant-store.ts rename to packages/server/src/gateway/permissions/grant-store.ts diff --git a/packages/owletto-backend/src/gateway/permissions/policy-store.ts b/packages/server/src/gateway/permissions/policy-store.ts similarity index 100% rename from packages/owletto-backend/src/gateway/permissions/policy-store.ts rename to packages/server/src/gateway/permissions/policy-store.ts diff --git a/packages/owletto-backend/src/gateway/platform.ts b/packages/server/src/gateway/platform.ts similarity index 100% rename from packages/owletto-backend/src/gateway/platform.ts rename to packages/server/src/gateway/platform.ts diff --git a/packages/owletto-backend/src/gateway/platform/file-handler.ts b/packages/server/src/gateway/platform/file-handler.ts similarity index 100% rename from packages/owletto-backend/src/gateway/platform/file-handler.ts rename to packages/server/src/gateway/platform/file-handler.ts diff --git a/packages/owletto-backend/src/gateway/platform/link-buttons.ts b/packages/server/src/gateway/platform/link-buttons.ts similarity index 100% rename from packages/owletto-backend/src/gateway/platform/link-buttons.ts rename to packages/server/src/gateway/platform/link-buttons.ts diff --git a/packages/owletto-backend/src/gateway/platform/response-renderer.ts b/packages/server/src/gateway/platform/response-renderer.ts similarity index 100% rename from packages/owletto-backend/src/gateway/platform/response-renderer.ts rename to packages/server/src/gateway/platform/response-renderer.ts diff --git a/packages/owletto-backend/src/gateway/platform/unified-thread-consumer.ts b/packages/server/src/gateway/platform/unified-thread-consumer.ts similarity index 100% rename from packages/owletto-backend/src/gateway/platform/unified-thread-consumer.ts rename to packages/server/src/gateway/platform/unified-thread-consumer.ts diff --git a/packages/owletto-backend/src/gateway/proxy/egress-judge/anthropic-client.ts b/packages/server/src/gateway/proxy/egress-judge/anthropic-client.ts similarity index 100% rename from packages/owletto-backend/src/gateway/proxy/egress-judge/anthropic-client.ts rename to packages/server/src/gateway/proxy/egress-judge/anthropic-client.ts diff --git a/packages/owletto-backend/src/gateway/proxy/egress-judge/cache.ts b/packages/server/src/gateway/proxy/egress-judge/cache.ts similarity index 100% rename from packages/owletto-backend/src/gateway/proxy/egress-judge/cache.ts rename to packages/server/src/gateway/proxy/egress-judge/cache.ts diff --git a/packages/owletto-backend/src/gateway/proxy/egress-judge/circuit-breaker.ts b/packages/server/src/gateway/proxy/egress-judge/circuit-breaker.ts similarity index 100% rename from packages/owletto-backend/src/gateway/proxy/egress-judge/circuit-breaker.ts rename to packages/server/src/gateway/proxy/egress-judge/circuit-breaker.ts diff --git a/packages/owletto-backend/src/gateway/proxy/egress-judge/index.ts b/packages/server/src/gateway/proxy/egress-judge/index.ts similarity index 100% rename from packages/owletto-backend/src/gateway/proxy/egress-judge/index.ts rename to packages/server/src/gateway/proxy/egress-judge/index.ts diff --git a/packages/owletto-backend/src/gateway/proxy/egress-judge/judge.ts b/packages/server/src/gateway/proxy/egress-judge/judge.ts similarity index 100% rename from packages/owletto-backend/src/gateway/proxy/egress-judge/judge.ts rename to packages/server/src/gateway/proxy/egress-judge/judge.ts diff --git a/packages/owletto-backend/src/gateway/proxy/egress-judge/policy-composer.ts b/packages/server/src/gateway/proxy/egress-judge/policy-composer.ts similarity index 100% rename from packages/owletto-backend/src/gateway/proxy/egress-judge/policy-composer.ts rename to packages/server/src/gateway/proxy/egress-judge/policy-composer.ts diff --git a/packages/owletto-backend/src/gateway/proxy/egress-judge/types.ts b/packages/server/src/gateway/proxy/egress-judge/types.ts similarity index 100% rename from packages/owletto-backend/src/gateway/proxy/egress-judge/types.ts rename to packages/server/src/gateway/proxy/egress-judge/types.ts diff --git a/packages/owletto-backend/src/gateway/proxy/http-proxy.ts b/packages/server/src/gateway/proxy/http-proxy.ts similarity index 100% rename from packages/owletto-backend/src/gateway/proxy/http-proxy.ts rename to packages/server/src/gateway/proxy/http-proxy.ts diff --git a/packages/owletto-backend/src/gateway/proxy/proxy-manager.ts b/packages/server/src/gateway/proxy/proxy-manager.ts similarity index 100% rename from packages/owletto-backend/src/gateway/proxy/proxy-manager.ts rename to packages/server/src/gateway/proxy/proxy-manager.ts diff --git a/packages/owletto-backend/src/gateway/proxy/secret-proxy.ts b/packages/server/src/gateway/proxy/secret-proxy.ts similarity index 100% rename from packages/owletto-backend/src/gateway/proxy/secret-proxy.ts rename to packages/server/src/gateway/proxy/secret-proxy.ts diff --git a/packages/owletto-backend/src/gateway/proxy/token-refresh-job.ts b/packages/server/src/gateway/proxy/token-refresh-job.ts similarity index 100% rename from packages/owletto-backend/src/gateway/proxy/token-refresh-job.ts rename to packages/server/src/gateway/proxy/token-refresh-job.ts diff --git a/packages/owletto-backend/src/gateway/routes/internal/audio.ts b/packages/server/src/gateway/routes/internal/audio.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/internal/audio.ts rename to packages/server/src/gateway/routes/internal/audio.ts diff --git a/packages/owletto-backend/src/gateway/routes/internal/device-auth.ts b/packages/server/src/gateway/routes/internal/device-auth.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/internal/device-auth.ts rename to packages/server/src/gateway/routes/internal/device-auth.ts diff --git a/packages/owletto-backend/src/gateway/routes/internal/files.ts b/packages/server/src/gateway/routes/internal/files.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/internal/files.ts rename to packages/server/src/gateway/routes/internal/files.ts diff --git a/packages/owletto-backend/src/gateway/routes/internal/history.ts b/packages/server/src/gateway/routes/internal/history.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/internal/history.ts rename to packages/server/src/gateway/routes/internal/history.ts diff --git a/packages/owletto-backend/src/gateway/routes/internal/images.ts b/packages/server/src/gateway/routes/internal/images.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/internal/images.ts rename to packages/server/src/gateway/routes/internal/images.ts diff --git a/packages/owletto-backend/src/gateway/routes/internal/interactions.ts b/packages/server/src/gateway/routes/internal/interactions.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/internal/interactions.ts rename to packages/server/src/gateway/routes/internal/interactions.ts diff --git a/packages/owletto-backend/src/gateway/routes/internal/middleware.ts b/packages/server/src/gateway/routes/internal/middleware.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/internal/middleware.ts rename to packages/server/src/gateway/routes/internal/middleware.ts diff --git a/packages/owletto-backend/src/gateway/routes/internal/types.ts b/packages/server/src/gateway/routes/internal/types.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/internal/types.ts rename to packages/server/src/gateway/routes/internal/types.ts diff --git a/packages/owletto-backend/src/gateway/routes/openapi-auto.ts b/packages/server/src/gateway/routes/openapi-auto.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/openapi-auto.ts rename to packages/server/src/gateway/routes/openapi-auto.ts diff --git a/packages/owletto-backend/src/gateway/routes/public/agent-config.ts b/packages/server/src/gateway/routes/public/agent-config.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/public/agent-config.ts rename to packages/server/src/gateway/routes/public/agent-config.ts diff --git a/packages/owletto-backend/src/gateway/routes/public/agent-history.ts b/packages/server/src/gateway/routes/public/agent-history.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/public/agent-history.ts rename to packages/server/src/gateway/routes/public/agent-history.ts diff --git a/packages/owletto-backend/src/gateway/routes/public/agent.ts b/packages/server/src/gateway/routes/public/agent.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/public/agent.ts rename to packages/server/src/gateway/routes/public/agent.ts diff --git a/packages/owletto-backend/src/gateway/routes/public/agents.ts b/packages/server/src/gateway/routes/public/agents.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/public/agents.ts rename to packages/server/src/gateway/routes/public/agents.ts diff --git a/packages/owletto-backend/src/gateway/routes/public/channels.ts b/packages/server/src/gateway/routes/public/channels.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/public/channels.ts rename to packages/server/src/gateway/routes/public/channels.ts diff --git a/packages/owletto-backend/src/gateway/routes/public/connect-auth.ts b/packages/server/src/gateway/routes/public/connect-auth.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/public/connect-auth.ts rename to packages/server/src/gateway/routes/public/connect-auth.ts diff --git a/packages/owletto-backend/src/gateway/routes/public/connections.ts b/packages/server/src/gateway/routes/public/connections.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/public/connections.ts rename to packages/server/src/gateway/routes/public/connections.ts diff --git a/packages/owletto-backend/src/gateway/routes/public/files.ts b/packages/server/src/gateway/routes/public/files.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/public/files.ts rename to packages/server/src/gateway/routes/public/files.ts diff --git a/packages/owletto-backend/src/gateway/routes/public/landing.ts b/packages/server/src/gateway/routes/public/landing.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/public/landing.ts rename to packages/server/src/gateway/routes/public/landing.ts diff --git a/packages/owletto-backend/src/gateway/routes/public/mcp-oauth.ts b/packages/server/src/gateway/routes/public/mcp-oauth.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/public/mcp-oauth.ts rename to packages/server/src/gateway/routes/public/mcp-oauth.ts diff --git a/packages/owletto-backend/src/gateway/routes/public/oauth.ts b/packages/server/src/gateway/routes/public/oauth.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/public/oauth.ts rename to packages/server/src/gateway/routes/public/oauth.ts diff --git a/packages/owletto-backend/src/gateway/routes/public/settings-auth.ts b/packages/server/src/gateway/routes/public/settings-auth.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/public/settings-auth.ts rename to packages/server/src/gateway/routes/public/settings-auth.ts diff --git a/packages/owletto-backend/src/gateway/routes/public/slack.ts b/packages/server/src/gateway/routes/public/slack.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/public/slack.ts rename to packages/server/src/gateway/routes/public/slack.ts diff --git a/packages/owletto-backend/src/gateway/routes/shared/agent-ownership.ts b/packages/server/src/gateway/routes/shared/agent-ownership.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/shared/agent-ownership.ts rename to packages/server/src/gateway/routes/shared/agent-ownership.ts diff --git a/packages/owletto-backend/src/gateway/routes/shared/helpers.ts b/packages/server/src/gateway/routes/shared/helpers.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/shared/helpers.ts rename to packages/server/src/gateway/routes/shared/helpers.ts diff --git a/packages/owletto-backend/src/gateway/routes/shared/token-verifier.ts b/packages/server/src/gateway/routes/shared/token-verifier.ts similarity index 100% rename from packages/owletto-backend/src/gateway/routes/shared/token-verifier.ts rename to packages/server/src/gateway/routes/shared/token-verifier.ts diff --git a/packages/owletto-backend/src/gateway/secrets/index.ts b/packages/server/src/gateway/secrets/index.ts similarity index 100% rename from packages/owletto-backend/src/gateway/secrets/index.ts rename to packages/server/src/gateway/secrets/index.ts diff --git a/packages/owletto-backend/src/gateway/services/agent-threads.ts b/packages/server/src/gateway/services/agent-threads.ts similarity index 98% rename from packages/owletto-backend/src/gateway/services/agent-threads.ts rename to packages/server/src/gateway/services/agent-threads.ts index 4d7863fad..f12e7df87 100644 --- a/packages/owletto-backend/src/gateway/services/agent-threads.ts +++ b/packages/server/src/gateway/services/agent-threads.ts @@ -5,7 +5,7 @@ * * The HTTP routes in `routes/public/agent.ts` delegate the underlying work * (session minting, queue enqueue) to these functions so that internal - * callers — for example the worker-completion path in `owletto-backend` — + * callers — for example the worker-completion path in `server` — * can open threads and post messages without going through HTTP. * * The functions here intentionally do NOT perform any HTTP-shaped auth diff --git a/packages/owletto-backend/src/gateway/services/bedrock-model-catalog.ts b/packages/server/src/gateway/services/bedrock-model-catalog.ts similarity index 100% rename from packages/owletto-backend/src/gateway/services/bedrock-model-catalog.ts rename to packages/server/src/gateway/services/bedrock-model-catalog.ts diff --git a/packages/owletto-backend/src/gateway/services/bedrock-openai-service.ts b/packages/server/src/gateway/services/bedrock-openai-service.ts similarity index 100% rename from packages/owletto-backend/src/gateway/services/bedrock-openai-service.ts rename to packages/server/src/gateway/services/bedrock-openai-service.ts diff --git a/packages/owletto-backend/src/gateway/services/core-services.ts b/packages/server/src/gateway/services/core-services.ts similarity index 100% rename from packages/owletto-backend/src/gateway/services/core-services.ts rename to packages/server/src/gateway/services/core-services.ts diff --git a/packages/owletto-backend/src/gateway/services/declared-agent-registry.ts b/packages/server/src/gateway/services/declared-agent-registry.ts similarity index 100% rename from packages/owletto-backend/src/gateway/services/declared-agent-registry.ts rename to packages/server/src/gateway/services/declared-agent-registry.ts diff --git a/packages/owletto-backend/src/gateway/services/image-generation-service.ts b/packages/server/src/gateway/services/image-generation-service.ts similarity index 100% rename from packages/owletto-backend/src/gateway/services/image-generation-service.ts rename to packages/server/src/gateway/services/image-generation-service.ts diff --git a/packages/owletto-backend/src/gateway/services/instruction-service.ts b/packages/server/src/gateway/services/instruction-service.ts similarity index 100% rename from packages/owletto-backend/src/gateway/services/instruction-service.ts rename to packages/server/src/gateway/services/instruction-service.ts diff --git a/packages/owletto-backend/src/gateway/services/mcp-registry.ts b/packages/server/src/gateway/services/mcp-registry.ts similarity index 100% rename from packages/owletto-backend/src/gateway/services/mcp-registry.ts rename to packages/server/src/gateway/services/mcp-registry.ts diff --git a/packages/owletto-backend/src/gateway/services/platform-helpers.ts b/packages/server/src/gateway/services/platform-helpers.ts similarity index 99% rename from packages/owletto-backend/src/gateway/services/platform-helpers.ts rename to packages/server/src/gateway/services/platform-helpers.ts index 84dff933d..c151aeb5a 100644 --- a/packages/owletto-backend/src/gateway/services/platform-helpers.ts +++ b/packages/server/src/gateway/services/platform-helpers.ts @@ -16,7 +16,7 @@ import type { MessagePayload } from "../infrastructure/queue/queue-producer.js"; import { platformAgentId } from "../spaces/index.js"; const logger = createLogger("platform-helpers"); -const OWLETTO_PLUGIN_SOURCE = "@lobu/owletto-openclaw"; +const OWLETTO_PLUGIN_SOURCE = "@lobu/openclaw-plugin"; function readOwlettoRuntimeDefaults(): PluginConfig | null { const configuredPlugin = buildMemoryPlugins().find( diff --git a/packages/owletto-backend/src/gateway/services/provider-config-resolver.ts b/packages/server/src/gateway/services/provider-config-resolver.ts similarity index 100% rename from packages/owletto-backend/src/gateway/services/provider-config-resolver.ts rename to packages/server/src/gateway/services/provider-config-resolver.ts diff --git a/packages/owletto-backend/src/gateway/services/provider-registry-service.ts b/packages/server/src/gateway/services/provider-registry-service.ts similarity index 100% rename from packages/owletto-backend/src/gateway/services/provider-registry-service.ts rename to packages/server/src/gateway/services/provider-registry-service.ts diff --git a/packages/owletto-backend/src/gateway/services/session-manager.ts b/packages/server/src/gateway/services/session-manager.ts similarity index 100% rename from packages/owletto-backend/src/gateway/services/session-manager.ts rename to packages/server/src/gateway/services/session-manager.ts diff --git a/packages/owletto-backend/src/gateway/services/settings-resolver.ts b/packages/server/src/gateway/services/settings-resolver.ts similarity index 100% rename from packages/owletto-backend/src/gateway/services/settings-resolver.ts rename to packages/server/src/gateway/services/settings-resolver.ts diff --git a/packages/owletto-backend/src/gateway/services/sse-manager.ts b/packages/server/src/gateway/services/sse-manager.ts similarity index 100% rename from packages/owletto-backend/src/gateway/services/sse-manager.ts rename to packages/server/src/gateway/services/sse-manager.ts diff --git a/packages/owletto-backend/src/gateway/services/transcription-service.ts b/packages/server/src/gateway/services/transcription-service.ts similarity index 100% rename from packages/owletto-backend/src/gateway/services/transcription-service.ts rename to packages/server/src/gateway/services/transcription-service.ts diff --git a/packages/owletto-backend/src/gateway/session.ts b/packages/server/src/gateway/session.ts similarity index 100% rename from packages/owletto-backend/src/gateway/session.ts rename to packages/server/src/gateway/session.ts diff --git a/packages/owletto-backend/src/gateway/spaces/index.ts b/packages/server/src/gateway/spaces/index.ts similarity index 100% rename from packages/owletto-backend/src/gateway/spaces/index.ts rename to packages/server/src/gateway/spaces/index.ts diff --git a/packages/owletto-backend/src/gateway/spaces/space-resolver.ts b/packages/server/src/gateway/spaces/space-resolver.ts similarity index 100% rename from packages/owletto-backend/src/gateway/spaces/space-resolver.ts rename to packages/server/src/gateway/spaces/space-resolver.ts diff --git a/packages/owletto-backend/src/gateway/stores/base-agent-store.ts b/packages/server/src/gateway/stores/base-agent-store.ts similarity index 100% rename from packages/owletto-backend/src/gateway/stores/base-agent-store.ts rename to packages/server/src/gateway/stores/base-agent-store.ts diff --git a/packages/owletto-backend/src/gateway/stores/in-memory-agent-store.ts b/packages/server/src/gateway/stores/in-memory-agent-store.ts similarity index 100% rename from packages/owletto-backend/src/gateway/stores/in-memory-agent-store.ts rename to packages/server/src/gateway/stores/in-memory-agent-store.ts diff --git a/packages/owletto-backend/src/gateway/utils/public-url.ts b/packages/server/src/gateway/utils/public-url.ts similarity index 100% rename from packages/owletto-backend/src/gateway/utils/public-url.ts rename to packages/server/src/gateway/utils/public-url.ts diff --git a/packages/owletto-backend/src/gateway/utils/rate-limiter.ts b/packages/server/src/gateway/utils/rate-limiter.ts similarity index 100% rename from packages/owletto-backend/src/gateway/utils/rate-limiter.ts rename to packages/server/src/gateway/utils/rate-limiter.ts diff --git a/packages/owletto-backend/src/gateway/watchers/run-tracker.ts b/packages/server/src/gateway/watchers/run-tracker.ts similarity index 100% rename from packages/owletto-backend/src/gateway/watchers/run-tracker.ts rename to packages/server/src/gateway/watchers/run-tracker.ts diff --git a/packages/owletto-backend/src/http/spa-route-filter.ts b/packages/server/src/http/spa-route-filter.ts similarity index 100% rename from packages/owletto-backend/src/http/spa-route-filter.ts rename to packages/server/src/http/spa-route-filter.ts diff --git a/packages/owletto-backend/src/identity/auth-hook.ts b/packages/server/src/identity/auth-hook.ts similarity index 100% rename from packages/owletto-backend/src/identity/auth-hook.ts rename to packages/server/src/identity/auth-hook.ts diff --git a/packages/owletto-backend/src/identity/capability-registry.ts b/packages/server/src/identity/capability-registry.ts similarity index 99% rename from packages/owletto-backend/src/identity/capability-registry.ts rename to packages/server/src/identity/capability-registry.ts index 8349729d0..f548d8fbb 100644 --- a/packages/owletto-backend/src/identity/capability-registry.ts +++ b/packages/server/src/identity/capability-registry.ts @@ -21,7 +21,7 @@ import { type AssuranceLevel, type ConnectorFact, type ConnectorIdentityCapability, -} from "@lobu/owletto-sdk"; +} from "@lobu/connector-sdk"; /** * Successful emit result. `facts` may be empty when the user's account is diff --git a/packages/owletto-backend/src/identity/connectors/google.ts b/packages/server/src/identity/connectors/google.ts similarity index 98% rename from packages/owletto-backend/src/identity/connectors/google.ts rename to packages/server/src/identity/connectors/google.ts index d803b948d..ee076ee81 100644 --- a/packages/owletto-backend/src/identity/connectors/google.ts +++ b/packages/server/src/identity/connectors/google.ts @@ -12,8 +12,8 @@ import type { ConnectorFact, ConnectorIdentityCapability, -} from "@lobu/owletto-sdk"; -import { normalizeEmail } from "@lobu/owletto-sdk"; +} from "@lobu/connector-sdk"; +import { normalizeEmail } from "@lobu/connector-sdk"; import { fetchUserInfoWithRaw } from "../../connect/oauth-providers"; import logger from "../../utils/logger"; import { diff --git a/packages/owletto-backend/src/identity/connectors/index.ts b/packages/server/src/identity/connectors/index.ts similarity index 100% rename from packages/owletto-backend/src/identity/connectors/index.ts rename to packages/server/src/identity/connectors/index.ts diff --git a/packages/owletto-backend/src/identity/engine.ts b/packages/server/src/identity/engine.ts similarity index 99% rename from packages/owletto-backend/src/identity/engine.ts rename to packages/server/src/identity/engine.ts index 62f224da3..da8231ddc 100644 --- a/packages/owletto-backend/src/identity/engine.ts +++ b/packages/server/src/identity/engine.ts @@ -29,7 +29,7 @@ import { type DerivedFromProvenance, IDENTITY_FACT_SEMANTIC_TYPE, assuranceMeets, -} from "@lobu/owletto-sdk"; +} from "@lobu/connector-sdk"; import type { EngineOptions, IngestResult } from "./types"; import { validateTypeRule } from "../utils/relationship-validation"; import { connectorCapabilityRegistry } from "./capability-registry"; @@ -797,7 +797,7 @@ async function ingestFactsLocked(params: IngestParams): Promise { } // unique_only with one match, or all_matches with N → derive each. - // (first_match is rejected at the schema layer in @lobu/owletto-sdk.) + // (first_match is rejected at the schema layer in @lobu/connector-sdk.) const targets = rule.matchStrategy === "unique_only" ? [validMatches[0]] : validMatches; for (const target of targets) { diff --git a/packages/owletto-backend/src/identity/lock.ts b/packages/server/src/identity/lock.ts similarity index 100% rename from packages/owletto-backend/src/identity/lock.ts rename to packages/server/src/identity/lock.ts diff --git a/packages/owletto-backend/src/identity/rules.ts b/packages/server/src/identity/rules.ts similarity index 95% rename from packages/owletto-backend/src/identity/rules.ts rename to packages/server/src/identity/rules.ts index e6c23eb65..d90fcc85b 100644 --- a/packages/owletto-backend/src/identity/rules.ts +++ b/packages/server/src/identity/rules.ts @@ -1,5 +1,5 @@ import { createHash } from "node:crypto"; -import type { AutoCreateWhenRule } from "@lobu/owletto-sdk"; +import type { AutoCreateWhenRule } from "@lobu/connector-sdk"; import { validateRelationshipTypeIdentityMetadata } from "./validate"; function canonicaliseRules(rules: AutoCreateWhenRule[]): string { diff --git a/packages/owletto-backend/src/identity/types.ts b/packages/server/src/identity/types.ts similarity index 94% rename from packages/owletto-backend/src/identity/types.ts rename to packages/server/src/identity/types.ts index 5f4a80e24..9148c574b 100644 --- a/packages/owletto-backend/src/identity/types.ts +++ b/packages/server/src/identity/types.ts @@ -1,6 +1,6 @@ /** * Engine-internal types. SDK-facing contracts live in - * `@lobu/owletto-sdk` (`identity-types.ts`); import those directly. + * `@lobu/connector-sdk` (`identity-types.ts`); import those directly. */ /** diff --git a/packages/owletto-backend/src/identity/validate.ts b/packages/server/src/identity/validate.ts similarity index 99% rename from packages/owletto-backend/src/identity/validate.ts rename to packages/server/src/identity/validate.ts index f80f93d63..85725bac4 100644 --- a/packages/owletto-backend/src/identity/validate.ts +++ b/packages/server/src/identity/validate.ts @@ -18,7 +18,7 @@ import { DerivedRelationshipMetadata, FactEventMetadata, RelationshipTypeIdentityMetadata, -} from "@lobu/owletto-sdk"; +} from "@lobu/connector-sdk"; const compiledFact = TypeCompiler.Compile(ConnectorFact); const compiledFactEventMetadata = TypeCompiler.Compile(FactEventMetadata); diff --git a/packages/owletto-backend/src/index.ts b/packages/server/src/index.ts similarity index 98% rename from packages/owletto-backend/src/index.ts rename to packages/server/src/index.ts index b4b38ca3f..65c9656f1 100644 --- a/packages/owletto-backend/src/index.ts +++ b/packages/server/src/index.ts @@ -8,7 +8,7 @@ import fs from 'node:fs/promises'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; -import type { Env } from '@lobu/owletto-sdk'; +import type { Env } from '@lobu/connector-sdk'; import type { Context } from 'hono'; import { Hono } from 'hono'; import { compress } from 'hono/compress'; @@ -144,10 +144,10 @@ async function resolveWebDistDirectory(): Promise { const candidates = [ process.env.WEB_DIST_DIR?.trim(), - path.resolve(APP_ROOT, 'packages/owletto-web/dist'), - path.resolve(APP_ROOT, '../owletto-web/dist'), - path.resolve(process.cwd(), 'packages/owletto-web/dist'), - path.resolve(process.cwd(), '../packages/owletto-web/dist'), + path.resolve(APP_ROOT, 'packages/web/dist'), + path.resolve(APP_ROOT, '../web/dist'), + path.resolve(process.cwd(), 'packages/web/dist'), + path.resolve(process.cwd(), '../packages/web/dist'), ].filter((candidate): candidate is string => Boolean(candidate)); for (const candidate of candidates) { @@ -182,10 +182,10 @@ async function loadSpaHtmlTemplate(): Promise { async function loadFallbackSpaHtmlTemplate(): Promise { const candidates = [ - path.resolve(APP_ROOT, 'packages/owletto-web/index.html'), - path.resolve(APP_ROOT, '../owletto-web/index.html'), - path.resolve(process.cwd(), 'packages/owletto-web/index.html'), - path.resolve(process.cwd(), '../packages/owletto-web/index.html'), + path.resolve(APP_ROOT, 'packages/web/index.html'), + path.resolve(APP_ROOT, '../web/index.html'), + path.resolve(process.cwd(), 'packages/web/index.html'), + path.resolve(process.cwd(), '../packages/web/index.html'), ]; for (const candidate of candidates) { @@ -991,7 +991,7 @@ app.all('/mcp/:orgSlug/', handleMcp); * Catch-all route * Dev: Vite middleware handles source files/HMR before reaching here. * This catch-all serves SPA index.html via Vite's transformIndexHtml. - * Prod: Serves static files from packages/owletto-web/dist with SPA fallback. + * Prod: Serves static files from packages/web/dist with SPA fallback. */ app.get('*', async (c) => { const requestPath = c.req.path; diff --git a/packages/owletto-backend/src/instrument.ts b/packages/server/src/instrument.ts similarity index 100% rename from packages/owletto-backend/src/instrument.ts rename to packages/server/src/instrument.ts diff --git a/packages/owletto-backend/src/lib/feed-sync.ts b/packages/server/src/lib/feed-sync.ts similarity index 97% rename from packages/owletto-backend/src/lib/feed-sync.ts rename to packages/server/src/lib/feed-sync.ts index 31c04a6c2..24b9bdc54 100644 --- a/packages/owletto-backend/src/lib/feed-sync.ts +++ b/packages/server/src/lib/feed-sync.ts @@ -4,7 +4,7 @@ * Extracted from scripts/sync-local.ts for programmatic reuse. */ -import { executeCompiledConnector } from '../../../owletto-worker/src/executor/runtime'; +import { executeCompiledConnector } from '../../../connector-worker/src/executor/runtime'; import { getDb } from '../db/client'; import { resolveConnectorCode } from '../utils/ensure-connector-installed'; import { mergeExecutionConfig, resolveExecutionAuth } from '../utils/execution-context'; diff --git a/packages/owletto-backend/src/lobu/__tests__/agent-routes-apply.test.ts b/packages/server/src/lobu/__tests__/agent-routes-apply.test.ts similarity index 100% rename from packages/owletto-backend/src/lobu/__tests__/agent-routes-apply.test.ts rename to packages/server/src/lobu/__tests__/agent-routes-apply.test.ts diff --git a/packages/owletto-backend/src/lobu/agent-routes.ts b/packages/server/src/lobu/agent-routes.ts similarity index 99% rename from packages/owletto-backend/src/lobu/agent-routes.ts rename to packages/server/src/lobu/agent-routes.ts index 8bb65597f..1acb397fe 100644 --- a/packages/owletto-backend/src/lobu/agent-routes.ts +++ b/packages/server/src/lobu/agent-routes.ts @@ -613,7 +613,7 @@ routes.get('/:agentId/providers/:providerId/oauth/start', mcpAuth, async (c) => userId: user.id, agentId, codeVerifier, - context: { platform: 'owletto-web', channelId: agentId }, + context: { platform: 'web', channelId: agentId }, }); return c.redirect(oauthClient.buildAuthUrl(state, codeVerifier)); diff --git a/packages/owletto-backend/src/lobu/client-routes.ts b/packages/server/src/lobu/client-routes.ts similarity index 100% rename from packages/owletto-backend/src/lobu/client-routes.ts rename to packages/server/src/lobu/client-routes.ts diff --git a/packages/owletto-backend/src/lobu/gateway.ts b/packages/server/src/lobu/gateway.ts similarity index 100% rename from packages/owletto-backend/src/lobu/gateway.ts rename to packages/server/src/lobu/gateway.ts diff --git a/packages/owletto-backend/src/lobu/service-token.ts b/packages/server/src/lobu/service-token.ts similarity index 100% rename from packages/owletto-backend/src/lobu/service-token.ts rename to packages/server/src/lobu/service-token.ts diff --git a/packages/owletto-backend/src/lobu/stores/__tests__/postgres-agent-config-store.test.ts b/packages/server/src/lobu/stores/__tests__/postgres-agent-config-store.test.ts similarity index 100% rename from packages/owletto-backend/src/lobu/stores/__tests__/postgres-agent-config-store.test.ts rename to packages/server/src/lobu/stores/__tests__/postgres-agent-config-store.test.ts diff --git a/packages/owletto-backend/src/lobu/stores/__tests__/postgres-secret-store.test.ts b/packages/server/src/lobu/stores/__tests__/postgres-secret-store.test.ts similarity index 100% rename from packages/owletto-backend/src/lobu/stores/__tests__/postgres-secret-store.test.ts rename to packages/server/src/lobu/stores/__tests__/postgres-secret-store.test.ts diff --git a/packages/owletto-backend/src/lobu/stores/__tests__/postgres-stores.test.ts b/packages/server/src/lobu/stores/__tests__/postgres-stores.test.ts similarity index 100% rename from packages/owletto-backend/src/lobu/stores/__tests__/postgres-stores.test.ts rename to packages/server/src/lobu/stores/__tests__/postgres-stores.test.ts diff --git a/packages/owletto-backend/src/lobu/stores/index.ts b/packages/server/src/lobu/stores/index.ts similarity index 100% rename from packages/owletto-backend/src/lobu/stores/index.ts rename to packages/server/src/lobu/stores/index.ts diff --git a/packages/owletto-backend/src/lobu/stores/org-context.ts b/packages/server/src/lobu/stores/org-context.ts similarity index 100% rename from packages/owletto-backend/src/lobu/stores/org-context.ts rename to packages/server/src/lobu/stores/org-context.ts diff --git a/packages/owletto-backend/src/lobu/stores/postgres-secret-store.ts b/packages/server/src/lobu/stores/postgres-secret-store.ts similarity index 100% rename from packages/owletto-backend/src/lobu/stores/postgres-secret-store.ts rename to packages/server/src/lobu/stores/postgres-secret-store.ts diff --git a/packages/owletto-backend/src/lobu/stores/postgres-stores.ts b/packages/server/src/lobu/stores/postgres-stores.ts similarity index 100% rename from packages/owletto-backend/src/lobu/stores/postgres-stores.ts rename to packages/server/src/lobu/stores/postgres-stores.ts diff --git a/packages/owletto-backend/src/mcp-handler.ts b/packages/server/src/mcp-handler.ts similarity index 100% rename from packages/owletto-backend/src/mcp-handler.ts rename to packages/server/src/mcp-handler.ts diff --git a/packages/owletto-backend/src/mcp-proxy/client.ts b/packages/server/src/mcp-proxy/client.ts similarity index 100% rename from packages/owletto-backend/src/mcp-proxy/client.ts rename to packages/server/src/mcp-proxy/client.ts diff --git a/packages/owletto-backend/src/mcp-proxy/credential-resolver.ts b/packages/server/src/mcp-proxy/credential-resolver.ts similarity index 100% rename from packages/owletto-backend/src/mcp-proxy/credential-resolver.ts rename to packages/server/src/mcp-proxy/credential-resolver.ts diff --git a/packages/owletto-backend/src/mcp-proxy/types.ts b/packages/server/src/mcp-proxy/types.ts similarity index 100% rename from packages/owletto-backend/src/mcp-proxy/types.ts rename to packages/server/src/mcp-proxy/types.ts diff --git a/packages/owletto-backend/src/mcp-session-store.ts b/packages/server/src/mcp-session-store.ts similarity index 100% rename from packages/owletto-backend/src/mcp-session-store.ts rename to packages/server/src/mcp-session-store.ts diff --git a/packages/owletto-backend/src/notifications/routes.ts b/packages/server/src/notifications/routes.ts similarity index 100% rename from packages/owletto-backend/src/notifications/routes.ts rename to packages/server/src/notifications/routes.ts diff --git a/packages/owletto-backend/src/notifications/service.ts b/packages/server/src/notifications/service.ts similarity index 100% rename from packages/owletto-backend/src/notifications/service.ts rename to packages/server/src/notifications/service.ts diff --git a/packages/owletto-backend/src/notifications/triggers.ts b/packages/server/src/notifications/triggers.ts similarity index 100% rename from packages/owletto-backend/src/notifications/triggers.ts rename to packages/server/src/notifications/triggers.ts diff --git a/packages/owletto-backend/src/operations/catalog.ts b/packages/server/src/operations/catalog.ts similarity index 100% rename from packages/owletto-backend/src/operations/catalog.ts rename to packages/server/src/operations/catalog.ts diff --git a/packages/owletto-backend/src/operations/types.ts b/packages/server/src/operations/types.ts similarity index 100% rename from packages/owletto-backend/src/operations/types.ts rename to packages/server/src/operations/types.ts diff --git a/packages/owletto-backend/src/public-pages.ts b/packages/server/src/public-pages.ts similarity index 100% rename from packages/owletto-backend/src/public-pages.ts rename to packages/server/src/public-pages.ts diff --git a/packages/owletto-backend/src/rest-api.ts b/packages/server/src/rest-api.ts similarity index 100% rename from packages/owletto-backend/src/rest-api.ts rename to packages/server/src/rest-api.ts diff --git a/packages/owletto-backend/src/sandbox/client-sdk.ts b/packages/server/src/sandbox/client-sdk.ts similarity index 100% rename from packages/owletto-backend/src/sandbox/client-sdk.ts rename to packages/server/src/sandbox/client-sdk.ts diff --git a/packages/owletto-backend/src/sandbox/method-metadata.ts b/packages/server/src/sandbox/method-metadata.ts similarity index 100% rename from packages/owletto-backend/src/sandbox/method-metadata.ts rename to packages/server/src/sandbox/method-metadata.ts diff --git a/packages/owletto-backend/src/sandbox/namespaces/action-call.ts b/packages/server/src/sandbox/namespaces/action-call.ts similarity index 100% rename from packages/owletto-backend/src/sandbox/namespaces/action-call.ts rename to packages/server/src/sandbox/namespaces/action-call.ts diff --git a/packages/owletto-backend/src/sandbox/namespaces/auth-profiles.ts b/packages/server/src/sandbox/namespaces/auth-profiles.ts similarity index 100% rename from packages/owletto-backend/src/sandbox/namespaces/auth-profiles.ts rename to packages/server/src/sandbox/namespaces/auth-profiles.ts diff --git a/packages/owletto-backend/src/sandbox/namespaces/classifiers.ts b/packages/server/src/sandbox/namespaces/classifiers.ts similarity index 100% rename from packages/owletto-backend/src/sandbox/namespaces/classifiers.ts rename to packages/server/src/sandbox/namespaces/classifiers.ts diff --git a/packages/owletto-backend/src/sandbox/namespaces/connections.ts b/packages/server/src/sandbox/namespaces/connections.ts similarity index 100% rename from packages/owletto-backend/src/sandbox/namespaces/connections.ts rename to packages/server/src/sandbox/namespaces/connections.ts diff --git a/packages/owletto-backend/src/sandbox/namespaces/entities.ts b/packages/server/src/sandbox/namespaces/entities.ts similarity index 100% rename from packages/owletto-backend/src/sandbox/namespaces/entities.ts rename to packages/server/src/sandbox/namespaces/entities.ts diff --git a/packages/owletto-backend/src/sandbox/namespaces/entity-schema.ts b/packages/server/src/sandbox/namespaces/entity-schema.ts similarity index 100% rename from packages/owletto-backend/src/sandbox/namespaces/entity-schema.ts rename to packages/server/src/sandbox/namespaces/entity-schema.ts diff --git a/packages/owletto-backend/src/sandbox/namespaces/feeds.ts b/packages/server/src/sandbox/namespaces/feeds.ts similarity index 100% rename from packages/owletto-backend/src/sandbox/namespaces/feeds.ts rename to packages/server/src/sandbox/namespaces/feeds.ts diff --git a/packages/owletto-backend/src/sandbox/namespaces/index.ts b/packages/server/src/sandbox/namespaces/index.ts similarity index 100% rename from packages/owletto-backend/src/sandbox/namespaces/index.ts rename to packages/server/src/sandbox/namespaces/index.ts diff --git a/packages/owletto-backend/src/sandbox/namespaces/knowledge.ts b/packages/server/src/sandbox/namespaces/knowledge.ts similarity index 100% rename from packages/owletto-backend/src/sandbox/namespaces/knowledge.ts rename to packages/server/src/sandbox/namespaces/knowledge.ts diff --git a/packages/owletto-backend/src/sandbox/namespaces/operations.ts b/packages/server/src/sandbox/namespaces/operations.ts similarity index 100% rename from packages/owletto-backend/src/sandbox/namespaces/operations.ts rename to packages/server/src/sandbox/namespaces/operations.ts diff --git a/packages/owletto-backend/src/sandbox/namespaces/organizations.ts b/packages/server/src/sandbox/namespaces/organizations.ts similarity index 100% rename from packages/owletto-backend/src/sandbox/namespaces/organizations.ts rename to packages/server/src/sandbox/namespaces/organizations.ts diff --git a/packages/owletto-backend/src/sandbox/namespaces/view-templates.ts b/packages/server/src/sandbox/namespaces/view-templates.ts similarity index 100% rename from packages/owletto-backend/src/sandbox/namespaces/view-templates.ts rename to packages/server/src/sandbox/namespaces/view-templates.ts diff --git a/packages/owletto-backend/src/sandbox/namespaces/watchers.ts b/packages/server/src/sandbox/namespaces/watchers.ts similarity index 100% rename from packages/owletto-backend/src/sandbox/namespaces/watchers.ts rename to packages/server/src/sandbox/namespaces/watchers.ts diff --git a/packages/owletto-backend/src/sandbox/run-script.ts b/packages/server/src/sandbox/run-script.ts similarity index 100% rename from packages/owletto-backend/src/sandbox/run-script.ts rename to packages/server/src/sandbox/run-script.ts diff --git a/packages/owletto-backend/src/sandbox/sdk-manifest.ts b/packages/server/src/sandbox/sdk-manifest.ts similarity index 100% rename from packages/owletto-backend/src/sandbox/sdk-manifest.ts rename to packages/server/src/sandbox/sdk-manifest.ts diff --git a/packages/owletto-backend/src/sandbox/typebox-to-signature.ts b/packages/server/src/sandbox/typebox-to-signature.ts similarity index 100% rename from packages/owletto-backend/src/sandbox/typebox-to-signature.ts rename to packages/server/src/sandbox/typebox-to-signature.ts diff --git a/packages/owletto-backend/src/scheduled/__tests__/task-scheduler.test.ts b/packages/server/src/scheduled/__tests__/task-scheduler.test.ts similarity index 100% rename from packages/owletto-backend/src/scheduled/__tests__/task-scheduler.test.ts rename to packages/server/src/scheduled/__tests__/task-scheduler.test.ts diff --git a/packages/owletto-backend/src/scheduled/check-due-feeds.ts b/packages/server/src/scheduled/check-due-feeds.ts similarity index 100% rename from packages/owletto-backend/src/scheduled/check-due-feeds.ts rename to packages/server/src/scheduled/check-due-feeds.ts diff --git a/packages/owletto-backend/src/scheduled/check-stalled-executions.ts b/packages/server/src/scheduled/check-stalled-executions.ts similarity index 98% rename from packages/owletto-backend/src/scheduled/check-stalled-executions.ts rename to packages/server/src/scheduled/check-stalled-executions.ts index a884f36a9..2a1713024 100644 --- a/packages/owletto-backend/src/scheduled/check-stalled-executions.ts +++ b/packages/server/src/scheduled/check-stalled-executions.ts @@ -2,7 +2,7 @@ * Scheduled Job: Check Stalled Runs * * Runs every 5 minutes to detect stalled sync/embed-backfill runs driven by the - * out-of-process owletto-worker daemon. Watcher runs are driven in-process by + * out-of-process connector-worker daemon. Watcher runs are driven in-process by * the embedded Lobu gateway; their lifecycle is handled by WatcherRunTracker * and startup reconciliation (see automation.ts and lobu/gateway.ts), with a * coarse backstop in sweepStaleWatcherRuns below. diff --git a/packages/owletto-backend/src/scheduled/classification-reconciliation.ts b/packages/server/src/scheduled/classification-reconciliation.ts similarity index 100% rename from packages/owletto-backend/src/scheduled/classification-reconciliation.ts rename to packages/server/src/scheduled/classification-reconciliation.ts diff --git a/packages/owletto-backend/src/scheduled/jobs.ts b/packages/server/src/scheduled/jobs.ts similarity index 99% rename from packages/owletto-backend/src/scheduled/jobs.ts rename to packages/server/src/scheduled/jobs.ts index 423259874..bc0894a43 100644 --- a/packages/owletto-backend/src/scheduled/jobs.ts +++ b/packages/server/src/scheduled/jobs.ts @@ -6,7 +6,7 @@ * runs-queue claim path — no per-job advisory locks. */ -import type { Env } from '@lobu/owletto-sdk'; +import type { Env } from '@lobu/connector-sdk'; import type { CoreServices } from '../gateway/services/core-services'; import { cleanupExpiredMcpSessions } from '../mcp-handler'; import logger from '../utils/logger'; diff --git a/packages/owletto-backend/src/scheduled/scheduler-health.ts b/packages/server/src/scheduled/scheduler-health.ts similarity index 100% rename from packages/owletto-backend/src/scheduled/scheduler-health.ts rename to packages/server/src/scheduled/scheduler-health.ts diff --git a/packages/owletto-backend/src/scheduled/task-scheduler.ts b/packages/server/src/scheduled/task-scheduler.ts similarity index 100% rename from packages/owletto-backend/src/scheduled/task-scheduler.ts rename to packages/server/src/scheduled/task-scheduler.ts diff --git a/packages/owletto-backend/src/scheduled/trigger-embed-backfill.ts b/packages/server/src/scheduled/trigger-embed-backfill.ts similarity index 100% rename from packages/owletto-backend/src/scheduled/trigger-embed-backfill.ts rename to packages/server/src/scheduled/trigger-embed-backfill.ts diff --git a/packages/owletto-backend/src/sentry.ts b/packages/server/src/sentry.ts similarity index 100% rename from packages/owletto-backend/src/sentry.ts rename to packages/server/src/sentry.ts diff --git a/packages/owletto-backend/src/server.ts b/packages/server/src/server.ts similarity index 96% rename from packages/owletto-backend/src/server.ts rename to packages/server/src/server.ts index 5603bfb9a..412a661c7 100644 --- a/packages/owletto-backend/src/server.ts +++ b/packages/server/src/server.ts @@ -24,7 +24,7 @@ import { getRequestListener } from '@hono/node-server'; import { Hono } from 'hono'; import type { Env } from './index'; import { app as mainApp, setViteDev } from './index'; -import { assertExternalDepsResolvable } from '../../owletto-worker/src/runtime-deps'; +import { assertExternalDepsResolvable } from '../../connector-worker/src/runtime-deps'; import { getEnvFromProcess } from './utils/env'; import logger from './utils/logger'; import { initWorkspaceProvider } from './workspace'; @@ -37,14 +37,14 @@ assertExternalDepsResolvable(createRequire(import.meta.url).resolve); // Create a wrapper app that injects environment into each request const app = new Hono<{ Bindings: Env }>(); -// Resolve repo root from this source file: …/packages/owletto-backend/src/server.ts → repo root. +// Resolve repo root from this source file: …/packages/server/src/server.ts → repo root. const PACKAGE_REPO_ROOT = path.resolve( fileURLToPath(new URL('.', import.meta.url)), '../../..' ); // Make LOBU_DEV_PROJECT_PATH defaultable when invoked from the package dir -// (`cd packages/owletto-backend && bun run dev`). Downstream consumers like +// (`cd packages/server && bun run dev`). Downstream consumers like // the embedded gateway's buildGatewayConfig() read this to derive worker // paths; without this fallback they'd resolve against process.cwd(). if (!process.env.LOBU_DEV_PROJECT_PATH) { @@ -66,7 +66,7 @@ function resolveWebSourceRoot(): string { process.env.LOBU_DEV_PROJECT_PATH || PACKAGE_REPO_ROOT; const webSourceDir = path.resolve( projectRoot, - 'packages/owletto-web' + 'packages/web' ); if (!existsSync(path.join(webSourceDir, 'index.html'))) { throw new Error( diff --git a/packages/owletto-backend/src/start-local.ts b/packages/server/src/start-local.ts similarity index 99% rename from packages/owletto-backend/src/start-local.ts rename to packages/server/src/start-local.ts index 32bcea69d..afa4e6aff 100644 --- a/packages/owletto-backend/src/start-local.ts +++ b/packages/server/src/start-local.ts @@ -494,8 +494,8 @@ function findFreePort(): Promise { async function startEmbeddings(): Promise | null> { const serverPath = resolveExistingPath( - join(APP_ROOT, 'packages', 'owletto-embeddings', 'src', 'server.ts'), - join(process.cwd(), 'packages', 'owletto-embeddings', 'src', 'server.ts') + join(APP_ROOT, 'packages', 'embeddings', 'src', 'server.ts'), + join(process.cwd(), 'packages', 'embeddings', 'src', 'server.ts') ); if (!serverPath) { logger.warn('Embeddings service not found — embedding generation will not be available'); diff --git a/packages/owletto-backend/src/tools/__tests__/search-cross-org.test.ts b/packages/server/src/tools/__tests__/search-cross-org.test.ts similarity index 100% rename from packages/owletto-backend/src/tools/__tests__/search-cross-org.test.ts rename to packages/server/src/tools/__tests__/search-cross-org.test.ts diff --git a/packages/owletto-backend/src/tools/admin/__tests__/query_sql.test.ts b/packages/server/src/tools/admin/__tests__/query_sql.test.ts similarity index 100% rename from packages/owletto-backend/src/tools/admin/__tests__/query_sql.test.ts rename to packages/server/src/tools/admin/__tests__/query_sql.test.ts diff --git a/packages/owletto-backend/src/tools/admin/action-router.ts b/packages/server/src/tools/admin/action-router.ts similarity index 100% rename from packages/owletto-backend/src/tools/admin/action-router.ts rename to packages/server/src/tools/admin/action-router.ts diff --git a/packages/owletto-backend/src/tools/admin/connector-definition-helpers.ts b/packages/server/src/tools/admin/connector-definition-helpers.ts similarity index 100% rename from packages/owletto-backend/src/tools/admin/connector-definition-helpers.ts rename to packages/server/src/tools/admin/connector-definition-helpers.ts diff --git a/packages/owletto-backend/src/tools/admin/helpers/connection-helpers.ts b/packages/server/src/tools/admin/helpers/connection-helpers.ts similarity index 100% rename from packages/owletto-backend/src/tools/admin/helpers/connection-helpers.ts rename to packages/server/src/tools/admin/helpers/connection-helpers.ts diff --git a/packages/owletto-backend/src/tools/admin/helpers/connector-definition-list.ts b/packages/server/src/tools/admin/helpers/connector-definition-list.ts similarity index 100% rename from packages/owletto-backend/src/tools/admin/helpers/connector-definition-list.ts rename to packages/server/src/tools/admin/helpers/connector-definition-list.ts diff --git a/packages/owletto-backend/src/tools/admin/helpers/db-helpers.ts b/packages/server/src/tools/admin/helpers/db-helpers.ts similarity index 100% rename from packages/owletto-backend/src/tools/admin/helpers/db-helpers.ts rename to packages/server/src/tools/admin/helpers/db-helpers.ts diff --git a/packages/owletto-backend/src/tools/admin/helpers/feed-helpers.ts b/packages/server/src/tools/admin/helpers/feed-helpers.ts similarity index 100% rename from packages/owletto-backend/src/tools/admin/helpers/feed-helpers.ts rename to packages/server/src/tools/admin/helpers/feed-helpers.ts diff --git a/packages/owletto-backend/src/tools/admin/index.ts b/packages/server/src/tools/admin/index.ts similarity index 100% rename from packages/owletto-backend/src/tools/admin/index.ts rename to packages/server/src/tools/admin/index.ts diff --git a/packages/owletto-backend/src/tools/admin/manage_auth_profiles.ts b/packages/server/src/tools/admin/manage_auth_profiles.ts similarity index 100% rename from packages/owletto-backend/src/tools/admin/manage_auth_profiles.ts rename to packages/server/src/tools/admin/manage_auth_profiles.ts diff --git a/packages/owletto-backend/src/tools/admin/manage_classifiers.ts b/packages/server/src/tools/admin/manage_classifiers.ts similarity index 100% rename from packages/owletto-backend/src/tools/admin/manage_classifiers.ts rename to packages/server/src/tools/admin/manage_classifiers.ts diff --git a/packages/owletto-backend/src/tools/admin/manage_connections.ts b/packages/server/src/tools/admin/manage_connections.ts similarity index 100% rename from packages/owletto-backend/src/tools/admin/manage_connections.ts rename to packages/server/src/tools/admin/manage_connections.ts diff --git a/packages/owletto-backend/src/tools/admin/manage_entity.ts b/packages/server/src/tools/admin/manage_entity.ts similarity index 100% rename from packages/owletto-backend/src/tools/admin/manage_entity.ts rename to packages/server/src/tools/admin/manage_entity.ts diff --git a/packages/owletto-backend/src/tools/admin/manage_entity_schema.ts b/packages/server/src/tools/admin/manage_entity_schema.ts similarity index 99% rename from packages/owletto-backend/src/tools/admin/manage_entity_schema.ts rename to packages/server/src/tools/admin/manage_entity_schema.ts index 8d1029688..a458347ac 100644 --- a/packages/owletto-backend/src/tools/admin/manage_entity_schema.ts +++ b/packages/server/src/tools/admin/manage_entity_schema.ts @@ -9,7 +9,7 @@ */ import { type Static, Type } from '@sinclair/typebox'; -import type { AutoCreateWhenRule } from '@lobu/owletto-sdk'; +import type { AutoCreateWhenRule } from '@lobu/connector-sdk'; import { type DbClient, getDb } from '../../db/client'; import type { Env } from '../../index'; import logger from '../../utils/logger'; diff --git a/packages/owletto-backend/src/tools/admin/manage_feeds.ts b/packages/server/src/tools/admin/manage_feeds.ts similarity index 100% rename from packages/owletto-backend/src/tools/admin/manage_feeds.ts rename to packages/server/src/tools/admin/manage_feeds.ts diff --git a/packages/owletto-backend/src/tools/admin/manage_operations.ts b/packages/server/src/tools/admin/manage_operations.ts similarity index 99% rename from packages/owletto-backend/src/tools/admin/manage_operations.ts rename to packages/server/src/tools/admin/manage_operations.ts index 3773a9503..d27635cbc 100644 --- a/packages/owletto-backend/src/tools/admin/manage_operations.ts +++ b/packages/server/src/tools/admin/manage_operations.ts @@ -198,7 +198,7 @@ async function executeLocalActionInline( try { const { executeCompiledConnector, getActionOutput } = await import( - '../../../../owletto-worker/src/executor/runtime' + '../../../../connector-worker/src/executor/runtime' ); const result = await executeCompiledConnector({ mode: 'action', diff --git a/packages/owletto-backend/src/tools/admin/manage_view_templates.ts b/packages/server/src/tools/admin/manage_view_templates.ts similarity index 100% rename from packages/owletto-backend/src/tools/admin/manage_view_templates.ts rename to packages/server/src/tools/admin/manage_view_templates.ts diff --git a/packages/owletto-backend/src/tools/admin/manage_watchers.ts b/packages/server/src/tools/admin/manage_watchers.ts similarity index 100% rename from packages/owletto-backend/src/tools/admin/manage_watchers.ts rename to packages/server/src/tools/admin/manage_watchers.ts diff --git a/packages/owletto-backend/src/tools/admin/notify.ts b/packages/server/src/tools/admin/notify.ts similarity index 100% rename from packages/owletto-backend/src/tools/admin/notify.ts rename to packages/server/src/tools/admin/notify.ts diff --git a/packages/owletto-backend/src/tools/admin/query_sql.ts b/packages/server/src/tools/admin/query_sql.ts similarity index 100% rename from packages/owletto-backend/src/tools/admin/query_sql.ts rename to packages/server/src/tools/admin/query_sql.ts diff --git a/packages/owletto-backend/src/tools/admin/schemas/common-fields.ts b/packages/server/src/tools/admin/schemas/common-fields.ts similarity index 100% rename from packages/owletto-backend/src/tools/admin/schemas/common-fields.ts rename to packages/server/src/tools/admin/schemas/common-fields.ts diff --git a/packages/owletto-backend/src/tools/admin/view-template-helpers.ts b/packages/server/src/tools/admin/view-template-helpers.ts similarity index 100% rename from packages/owletto-backend/src/tools/admin/view-template-helpers.ts rename to packages/server/src/tools/admin/view-template-helpers.ts diff --git a/packages/owletto-backend/src/tools/delete_content.ts b/packages/server/src/tools/delete_content.ts similarity index 100% rename from packages/owletto-backend/src/tools/delete_content.ts rename to packages/server/src/tools/delete_content.ts diff --git a/packages/owletto-backend/src/tools/execute.ts b/packages/server/src/tools/execute.ts similarity index 100% rename from packages/owletto-backend/src/tools/execute.ts rename to packages/server/src/tools/execute.ts diff --git a/packages/owletto-backend/src/tools/get_content.ts b/packages/server/src/tools/get_content.ts similarity index 99% rename from packages/owletto-backend/src/tools/get_content.ts rename to packages/server/src/tools/get_content.ts index 81571997e..64ab7e8db 100644 --- a/packages/owletto-backend/src/tools/get_content.ts +++ b/packages/server/src/tools/get_content.ts @@ -6,8 +6,8 @@ * Omit `query` to list all content with filters. */ -import type { ContentItem } from '@lobu/owletto-sdk'; -import { getNextWatcherGranularity, inferWatcherGranularityFromSchedule } from '@lobu/owletto-sdk'; +import type { ContentItem } from '@lobu/connector-sdk'; +import { getNextWatcherGranularity, inferWatcherGranularityFromSchedule } from '@lobu/connector-sdk'; import { type Static, Type } from '@sinclair/typebox'; import { createDbClientFromEnv, type DbClient, getDb, pgTextArray } from '../db/client'; import type { Env } from '../index'; diff --git a/packages/owletto-backend/src/tools/get_watchers.ts b/packages/server/src/tools/get_watchers.ts similarity index 99% rename from packages/owletto-backend/src/tools/get_watchers.ts rename to packages/server/src/tools/get_watchers.ts index fdde76630..a86772871 100644 --- a/packages/owletto-backend/src/tools/get_watchers.ts +++ b/packages/server/src/tools/get_watchers.ts @@ -10,7 +10,7 @@ import { getFinerWatcherGranularities, inferWatcherGranularityFromSchedule, type WatcherTimeGranularity, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; import { type Static, Type } from '@sinclair/typebox'; import { createDbClientFromEnv, getDb } from '../db/client'; import type { Env } from '../index'; diff --git a/packages/owletto-backend/src/tools/organizations.ts b/packages/server/src/tools/organizations.ts similarity index 100% rename from packages/owletto-backend/src/tools/organizations.ts rename to packages/server/src/tools/organizations.ts diff --git a/packages/owletto-backend/src/tools/registry.ts b/packages/server/src/tools/registry.ts similarity index 100% rename from packages/owletto-backend/src/tools/registry.ts rename to packages/server/src/tools/registry.ts diff --git a/packages/owletto-backend/src/tools/resolve_path.ts b/packages/server/src/tools/resolve_path.ts similarity index 100% rename from packages/owletto-backend/src/tools/resolve_path.ts rename to packages/server/src/tools/resolve_path.ts diff --git a/packages/owletto-backend/src/tools/save_content.ts b/packages/server/src/tools/save_content.ts similarity index 99% rename from packages/owletto-backend/src/tools/save_content.ts rename to packages/server/src/tools/save_content.ts index f96c85b92..c818bb8ef 100644 --- a/packages/owletto-backend/src/tools/save_content.ts +++ b/packages/server/src/tools/save_content.ts @@ -7,7 +7,7 @@ * Embeddings are left null for background worker backfill. */ -import { normalizeAuthUserId, normalizeEmail } from '@lobu/owletto-sdk'; +import { normalizeAuthUserId, normalizeEmail } from '@lobu/connector-sdk'; import { type Static, Type } from '@sinclair/typebox'; import { hasRequiredMcpScope } from '../auth/tool-access'; import { getDb } from '../db/client'; diff --git a/packages/owletto-backend/src/tools/sdk_run.ts b/packages/server/src/tools/sdk_run.ts similarity index 100% rename from packages/owletto-backend/src/tools/sdk_run.ts rename to packages/server/src/tools/sdk_run.ts diff --git a/packages/owletto-backend/src/tools/sdk_search.ts b/packages/server/src/tools/sdk_search.ts similarity index 100% rename from packages/owletto-backend/src/tools/sdk_search.ts rename to packages/server/src/tools/sdk_search.ts diff --git a/packages/owletto-backend/src/tools/search.ts b/packages/server/src/tools/search.ts similarity index 100% rename from packages/owletto-backend/src/tools/search.ts rename to packages/server/src/tools/search.ts diff --git a/packages/owletto-backend/src/types/isolated-vm.d.ts b/packages/server/src/types/isolated-vm.d.ts similarity index 100% rename from packages/owletto-backend/src/types/isolated-vm.d.ts rename to packages/server/src/types/isolated-vm.d.ts diff --git a/packages/owletto-backend/src/types/templates.ts b/packages/server/src/types/templates.ts similarity index 100% rename from packages/owletto-backend/src/types/templates.ts rename to packages/server/src/types/templates.ts diff --git a/packages/owletto-backend/src/types/watchers.ts b/packages/server/src/types/watchers.ts similarity index 100% rename from packages/owletto-backend/src/types/watchers.ts rename to packages/server/src/types/watchers.ts diff --git a/packages/owletto-backend/src/utils/__tests__/auth-profiles.test.ts b/packages/server/src/utils/__tests__/auth-profiles.test.ts similarity index 100% rename from packages/owletto-backend/src/utils/__tests__/auth-profiles.test.ts rename to packages/server/src/utils/__tests__/auth-profiles.test.ts diff --git a/packages/owletto-backend/src/utils/__tests__/connector-auth.test.ts b/packages/server/src/utils/__tests__/connector-auth.test.ts similarity index 100% rename from packages/owletto-backend/src/utils/__tests__/connector-auth.test.ts rename to packages/server/src/utils/__tests__/connector-auth.test.ts diff --git a/packages/owletto-backend/src/utils/__tests__/connector-catalog.test.ts b/packages/server/src/utils/__tests__/connector-catalog.test.ts similarity index 95% rename from packages/owletto-backend/src/utils/__tests__/connector-catalog.test.ts rename to packages/server/src/utils/__tests__/connector-catalog.test.ts index d0e995a97..3712fe742 100644 --- a/packages/owletto-backend/src/utils/__tests__/connector-catalog.test.ts +++ b/packages/server/src/utils/__tests__/connector-catalog.test.ts @@ -16,7 +16,7 @@ describe('connector-catalog helpers', () => { expect(uris[0].startsWith('file://')).toBe(true); const dir = fileURLToPath(uris[0]); expect(existsSync(dir)).toBe(true); - // Path may be packages/owletto-connectors/src or any other repo-local + // Path may be packages/connectors/src or any other repo-local // candidate; just assert it resolves to a real directory containing // connector definitions. expect(existsSync(`${dir}/google_gmail.ts`)).toBe(true); diff --git a/packages/owletto-backend/src/utils/__tests__/content-query-filters.test.ts b/packages/server/src/utils/__tests__/content-query-filters.test.ts similarity index 100% rename from packages/owletto-backend/src/utils/__tests__/content-query-filters.test.ts rename to packages/server/src/utils/__tests__/content-query-filters.test.ts diff --git a/packages/owletto-backend/src/utils/__tests__/date-aliases.test.ts b/packages/server/src/utils/__tests__/date-aliases.test.ts similarity index 100% rename from packages/owletto-backend/src/utils/__tests__/date-aliases.test.ts rename to packages/server/src/utils/__tests__/date-aliases.test.ts diff --git a/packages/owletto-backend/src/utils/__tests__/entity-link-upsert.test.ts b/packages/server/src/utils/__tests__/entity-link-upsert.test.ts similarity index 99% rename from packages/owletto-backend/src/utils/__tests__/entity-link-upsert.test.ts rename to packages/server/src/utils/__tests__/entity-link-upsert.test.ts index 5abf0426e..19119021d 100644 --- a/packages/owletto-backend/src/utils/__tests__/entity-link-upsert.test.ts +++ b/packages/server/src/utils/__tests__/entity-link-upsert.test.ts @@ -1,4 +1,4 @@ -import type { EntityLinkRule } from '@lobu/owletto-sdk'; +import type { EntityLinkRule } from '@lobu/connector-sdk'; import { beforeEach, describe, expect, it } from 'vitest'; import { cleanupTestDatabase, getTestDb } from '../../__tests__/setup/test-db'; import { diff --git a/packages/owletto-backend/src/utils/__tests__/entity-link-validation.test.ts b/packages/server/src/utils/__tests__/entity-link-validation.test.ts similarity index 97% rename from packages/owletto-backend/src/utils/__tests__/entity-link-validation.test.ts rename to packages/server/src/utils/__tests__/entity-link-validation.test.ts index d8e399325..627b8e3be 100644 --- a/packages/owletto-backend/src/utils/__tests__/entity-link-validation.test.ts +++ b/packages/server/src/utils/__tests__/entity-link-validation.test.ts @@ -1,4 +1,4 @@ -import type { EntityLinkRule } from '@lobu/owletto-sdk'; +import type { EntityLinkRule } from '@lobu/connector-sdk'; import { describe, expect, it } from 'vitest'; import { resolveEntityLinkRules, validateEntityLinkOverrides } from '../entity-link-validation'; diff --git a/packages/owletto-backend/src/utils/__tests__/entity-management-schema-search.test.ts b/packages/server/src/utils/__tests__/entity-management-schema-search.test.ts similarity index 99% rename from packages/owletto-backend/src/utils/__tests__/entity-management-schema-search.test.ts rename to packages/server/src/utils/__tests__/entity-management-schema-search.test.ts index 4c2c95bce..df3e7d473 100644 --- a/packages/owletto-backend/src/utils/__tests__/entity-management-schema-search.test.ts +++ b/packages/server/src/utils/__tests__/entity-management-schema-search.test.ts @@ -5,7 +5,7 @@ * same slug). */ -import type { EntityLinkRule } from '@lobu/owletto-sdk'; +import type { EntityLinkRule } from '@lobu/connector-sdk'; import { beforeEach, describe, expect, it } from 'vitest'; import { cleanupTestDatabase, getTestDb } from '../../__tests__/setup/test-db'; import { diff --git a/packages/owletto-backend/src/utils/__tests__/identity-normalize.test.ts b/packages/server/src/utils/__tests__/identity-normalize.test.ts similarity index 99% rename from packages/owletto-backend/src/utils/__tests__/identity-normalize.test.ts rename to packages/server/src/utils/__tests__/identity-normalize.test.ts index d1a7c4c8a..730dbb1a7 100644 --- a/packages/owletto-backend/src/utils/__tests__/identity-normalize.test.ts +++ b/packages/server/src/utils/__tests__/identity-normalize.test.ts @@ -6,7 +6,7 @@ import { normalizePhone, normalizeSlackUserId, normalizeWaJid, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; import { describe, expect, it } from 'vitest'; describe('normalizePhone', () => { diff --git a/packages/owletto-backend/src/utils/__tests__/markdown-formatter.test.ts b/packages/server/src/utils/__tests__/markdown-formatter.test.ts similarity index 100% rename from packages/owletto-backend/src/utils/__tests__/markdown-formatter.test.ts rename to packages/server/src/utils/__tests__/markdown-formatter.test.ts diff --git a/packages/owletto-backend/src/utils/__tests__/mcp-install-targets.test.ts b/packages/server/src/utils/__tests__/mcp-install-targets.test.ts similarity index 93% rename from packages/owletto-backend/src/utils/__tests__/mcp-install-targets.test.ts rename to packages/server/src/utils/__tests__/mcp-install-targets.test.ts index 535f8bdb5..06f84f5c7 100644 --- a/packages/owletto-backend/src/utils/__tests__/mcp-install-targets.test.ts +++ b/packages/server/src/utils/__tests__/mcp-install-targets.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest'; -import { getMcpInstallTargets } from '../../../../owletto-web/src/lib/mcp-install-targets'; +import { getMcpInstallTargets } from '../../../../web/src/lib/mcp-install-targets'; describe('getMcpInstallTargets', () => { const mcpUrl = 'http://localhost:4821/mcp/public-owletto'; @@ -32,7 +32,7 @@ describe('getMcpInstallTargets', () => { expect(openclaw?.actions).toContainEqual({ type: 'command', label: 'Install plugin', - value: 'openclaw plugins install owletto-openclaw-plugin', + value: 'openclaw plugins install @lobu/openclaw-plugin', }); expect(openclaw?.actions).toContainEqual({ type: 'command', diff --git a/packages/owletto-backend/src/utils/__tests__/migrations-format.test.ts b/packages/server/src/utils/__tests__/migrations-format.test.ts similarity index 100% rename from packages/owletto-backend/src/utils/__tests__/migrations-format.test.ts rename to packages/server/src/utils/__tests__/migrations-format.test.ts diff --git a/packages/owletto-backend/src/utils/__tests__/owletto-guidance-sync.test.ts b/packages/server/src/utils/__tests__/owletto-guidance-sync.test.ts similarity index 95% rename from packages/owletto-backend/src/utils/__tests__/owletto-guidance-sync.test.ts rename to packages/server/src/utils/__tests__/owletto-guidance-sync.test.ts index 2722fd221..1928de18c 100644 --- a/packages/owletto-backend/src/utils/__tests__/owletto-guidance-sync.test.ts +++ b/packages/server/src/utils/__tests__/owletto-guidance-sync.test.ts @@ -4,7 +4,7 @@ import { describe, expect, it } from 'vitest'; import { renderFallbackSystemContext, renderSkillMemorySection, -} from '../../../../owletto-openclaw/src/owletto-guidance'; +} from '../../../../openclaw-plugin/src/owletto-guidance'; // Memory guidance now lives in the bundled Lobu skill. Resolve relative to this // file so the test works regardless of `process.cwd()` (worktrees, vitest's diff --git a/packages/owletto-backend/src/utils/__tests__/public-origin.test.ts b/packages/server/src/utils/__tests__/public-origin.test.ts similarity index 100% rename from packages/owletto-backend/src/utils/__tests__/public-origin.test.ts rename to packages/server/src/utils/__tests__/public-origin.test.ts diff --git a/packages/owletto-backend/src/utils/__tests__/runtime-info.test.ts b/packages/server/src/utils/__tests__/runtime-info.test.ts similarity index 100% rename from packages/owletto-backend/src/utils/__tests__/runtime-info.test.ts rename to packages/server/src/utils/__tests__/runtime-info.test.ts diff --git a/packages/owletto-backend/src/utils/__tests__/sql-validation.test.ts b/packages/server/src/utils/__tests__/sql-validation.test.ts similarity index 100% rename from packages/owletto-backend/src/utils/__tests__/sql-validation.test.ts rename to packages/server/src/utils/__tests__/sql-validation.test.ts diff --git a/packages/owletto-backend/src/utils/__tests__/table-schema.test.ts b/packages/server/src/utils/__tests__/table-schema.test.ts similarity index 100% rename from packages/owletto-backend/src/utils/__tests__/table-schema.test.ts rename to packages/server/src/utils/__tests__/table-schema.test.ts diff --git a/packages/owletto-backend/src/utils/__tests__/url-builder.test.ts b/packages/server/src/utils/__tests__/url-builder.test.ts similarity index 100% rename from packages/owletto-backend/src/utils/__tests__/url-builder.test.ts rename to packages/server/src/utils/__tests__/url-builder.test.ts diff --git a/packages/owletto-backend/src/utils/__tests__/watcher-time.test.ts b/packages/server/src/utils/__tests__/watcher-time.test.ts similarity index 99% rename from packages/owletto-backend/src/utils/__tests__/watcher-time.test.ts rename to packages/server/src/utils/__tests__/watcher-time.test.ts index a3cb5fbba..93e34f5a2 100644 --- a/packages/owletto-backend/src/utils/__tests__/watcher-time.test.ts +++ b/packages/server/src/utils/__tests__/watcher-time.test.ts @@ -8,7 +8,7 @@ import { inferWatcherGranularityFromDays, inferWatcherGranularityFromSchedule, subtractWatcherPeriod, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; import { describe, expect, it } from 'vitest'; describe('watcher time helpers', () => { diff --git a/packages/owletto-backend/src/utils/__tests__/window-utils.test.ts b/packages/server/src/utils/__tests__/window-utils.test.ts similarity index 100% rename from packages/owletto-backend/src/utils/__tests__/window-utils.test.ts rename to packages/server/src/utils/__tests__/window-utils.test.ts diff --git a/packages/owletto-backend/src/utils/ajv-singleton.ts b/packages/server/src/utils/ajv-singleton.ts similarity index 100% rename from packages/owletto-backend/src/utils/ajv-singleton.ts rename to packages/server/src/utils/ajv-singleton.ts diff --git a/packages/owletto-backend/src/utils/auth-profiles.ts b/packages/server/src/utils/auth-profiles.ts similarity index 99% rename from packages/owletto-backend/src/utils/auth-profiles.ts rename to packages/server/src/utils/auth-profiles.ts index c7b78c787..1a922aa3c 100644 --- a/packages/owletto-backend/src/utils/auth-profiles.ts +++ b/packages/server/src/utils/auth-profiles.ts @@ -143,7 +143,7 @@ async function resolveReachableBrowserSessionCdpUrl(cdpUrl: string | null): Prom if (!configuredUrl) return null; try { - const { fetchCdpVersionInfo, resolveCdpUrl } = await import('@lobu/owletto-sdk'); + const { fetchCdpVersionInfo, resolveCdpUrl } = await import('@lobu/connector-sdk'); if (configuredUrl.toLowerCase() === 'auto') { return await resolveCdpUrl('auto'); diff --git a/packages/owletto-backend/src/utils/auto-linker.ts b/packages/server/src/utils/auto-linker.ts similarity index 100% rename from packages/owletto-backend/src/utils/auto-linker.ts rename to packages/server/src/utils/auto-linker.ts diff --git a/packages/owletto-backend/src/utils/classification-query.ts b/packages/server/src/utils/classification-query.ts similarity index 100% rename from packages/owletto-backend/src/utils/classification-query.ts rename to packages/server/src/utils/classification-query.ts diff --git a/packages/owletto-backend/src/utils/compiler-core.ts b/packages/server/src/utils/compiler-core.ts similarity index 98% rename from packages/owletto-backend/src/utils/compiler-core.ts rename to packages/server/src/utils/compiler-core.ts index 3f4ae1776..a0ae7ef26 100644 --- a/packages/owletto-backend/src/utils/compiler-core.ts +++ b/packages/server/src/utils/compiler-core.ts @@ -21,7 +21,7 @@ import { type BuildOptions, build } from 'esbuild'; import logger from './logger'; const require = createRequire(import.meta.url); -const SDK_ENTRY = require.resolve('@lobu/owletto-sdk'); +const SDK_ENTRY = require.resolve('@lobu/connector-sdk'); export interface CompileResult { compiledCode: string; @@ -119,7 +119,7 @@ export async function compileSource( platform: 'node', alias: { owletto: SDK_ENTRY, - '@lobu/owletto-sdk': SDK_ENTRY, + '@lobu/connector-sdk': SDK_ENTRY, }, write: true, minify: false, diff --git a/packages/owletto-backend/src/utils/connect-tokens.ts b/packages/server/src/utils/connect-tokens.ts similarity index 100% rename from packages/owletto-backend/src/utils/connect-tokens.ts rename to packages/server/src/utils/connect-tokens.ts diff --git a/packages/owletto-backend/src/utils/connector-auth.ts b/packages/server/src/utils/connector-auth.ts similarity index 99% rename from packages/owletto-backend/src/utils/connector-auth.ts rename to packages/server/src/utils/connector-auth.ts index 884f0b714..72d736b23 100644 --- a/packages/owletto-backend/src/utils/connector-auth.ts +++ b/packages/server/src/utils/connector-auth.ts @@ -4,7 +4,7 @@ import type { ConnectorAuthMethod, ConnectorAuthOAuth, ConnectorAuthSchema, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; export type ConnectorAuthOAuthMethod = ConnectorAuthOAuth & { userinfoUrl?: string; diff --git a/packages/owletto-backend/src/utils/connector-catalog.ts b/packages/server/src/utils/connector-catalog.ts similarity index 96% rename from packages/owletto-backend/src/utils/connector-catalog.ts rename to packages/server/src/utils/connector-catalog.ts index 74e0581f1..96ce0bfc7 100644 --- a/packages/owletto-backend/src/utils/connector-catalog.ts +++ b/packages/server/src/utils/connector-catalog.ts @@ -9,14 +9,14 @@ import { extractConnectorMetadata } from './connector-compiler'; import logger from './logger'; const require_ = createRequire(import.meta.url); -const SDK_ENTRY = require_.resolve('@lobu/owletto-sdk'); +const SDK_ENTRY = require_.resolve('@lobu/connector-sdk'); const DEFAULT_CONNECTOR_DIR_CANDIDATES = [ - resolve(import.meta.dirname ?? __dirname, '../../../owletto-connectors/src'), + resolve(import.meta.dirname ?? __dirname, '../../../connectors/src'), resolve(import.meta.dirname ?? __dirname, '../../connectors'), resolve(import.meta.dirname ?? __dirname, '../../../connectors'), resolve(import.meta.dirname ?? __dirname, '../../../../../connectors'), - resolve(process.cwd(), 'packages/owletto-connectors/src'), + resolve(process.cwd(), 'packages/connectors/src'), resolve(process.cwd(), 'connectors'), ]; @@ -186,12 +186,12 @@ export async function compileConnectorFromFile(filePath: string): Promise` in a migration * (see db/migrations/20260419120000_add_event_identity_indexes.sql). * 3. Add the string to this list — `entityLinkMatchSql` will emit a UNION diff --git a/packages/owletto-backend/src/utils/cron.ts b/packages/server/src/utils/cron.ts similarity index 100% rename from packages/owletto-backend/src/utils/cron.ts rename to packages/server/src/utils/cron.ts diff --git a/packages/owletto-backend/src/utils/csp.ts b/packages/server/src/utils/csp.ts similarity index 100% rename from packages/owletto-backend/src/utils/csp.ts rename to packages/server/src/utils/csp.ts diff --git a/packages/owletto-backend/src/utils/date-aliases.ts b/packages/server/src/utils/date-aliases.ts similarity index 98% rename from packages/owletto-backend/src/utils/date-aliases.ts rename to packages/server/src/utils/date-aliases.ts index e1a0d1dc4..820fce2fb 100644 --- a/packages/owletto-backend/src/utils/date-aliases.ts +++ b/packages/server/src/utils/date-aliases.ts @@ -1,4 +1,4 @@ -import { inferWatcherGranularityFromDays } from '@lobu/owletto-sdk'; +import { inferWatcherGranularityFromDays } from '@lobu/connector-sdk'; /** * Date Alias Parsing Utility diff --git a/packages/owletto-backend/src/utils/embeddings.ts b/packages/server/src/utils/embeddings.ts similarity index 100% rename from packages/owletto-backend/src/utils/embeddings.ts rename to packages/server/src/utils/embeddings.ts diff --git a/packages/owletto-backend/src/utils/ensure-connector-installed.ts b/packages/server/src/utils/ensure-connector-installed.ts similarity index 100% rename from packages/owletto-backend/src/utils/ensure-connector-installed.ts rename to packages/server/src/utils/ensure-connector-installed.ts diff --git a/packages/owletto-backend/src/utils/entity-hooks.ts b/packages/server/src/utils/entity-hooks.ts similarity index 100% rename from packages/owletto-backend/src/utils/entity-hooks.ts rename to packages/server/src/utils/entity-hooks.ts diff --git a/packages/owletto-backend/src/utils/entity-link-overrides.ts b/packages/server/src/utils/entity-link-overrides.ts similarity index 96% rename from packages/owletto-backend/src/utils/entity-link-overrides.ts rename to packages/server/src/utils/entity-link-overrides.ts index af14e2c89..d989b5251 100644 --- a/packages/owletto-backend/src/utils/entity-link-overrides.ts +++ b/packages/server/src/utils/entity-link-overrides.ts @@ -1,4 +1,4 @@ -import type { EntityLinkOverrides } from '@lobu/owletto-sdk'; +import type { EntityLinkOverrides } from '@lobu/connector-sdk'; import { getDb } from '../db/client'; import { clearEntityLinkRulesCache } from './entity-link-upsert'; import { diff --git a/packages/owletto-backend/src/utils/entity-link-upsert.ts b/packages/server/src/utils/entity-link-upsert.ts similarity index 99% rename from packages/owletto-backend/src/utils/entity-link-upsert.ts rename to packages/server/src/utils/entity-link-upsert.ts index bfb426077..e5a7a6bed 100644 --- a/packages/owletto-backend/src/utils/entity-link-upsert.ts +++ b/packages/server/src/utils/entity-link-upsert.ts @@ -17,8 +17,8 @@ */ import { randomBytes } from 'node:crypto'; -import type { EntityLinkOverrides, EntityLinkRule } from '@lobu/owletto-sdk'; -import { normalizeIdentifier } from '@lobu/owletto-sdk'; +import type { EntityLinkOverrides, EntityLinkRule } from '@lobu/connector-sdk'; +import { normalizeIdentifier } from '@lobu/connector-sdk'; import { getDb, pgTextArray } from '../db/client'; import { resolveEntityLinkRules } from './entity-link-validation'; import logger from './logger'; diff --git a/packages/owletto-backend/src/utils/entity-link-validation.ts b/packages/server/src/utils/entity-link-validation.ts similarity index 99% rename from packages/owletto-backend/src/utils/entity-link-validation.ts rename to packages/server/src/utils/entity-link-validation.ts index 7de964d43..c64a6ff7f 100644 --- a/packages/owletto-backend/src/utils/entity-link-validation.ts +++ b/packages/server/src/utils/entity-link-validation.ts @@ -4,7 +4,7 @@ * the TS types, so runtime validation is only applied to user-supplied * overrides (which arrive via MCP as untrusted JSON). */ -import type { EntityLinkOverrides, EntityLinkRule } from '@lobu/owletto-sdk'; +import type { EntityLinkOverrides, EntityLinkRule } from '@lobu/connector-sdk'; import { getDb } from '../db/client'; export function validateEntityLinkOverrides(overrides: unknown): string[] { diff --git a/packages/owletto-backend/src/utils/entity-management.ts b/packages/server/src/utils/entity-management.ts similarity index 99% rename from packages/owletto-backend/src/utils/entity-management.ts rename to packages/server/src/utils/entity-management.ts index d3f32e857..2bf2812a4 100644 --- a/packages/owletto-backend/src/utils/entity-management.ts +++ b/packages/server/src/utils/entity-management.ts @@ -109,7 +109,7 @@ export interface EntityData { /** * Generate a URL-safe slug from a string. - * NOTE: duplicated in packages/owletto-web/src/lib/url.ts (separate package boundary). + * NOTE: duplicated in packages/web/src/lib/url.ts (separate package boundary). */ export function generateSlug(name: string): string { return name diff --git a/packages/owletto-backend/src/utils/env.ts b/packages/server/src/utils/env.ts similarity index 100% rename from packages/owletto-backend/src/utils/env.ts rename to packages/server/src/utils/env.ts diff --git a/packages/owletto-backend/src/utils/errors.ts b/packages/server/src/utils/errors.ts similarity index 100% rename from packages/owletto-backend/src/utils/errors.ts rename to packages/server/src/utils/errors.ts diff --git a/packages/owletto-backend/src/utils/event-kind-validation.ts b/packages/server/src/utils/event-kind-validation.ts similarity index 100% rename from packages/owletto-backend/src/utils/event-kind-validation.ts rename to packages/server/src/utils/event-kind-validation.ts diff --git a/packages/owletto-backend/src/utils/execute-data-sources.ts b/packages/server/src/utils/execute-data-sources.ts similarity index 100% rename from packages/owletto-backend/src/utils/execute-data-sources.ts rename to packages/server/src/utils/execute-data-sources.ts diff --git a/packages/owletto-backend/src/utils/execution-context.ts b/packages/server/src/utils/execution-context.ts similarity index 100% rename from packages/owletto-backend/src/utils/execution-context.ts rename to packages/server/src/utils/execution-context.ts diff --git a/packages/owletto-backend/src/utils/insert-event.ts b/packages/server/src/utils/insert-event.ts similarity index 100% rename from packages/owletto-backend/src/utils/insert-event.ts rename to packages/server/src/utils/insert-event.ts diff --git a/packages/owletto-backend/src/utils/json.ts b/packages/server/src/utils/json.ts similarity index 100% rename from packages/owletto-backend/src/utils/json.ts rename to packages/server/src/utils/json.ts diff --git a/packages/owletto-backend/src/utils/jwt.ts b/packages/server/src/utils/jwt.ts similarity index 100% rename from packages/owletto-backend/src/utils/jwt.ts rename to packages/server/src/utils/jwt.ts diff --git a/packages/owletto-backend/src/utils/logger.ts b/packages/server/src/utils/logger.ts similarity index 100% rename from packages/owletto-backend/src/utils/logger.ts rename to packages/server/src/utils/logger.ts diff --git a/packages/owletto-backend/src/utils/markdown-formatter.ts b/packages/server/src/utils/markdown-formatter.ts similarity index 100% rename from packages/owletto-backend/src/utils/markdown-formatter.ts rename to packages/server/src/utils/markdown-formatter.ts diff --git a/packages/owletto-backend/src/utils/member-entity-type.ts b/packages/server/src/utils/member-entity-type.ts similarity index 100% rename from packages/owletto-backend/src/utils/member-entity-type.ts rename to packages/server/src/utils/member-entity-type.ts diff --git a/packages/owletto-backend/src/utils/member-entity.ts b/packages/server/src/utils/member-entity.ts similarity index 100% rename from packages/owletto-backend/src/utils/member-entity.ts rename to packages/server/src/utils/member-entity.ts diff --git a/packages/owletto-backend/src/utils/member-redaction.ts b/packages/server/src/utils/member-redaction.ts similarity index 100% rename from packages/owletto-backend/src/utils/member-redaction.ts rename to packages/server/src/utils/member-redaction.ts diff --git a/packages/owletto-backend/src/utils/oauth-connection-state.ts b/packages/server/src/utils/oauth-connection-state.ts similarity index 100% rename from packages/owletto-backend/src/utils/oauth-connection-state.ts rename to packages/server/src/utils/oauth-connection-state.ts diff --git a/packages/owletto-backend/src/utils/oauth-scopes.ts b/packages/server/src/utils/oauth-scopes.ts similarity index 100% rename from packages/owletto-backend/src/utils/oauth-scopes.ts rename to packages/server/src/utils/oauth-scopes.ts diff --git a/packages/owletto-backend/src/utils/openapi-generator.ts b/packages/server/src/utils/openapi-generator.ts similarity index 100% rename from packages/owletto-backend/src/utils/openapi-generator.ts rename to packages/server/src/utils/openapi-generator.ts diff --git a/packages/owletto-backend/src/utils/organization-access.ts b/packages/server/src/utils/organization-access.ts similarity index 100% rename from packages/owletto-backend/src/utils/organization-access.ts rename to packages/server/src/utils/organization-access.ts diff --git a/packages/owletto-backend/src/utils/pg-errors.ts b/packages/server/src/utils/pg-errors.ts similarity index 100% rename from packages/owletto-backend/src/utils/pg-errors.ts rename to packages/server/src/utils/pg-errors.ts diff --git a/packages/owletto-backend/src/utils/provisioned-connection.ts b/packages/server/src/utils/provisioned-connection.ts similarity index 100% rename from packages/owletto-backend/src/utils/provisioned-connection.ts rename to packages/server/src/utils/provisioned-connection.ts diff --git a/packages/owletto-backend/src/utils/public-origin.ts b/packages/server/src/utils/public-origin.ts similarity index 88% rename from packages/owletto-backend/src/utils/public-origin.ts rename to packages/server/src/utils/public-origin.ts index 63847ad1b..6de2c58f3 100644 --- a/packages/owletto-backend/src/utils/public-origin.ts +++ b/packages/server/src/utils/public-origin.ts @@ -34,9 +34,9 @@ let localFrontendCache: boolean | undefined; * decide whether to return the hosted UI fallback when neither PUBLIC_WEB_URL * nor LOBU_URL is configured. * - * Always matches a built bundle (`packages/owletto-web/dist/index.html`). In + * Always matches a built bundle (`packages/web/dist/index.html`). In * development it additionally matches a source checkout - * (`packages/owletto-web/index.html`), which is what the Vite middleware serves — + * (`packages/web/index.html`), which is what the Vite middleware serves — * gated on NODE_ENV so a stray source tree in a production image does not * cause request-origin links to leak out. */ @@ -47,14 +47,14 @@ export function hasLocalFrontend(): boolean { const isDevelopment = process.env.NODE_ENV === 'development'; const candidates = [ envDist ? path.join(envDist, 'index.html') : undefined, - path.resolve(APP_ROOT, 'packages/owletto-web/dist/index.html'), - path.resolve(APP_ROOT, '../owletto-web/dist/index.html'), - path.resolve(process.cwd(), 'packages/owletto-web/dist/index.html'), - path.resolve(process.cwd(), '../packages/owletto-web/dist/index.html'), - isDevelopment ? path.resolve(APP_ROOT, 'packages/owletto-web/index.html') : undefined, - isDevelopment ? path.resolve(APP_ROOT, '../owletto-web/index.html') : undefined, - isDevelopment ? path.resolve(process.cwd(), 'packages/owletto-web/index.html') : undefined, - isDevelopment ? path.resolve(process.cwd(), '../packages/owletto-web/index.html') : undefined, + path.resolve(APP_ROOT, 'packages/web/dist/index.html'), + path.resolve(APP_ROOT, '../web/dist/index.html'), + path.resolve(process.cwd(), 'packages/web/dist/index.html'), + path.resolve(process.cwd(), '../packages/web/dist/index.html'), + isDevelopment ? path.resolve(APP_ROOT, 'packages/web/index.html') : undefined, + isDevelopment ? path.resolve(APP_ROOT, '../web/index.html') : undefined, + isDevelopment ? path.resolve(process.cwd(), 'packages/web/index.html') : undefined, + isDevelopment ? path.resolve(process.cwd(), '../packages/web/index.html') : undefined, ].filter((candidate): candidate is string => Boolean(candidate)); for (const candidate of candidates) { diff --git a/packages/owletto-backend/src/utils/query-expansion.ts b/packages/server/src/utils/query-expansion.ts similarity index 100% rename from packages/owletto-backend/src/utils/query-expansion.ts rename to packages/server/src/utils/query-expansion.ts diff --git a/packages/owletto-backend/src/utils/queue-helpers.ts b/packages/server/src/utils/queue-helpers.ts similarity index 100% rename from packages/owletto-backend/src/utils/queue-helpers.ts rename to packages/server/src/utils/queue-helpers.ts diff --git a/packages/owletto-backend/src/utils/race-abort.ts b/packages/server/src/utils/race-abort.ts similarity index 100% rename from packages/owletto-backend/src/utils/race-abort.ts rename to packages/server/src/utils/race-abort.ts diff --git a/packages/owletto-backend/src/utils/rate-limiter.ts b/packages/server/src/utils/rate-limiter.ts similarity index 100% rename from packages/owletto-backend/src/utils/rate-limiter.ts rename to packages/server/src/utils/rate-limiter.ts diff --git a/packages/owletto-backend/src/utils/relationship-validation.ts b/packages/server/src/utils/relationship-validation.ts similarity index 100% rename from packages/owletto-backend/src/utils/relationship-validation.ts rename to packages/server/src/utils/relationship-validation.ts diff --git a/packages/owletto-backend/src/utils/reserved.ts b/packages/server/src/utils/reserved.ts similarity index 100% rename from packages/owletto-backend/src/utils/reserved.ts rename to packages/server/src/utils/reserved.ts diff --git a/packages/owletto-backend/src/utils/resolve-usernames.ts b/packages/server/src/utils/resolve-usernames.ts similarity index 100% rename from packages/owletto-backend/src/utils/resolve-usernames.ts rename to packages/server/src/utils/resolve-usernames.ts diff --git a/packages/owletto-backend/src/utils/run-statuses.ts b/packages/server/src/utils/run-statuses.ts similarity index 100% rename from packages/owletto-backend/src/utils/run-statuses.ts rename to packages/server/src/utils/run-statuses.ts diff --git a/packages/owletto-backend/src/utils/runtime-info.ts b/packages/server/src/utils/runtime-info.ts similarity index 100% rename from packages/owletto-backend/src/utils/runtime-info.ts rename to packages/server/src/utils/runtime-info.ts diff --git a/packages/owletto-backend/src/utils/schema-validation.ts b/packages/server/src/utils/schema-validation.ts similarity index 100% rename from packages/owletto-backend/src/utils/schema-validation.ts rename to packages/server/src/utils/schema-validation.ts diff --git a/packages/owletto-backend/src/utils/scoring-profiles.ts b/packages/server/src/utils/scoring-profiles.ts similarity index 100% rename from packages/owletto-backend/src/utils/scoring-profiles.ts rename to packages/server/src/utils/scoring-profiles.ts diff --git a/packages/owletto-backend/src/utils/sql-validation.ts b/packages/server/src/utils/sql-validation.ts similarity index 100% rename from packages/owletto-backend/src/utils/sql-validation.ts rename to packages/server/src/utils/sql-validation.ts diff --git a/packages/owletto-backend/src/utils/stable-keys.test.ts b/packages/server/src/utils/stable-keys.test.ts similarity index 100% rename from packages/owletto-backend/src/utils/stable-keys.test.ts rename to packages/server/src/utils/stable-keys.test.ts diff --git a/packages/owletto-backend/src/utils/stable-keys.ts b/packages/server/src/utils/stable-keys.ts similarity index 100% rename from packages/owletto-backend/src/utils/stable-keys.ts rename to packages/server/src/utils/stable-keys.ts diff --git a/packages/owletto-backend/src/utils/table-schema.ts b/packages/server/src/utils/table-schema.ts similarity index 100% rename from packages/owletto-backend/src/utils/table-schema.ts rename to packages/server/src/utils/table-schema.ts diff --git a/packages/owletto-backend/src/utils/template-renderer.ts b/packages/server/src/utils/template-renderer.ts similarity index 100% rename from packages/owletto-backend/src/utils/template-renderer.ts rename to packages/server/src/utils/template-renderer.ts diff --git a/packages/owletto-backend/src/utils/ttl-cache.ts b/packages/server/src/utils/ttl-cache.ts similarity index 100% rename from packages/owletto-backend/src/utils/ttl-cache.ts rename to packages/server/src/utils/ttl-cache.ts diff --git a/packages/owletto-backend/src/utils/url-builder.ts b/packages/server/src/utils/url-builder.ts similarity index 100% rename from packages/owletto-backend/src/utils/url-builder.ts rename to packages/server/src/utils/url-builder.ts diff --git a/packages/owletto-backend/src/utils/vector-math.ts b/packages/server/src/utils/vector-math.ts similarity index 100% rename from packages/owletto-backend/src/utils/vector-math.ts rename to packages/server/src/utils/vector-math.ts diff --git a/packages/owletto-backend/src/utils/watcher-feedback.ts b/packages/server/src/utils/watcher-feedback.ts similarity index 100% rename from packages/owletto-backend/src/utils/watcher-feedback.ts rename to packages/server/src/utils/watcher-feedback.ts diff --git a/packages/owletto-backend/src/utils/watcher-reactions.ts b/packages/server/src/utils/watcher-reactions.ts similarity index 100% rename from packages/owletto-backend/src/utils/watcher-reactions.ts rename to packages/server/src/utils/watcher-reactions.ts diff --git a/packages/owletto-backend/src/utils/window-utils.ts b/packages/server/src/utils/window-utils.ts similarity index 99% rename from packages/owletto-backend/src/utils/window-utils.ts rename to packages/server/src/utils/window-utils.ts index 931159f00..51cdc7f71 100644 --- a/packages/owletto-backend/src/utils/window-utils.ts +++ b/packages/server/src/utils/window-utils.ts @@ -9,7 +9,7 @@ import { alignToWatcherWindowStart, subtractWatcherPeriod, type WatcherTimeGranularity, -} from '@lobu/owletto-sdk'; +} from '@lobu/connector-sdk'; import type { DbClient } from '../db/client'; interface WindowDates { diff --git a/packages/owletto-backend/src/utils/workspace-instructions.ts b/packages/server/src/utils/workspace-instructions.ts similarity index 100% rename from packages/owletto-backend/src/utils/workspace-instructions.ts rename to packages/server/src/utils/workspace-instructions.ts diff --git a/packages/owletto-backend/src/watchers/automation.ts b/packages/server/src/watchers/automation.ts similarity index 99% rename from packages/owletto-backend/src/watchers/automation.ts rename to packages/server/src/watchers/automation.ts index d72075018..5dc474ae5 100644 --- a/packages/owletto-backend/src/watchers/automation.ts +++ b/packages/server/src/watchers/automation.ts @@ -1,6 +1,6 @@ import { randomUUID } from 'node:crypto'; import { generateWorkerToken } from '@lobu/core'; -import { inferWatcherGranularityFromSchedule } from '@lobu/owletto-sdk'; +import { inferWatcherGranularityFromSchedule } from '@lobu/connector-sdk'; import type { DbClient } from '../db/client'; import { getDb } from '../db/client'; import type { Env } from '../index'; diff --git a/packages/owletto-backend/src/watchers/classifier-extraction.ts b/packages/server/src/watchers/classifier-extraction.ts similarity index 100% rename from packages/owletto-backend/src/watchers/classifier-extraction.ts rename to packages/server/src/watchers/classifier-extraction.ts diff --git a/packages/owletto-backend/src/watchers/reaction-executor.ts b/packages/server/src/watchers/reaction-executor.ts similarity index 98% rename from packages/owletto-backend/src/watchers/reaction-executor.ts rename to packages/server/src/watchers/reaction-executor.ts index 105259cd4..ca6653227 100644 --- a/packages/owletto-backend/src/watchers/reaction-executor.ts +++ b/packages/server/src/watchers/reaction-executor.ts @@ -11,7 +11,7 @@ * level access checks treat them as system calls, just like before. */ -import type { ReactionContext } from '@lobu/owletto-sdk'; +import type { ReactionContext } from '@lobu/connector-sdk'; import type { Env } from '../index'; import { buildClientSDK } from '../sandbox/client-sdk'; import { runScript } from '../sandbox/run-script'; diff --git a/packages/owletto-backend/src/watchers/renderer.ts b/packages/server/src/watchers/renderer.ts similarity index 100% rename from packages/owletto-backend/src/watchers/renderer.ts rename to packages/server/src/watchers/renderer.ts diff --git a/packages/owletto-backend/src/watchers/run-completion.ts b/packages/server/src/watchers/run-completion.ts similarity index 100% rename from packages/owletto-backend/src/watchers/run-completion.ts rename to packages/server/src/watchers/run-completion.ts diff --git a/packages/owletto-backend/src/watchers/validator.ts b/packages/server/src/watchers/validator.ts similarity index 100% rename from packages/owletto-backend/src/watchers/validator.ts rename to packages/server/src/watchers/validator.ts diff --git a/packages/owletto-backend/src/worker-api.ts b/packages/server/src/worker-api.ts similarity index 100% rename from packages/owletto-backend/src/worker-api.ts rename to packages/server/src/worker-api.ts diff --git a/packages/owletto-backend/src/workspace/__tests__/multi-tenant-auth-source.test.ts b/packages/server/src/workspace/__tests__/multi-tenant-auth-source.test.ts similarity index 100% rename from packages/owletto-backend/src/workspace/__tests__/multi-tenant-auth-source.test.ts rename to packages/server/src/workspace/__tests__/multi-tenant-auth-source.test.ts diff --git a/packages/owletto-backend/src/workspace/index.ts b/packages/server/src/workspace/index.ts similarity index 100% rename from packages/owletto-backend/src/workspace/index.ts rename to packages/server/src/workspace/index.ts diff --git a/packages/owletto-backend/src/workspace/join-public.ts b/packages/server/src/workspace/join-public.ts similarity index 100% rename from packages/owletto-backend/src/workspace/join-public.ts rename to packages/server/src/workspace/join-public.ts diff --git a/packages/owletto-backend/src/workspace/multi-tenant.ts b/packages/server/src/workspace/multi-tenant.ts similarity index 100% rename from packages/owletto-backend/src/workspace/multi-tenant.ts rename to packages/server/src/workspace/multi-tenant.ts diff --git a/packages/owletto-backend/src/workspace/types.ts b/packages/server/src/workspace/types.ts similarity index 100% rename from packages/owletto-backend/src/workspace/types.ts rename to packages/server/src/workspace/types.ts diff --git a/packages/owletto-backend/tsconfig.json b/packages/server/tsconfig.json similarity index 100% rename from packages/owletto-backend/tsconfig.json rename to packages/server/tsconfig.json diff --git a/packages/owletto-backend/vitest.config.ts b/packages/server/vitest.config.ts similarity index 100% rename from packages/owletto-backend/vitest.config.ts rename to packages/server/vitest.config.ts diff --git a/packages/web b/packages/web new file mode 160000 index 000000000..584c26668 --- /dev/null +++ b/packages/web @@ -0,0 +1 @@ +Subproject commit 584c26668af28e18a9241f17b8d4834ca54c2d3a diff --git a/release-please-config.json b/release-please-config.json index 46df43381..c6974aba2 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -23,7 +23,7 @@ }, { "type": "json", - "path": "packages/worker/package.json", + "path": "packages/agent-worker/package.json", "jsonpath": "$.version" }, { @@ -31,11 +31,51 @@ "path": "packages/cli/package.json", "jsonpath": "$.version" }, + { + "type": "json", + "path": "packages/connector-sdk/package.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "packages/openclaw-plugin/package.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "packages/connectors/package.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "packages/connector-worker/package.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "packages/embeddings/package.json", + "jsonpath": "$.version" + }, { "type": "json", "path": "packages/owletto-sdk/package.json", "jsonpath": "$.version" }, + { + "type": "json", + "path": "packages/owletto-connectors/package.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "packages/owletto-worker/package.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "packages/owletto-embeddings/package.json", + "jsonpath": "$.version" + }, { "type": "json", "path": "packages/owletto-openclaw/package.json", diff --git a/scripts/bump-version.mjs b/scripts/bump-version.mjs index df514cec7..a23503672 100644 --- a/scripts/bump-version.mjs +++ b/scripts/bump-version.mjs @@ -5,9 +5,17 @@ import path from "node:path"; const PACKAGES = [ "packages/core", - "packages/worker", + "packages/agent-worker", "packages/cli", + "packages/connector-sdk", + "packages/openclaw-plugin", + "packages/connectors", + "packages/connector-worker", + "packages/embeddings", "packages/owletto-sdk", + "packages/owletto-connectors", + "packages/owletto-worker", + "packages/owletto-embeddings", "packages/owletto-openclaw", ]; diff --git a/scripts/check-connector-runtime-deps.mjs b/scripts/check-connector-runtime-deps.mjs index d9df95ad5..a0d8daa76 100755 --- a/scripts/check-connector-runtime-deps.mjs +++ b/scripts/check-connector-runtime-deps.mjs @@ -17,7 +17,7 @@ const __dirname = dirname(fileURLToPath(import.meta.url)); const repoRoot = join(__dirname, ".."); const runtimeDepsSource = readFileSync( - join(repoRoot, "packages/owletto-worker/src/runtime-deps.ts"), + join(repoRoot, "packages/connector-worker/src/runtime-deps.ts"), "utf-8" ); @@ -26,7 +26,7 @@ const match = runtimeDepsSource.match( ); if (!match) { console.error( - "Could not parse EXTERNAL_RUNTIME_DEPS from packages/owletto-worker/src/runtime-deps.ts" + "Could not parse EXTERNAL_RUNTIME_DEPS from packages/connector-worker/src/runtime-deps.ts" ); process.exit(2); } @@ -36,7 +36,10 @@ const declared = match[1] .filter(Boolean); const workerPkg = JSON.parse( - readFileSync(join(repoRoot, "packages/owletto-worker/package.json"), "utf-8") + readFileSync( + join(repoRoot, "packages/connector-worker/package.json"), + "utf-8" + ) ); const installedDeps = new Set(Object.keys(workerPkg.dependencies ?? {})); @@ -44,10 +47,10 @@ const missing = declared.filter((dep) => !installedDeps.has(dep)); if (missing.length > 0) { console.error( - `❌ EXTERNAL_RUNTIME_DEPS includes deps that are NOT in packages/owletto-worker/package.json:\n` + + `❌ EXTERNAL_RUNTIME_DEPS includes deps that are NOT in packages/connector-worker/package.json:\n` + missing.map((d) => ` - ${d}`).join("\n") + `\n\nEither add them as worker dependencies, or remove them from EXTERNAL_RUNTIME_DEPS\n` + - `(packages/owletto-worker/src/runtime-deps.ts) so they get bundled into the connector artifact.` + `(packages/connector-worker/src/runtime-deps.ts) so they get bundled into the connector artifact.` ); process.exit(1); } diff --git a/scripts/dev-native.sh b/scripts/dev-native.sh index 9e25b7d15..872aa87f6 100755 --- a/scripts/dev-native.sh +++ b/scripts/dev-native.sh @@ -2,10 +2,10 @@ # Run the embedded Lobu stack natively. # # What runs: -# - owletto-backend (Hono + tsx watch) on :8787 +# - server (Hono + tsx watch) on :8787 # - embedded gateway (in-process) with HTTP egress proxy on :8118 # - embedded workers (spawned as Bun subprocesses on demand) -# - Vite dev middleware for owletto-web on the same :8787 (HMR via WS) +# - Vite dev middleware for web on the same :8787 (HMR via WS) # # Requires, managed outside this script: # - Postgres reachable via DATABASE_URL in .env @@ -27,7 +27,7 @@ if [ ! -f .env ]; then exit 1 fi -if [ ! -d packages/core/dist ] || [ ! -d packages/owletto-sdk/dist ] || [ ! -d packages/worker/dist ]; then +if [ ! -d packages/core/dist ] || [ ! -d packages/connector-sdk/dist ] || [ ! -d packages/agent-worker/dist ]; then echo "📦 Building workspace packages (one-time)…" make build-packages fi @@ -58,9 +58,9 @@ fi # --- Run ------------------------------------------------------------------- -echo "→ owletto-backend on http://${HOST}:${PORT}" +echo "→ server on http://${HOST}:${PORT}" echo "→ embedded gateway proxy on :8118" echo "→ Vite HMR in-process (same port)" echo "" -exec bun run --filter '@lobu/owletto-backend' dev +exec bun run --filter '@lobu/server' dev diff --git a/scripts/e2e-lobu-apply.sh b/scripts/e2e-lobu-apply.sh index 8e8377300..ee8ccd5a4 100755 --- a/scripts/e2e-lobu-apply.sh +++ b/scripts/e2e-lobu-apply.sh @@ -77,7 +77,7 @@ env \ PORT="${PORT}" \ HOST=127.0.0.1 \ PG_SOCKET_PORT=0 \ - bun run "${REPO_ROOT}/packages/owletto-backend/src/start-local.ts" \ + bun run "${REPO_ROOT}/packages/server/src/start-local.ts" \ >"${SERVER_LOG}" 2>&1 & SERVER_PID=$! diff --git a/scripts/owletto/dry-run-connector.ts b/scripts/owletto/dry-run-connector.ts index a88b34e97..7da6f8b55 100644 --- a/scripts/owletto/dry-run-connector.ts +++ b/scripts/owletto/dry-run-connector.ts @@ -9,7 +9,7 @@ import { readFileSync } from 'node:fs'; import { basename, resolve } from 'node:path'; -import { compileConnectorSource, extractConnectorMetadata } from '../../packages/owletto-backend/src/utils/connector-compiler'; +import { compileConnectorSource, extractConnectorMetadata } from '../../packages/server/src/utils/connector-compiler'; async function main() { const [filePath, configJson] = process.argv.slice(2); diff --git a/scripts/owletto/install-connectors.ts b/scripts/owletto/install-connectors.ts index 27191edb1..f5bed5f7d 100644 --- a/scripts/owletto/install-connectors.ts +++ b/scripts/owletto/install-connectors.ts @@ -13,11 +13,11 @@ import { basename, resolve } from 'node:path'; import { parseArgs } from 'node:util'; -import { getDb } from '../../packages/owletto-backend/src/db/client'; -import { compileConnectorFromFile } from '../../packages/owletto-backend/src/utils/connector-catalog'; -import { extractConnectorMetadata } from '../../packages/owletto-backend/src/utils/connector-compiler'; -import { upsertConnectorDefinitionRecords } from '../../packages/owletto-backend/src/utils/connector-definition-install'; -import { applyEntityLinkOverrides } from '../../packages/owletto-backend/src/utils/entity-link-overrides'; +import { getDb } from '../../packages/server/src/db/client'; +import { compileConnectorFromFile } from '../../packages/server/src/utils/connector-catalog'; +import { extractConnectorMetadata } from '../../packages/server/src/utils/connector-compiler'; +import { upsertConnectorDefinitionRecords } from '../../packages/server/src/utils/connector-definition-install'; +import { applyEntityLinkOverrides } from '../../packages/server/src/utils/entity-link-overrides'; const { values } = parseArgs({ options: { diff --git a/scripts/owletto/prepare-locomo-suite.ts b/scripts/owletto/prepare-locomo-suite.ts index dd7b76a21..ac57f0369 100644 --- a/scripts/owletto/prepare-locomo-suite.ts +++ b/scripts/owletto/prepare-locomo-suite.ts @@ -1,4 +1,4 @@ -import { prepareLoCoMoSuite } from '../../packages/owletto-backend/src/benchmarks/memory/public-datasets/locomo.ts'; +import { prepareLoCoMoSuite } from '../../packages/server/src/benchmarks/memory/public-datasets/locomo.ts'; function readFlag(name: string): string | null { const index = process.argv.indexOf(name); diff --git a/scripts/owletto/prepare-longmemeval-suite.ts b/scripts/owletto/prepare-longmemeval-suite.ts index 26021cdf2..108282a4f 100644 --- a/scripts/owletto/prepare-longmemeval-suite.ts +++ b/scripts/owletto/prepare-longmemeval-suite.ts @@ -1,7 +1,7 @@ import { type LongMemEvalVariant, prepareLongMemEvalSuite, -} from '../../packages/owletto-backend/src/benchmarks/memory/public-datasets/longmemeval.ts'; +} from '../../packages/server/src/benchmarks/memory/public-datasets/longmemeval.ts'; function readFlag(name: string): string | null { const index = process.argv.indexOf(name); diff --git a/scripts/owletto/run-memory-benchmark.ts b/scripts/owletto/run-memory-benchmark.ts index 3c395cb91..17de945dd 100644 --- a/scripts/owletto/run-memory-benchmark.ts +++ b/scripts/owletto/run-memory-benchmark.ts @@ -1,4 +1,4 @@ -import { printReport, runBenchmarkFromConfigPath } from '../../packages/owletto-backend/src/benchmarks/memory/runner.ts'; +import { printReport, runBenchmarkFromConfigPath } from '../../packages/server/src/benchmarks/memory/runner.ts'; function readFlag(name: string): string | null { const index = process.argv.indexOf(name); diff --git a/scripts/owletto/sync-local.ts b/scripts/owletto/sync-local.ts index 96c1cc7ca..644c1a76f 100644 --- a/scripts/owletto/sync-local.ts +++ b/scripts/owletto/sync-local.ts @@ -10,7 +10,7 @@ */ import { parseArgs } from 'node:util'; -import { fetchFeeds, runFeed } from '../../packages/owletto-backend/src/lib/feed-sync'; +import { fetchFeeds, runFeed } from '../../packages/server/src/lib/feed-sync'; // Parse CLI arguments const { values } = parseArgs({ diff --git a/scripts/owletto/sync-owletto-guidance.ts b/scripts/owletto/sync-owletto-guidance.ts index 89e446994..6b19bdcdd 100644 --- a/scripts/owletto/sync-owletto-guidance.ts +++ b/scripts/owletto/sync-owletto-guidance.ts @@ -1,6 +1,6 @@ import { readFileSync, writeFileSync } from 'node:fs'; import { resolve } from 'node:path'; -import { renderSkillMemorySection } from '../../packages/owletto-openclaw/src/owletto-guidance.ts'; +import { renderSkillMemorySection } from '../../packages/openclaw-plugin/src/owletto-guidance.ts'; const SKILL_PATH = resolve(process.cwd(), 'skills/lobu/SKILL.md'); const START_MARKER = ''; diff --git a/scripts/publish-packages.mjs b/scripts/publish-packages.mjs index d509d1932..6050981f6 100644 --- a/scripts/publish-packages.mjs +++ b/scripts/publish-packages.mjs @@ -11,7 +11,7 @@ // failure can be retried without bumping the version. import { spawnSync } from "node:child_process"; -import { readFileSync } from "node:fs"; +import { readdirSync, readFileSync } from "node:fs"; import { readFile, writeFile } from "node:fs/promises"; import path from "node:path"; import process from "node:process"; @@ -20,12 +20,40 @@ const REPO_ROOT = process.cwd(); const PACKAGES = [ { dir: "packages/core", transform: transformCorePublish }, - { dir: "packages/owletto-sdk", transform: rewriteWorkspaceRefs }, - { dir: "packages/worker", transform: rewriteWorkspaceRefs }, + { dir: "packages/connector-sdk", transform: rewriteWorkspaceRefs }, + { dir: "packages/agent-worker", transform: rewriteWorkspaceRefs }, { dir: "packages/cli", transform: rewriteWorkspaceRefs }, + { dir: "packages/openclaw-plugin", transform: rewriteWorkspaceRefs }, + { dir: "packages/connectors", transform: rewriteWorkspaceRefs }, + { dir: "packages/connector-worker", transform: rewriteWorkspaceRefs }, + { dir: "packages/embeddings", transform: rewriteWorkspaceRefs }, + { dir: "packages/owletto-sdk", transform: rewriteWorkspaceRefs }, + { dir: "packages/owletto-connectors", transform: rewriteWorkspaceRefs }, + { dir: "packages/owletto-worker", transform: rewriteWorkspaceRefs }, + { dir: "packages/owletto-embeddings", transform: rewriteWorkspaceRefs }, { dir: "packages/owletto-openclaw", transform: rewriteWorkspaceRefs }, ]; +const RENAMED_PACKAGE_DEPRECATIONS = [ + ["@lobu/owletto-sdk", "@lobu/connector-sdk", "packages/owletto-sdk"], + [ + "@lobu/owletto-connectors", + "@lobu/connectors", + "packages/owletto-connectors", + ], + ["@lobu/owletto-worker", "@lobu/connector-worker", "packages/owletto-worker"], + [ + "@lobu/owletto-embeddings", + "@lobu/embeddings", + "packages/owletto-embeddings", + ], + [ + "@lobu/owletto-openclaw", + "@lobu/openclaw-plugin", + "packages/owletto-openclaw", + ], +]; + // Published package names that don't use the @lobu/ scope. The unscoped // `owletto` package was retired when the CLI merged into @lobu/cli; the // allow-list stays in case another unscoped package ever gets added. @@ -51,9 +79,7 @@ function rewriteWorkspaceRefs(pkg) { `Unexpected workspace ref outside @lobu scope: ${name}@${spec}` ); } - // All workspace packages are version-locked to the root version by - // bump-version.mjs, so the current root version is the right target. - deps[name] = rootVersion(); + deps[name] = workspacePackageVersion(name); } }; rewriteSection(pkg.dependencies); @@ -73,6 +99,34 @@ function rootVersion() { return cachedRootVersion; } +let cachedWorkspaceVersions; +function workspaceVersions() { + if (!cachedWorkspaceVersions) { + cachedWorkspaceVersions = new Map(); + const packagesDir = path.join(REPO_ROOT, "packages"); + for (const dir of readdirSync(packagesDir)) { + const pkgPath = path.join(packagesDir, dir, "package.json"); + try { + const pkg = JSON.parse(readFileSync(pkgPath, "utf8")); + if (pkg.name && pkg.version) { + cachedWorkspaceVersions.set(pkg.name, pkg.version); + } + } catch { + // Not a workspace package. + } + } + } + return cachedWorkspaceVersions; +} + +function workspacePackageVersion(name) { + const version = workspaceVersions().get(name); + if (!version) { + throw new Error(`No workspace package found for ${name}`); + } + return version; +} + // Strip the `.bun` export conditionals that point at `./src/...`. They exist // only for in-monorepo dev ergonomics (bun resolves source directly), and // would 404 in the published tarball since `src/` is not shipped. Also @@ -112,6 +166,32 @@ function publishArgs(otp) { return args; } +function deprecateArgs(packageSpec, message, otp) { + const args = ["deprecate", packageSpec, message]; + if (otp) args.push(`--otp=${otp}`); + return args; +} + +function packageVersion(dir) { + const pkg = JSON.parse( + readFileSync(path.join(REPO_ROOT, dir, "package.json"), "utf8") + ); + return pkg.version; +} + +function deprecateRenamedPackages(otp) { + for (const [oldName, newName, dir] of RENAMED_PACKAGE_DEPRECATIONS) { + const version = packageVersion(dir); + if (!isVersionPublished(oldName, version)) { + console.log(` → ${oldName}@${version} not on npm, skipping deprecation`); + continue; + } + const message = `Renamed to ${newName}. Please install ${newName} instead.`; + console.log(` → deprecating ${oldName}@${version}`); + run("npm", deprecateArgs(`${oldName}@${version}`, message, otp)); + } +} + async function publishPackage({ dir, transform }, otp) { const absDir = path.join(REPO_ROOT, dir); const pkgPath = path.join(absDir, "package.json"); @@ -167,21 +247,21 @@ async function main() { const { bump, otp, skipBuild, skipBump } = parseArgs(process.argv.slice(2)); if (skipBump) { - console.log("\n[1/3] Skipping version bump (--skip-bump)"); + console.log("\n[1/4] Skipping version bump (--skip-bump)"); } else { - console.log(`\n[1/3] Bumping version (${bump})`); + console.log(`\n[1/4] Bumping version (${bump})`); run("node", ["scripts/bump-version.mjs", bump]); } if (skipBuild) { - console.log("\n[2/3] Skipping build (--skip-build)"); + console.log("\n[2/4] Skipping build (--skip-build)"); } else { - console.log("\n[2/3] Building packages"); + console.log("\n[2/4] Building packages"); run("bun", ["run", "build:packages"]); run("bun", ["run", "build:owletto"]); } - console.log("\n[3/3] Publishing to npm"); + console.log("\n[3/4] Publishing to npm"); if (otp) { console.log(" (using --otp from command line or $NPM_OTP)"); } @@ -189,6 +269,9 @@ async function main() { await publishPackage(pkg, otp); } + console.log("\n[4/4] Deprecating renamed compatibility packages"); + deprecateRenamedPackages(otp); + console.log("\nDone."); } diff --git a/skills/lobu/SKILL.md b/skills/lobu/SKILL.md index cbf3e8f4e..7570f454c 100644 --- a/skills/lobu/SKILL.md +++ b/skills/lobu/SKILL.md @@ -97,7 +97,7 @@ For ChatGPT, Claude Desktop, Cursor, and other browser-managed clients, paste th For OpenClaw, install the plugin and let the Lobu CLI write plugin config: ```bash -openclaw plugins install owletto-openclaw-plugin +openclaw plugins install @lobu/openclaw-plugin lobu login lobu memory configure --url --org lobu memory health --url --org diff --git a/tsconfig.json b/tsconfig.json index db053e815..8431dd0cf 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -31,16 +31,16 @@ "paths": { "@lobu/core": ["packages/core/src/index.ts"], "@lobu/core/*": ["packages/core/src/*"], - "@lobu/worker": ["packages/worker/src/index.ts"], - "@lobu/worker/*": ["packages/worker/src/*"], - "@lobu/owletto-sdk": ["packages/owletto-sdk/src/index.ts"], - "@lobu/owletto-sdk/*": ["packages/owletto-sdk/src/*"], - "@lobu/owletto-openclaw": ["packages/owletto-openclaw/src/index.ts"], - "@lobu/owletto-openclaw/*": ["packages/owletto-openclaw/src/*"], - "@lobu/owletto-worker": ["packages/owletto-worker/src/index.ts"], - "@lobu/owletto-worker/*": ["packages/owletto-worker/src/*"], - "@lobu/owletto-connectors": ["packages/owletto-connectors/src/index.ts"], - "@lobu/owletto-connectors/*": ["packages/owletto-connectors/src/*"] + "@lobu/worker": ["packages/agent-worker/src/index.ts"], + "@lobu/worker/*": ["packages/agent-worker/src/*"], + "@lobu/connector-sdk": ["packages/connector-sdk/src/index.ts"], + "@lobu/connector-sdk/*": ["packages/connector-sdk/src/*"], + "@lobu/openclaw-plugin": ["packages/openclaw-plugin/src/index.ts"], + "@lobu/openclaw-plugin/*": ["packages/openclaw-plugin/src/*"], + "@lobu/connector-worker": ["packages/connector-worker/src/index.ts"], + "@lobu/connector-worker/*": ["packages/connector-worker/src/*"], + "@lobu/connectors": ["packages/connectors/src/index.ts"], + "@lobu/connectors/*": ["packages/connectors/src/*"] } }, "include": ["packages/*/src/**/*", "src/**/*", "test/**/*"], @@ -49,13 +49,13 @@ "packages/*/src/__tests__/**/*", "packages/cli/**/*", "packages/landing/**/*", - "packages/owletto-backend/**/*", - "packages/owletto-sdk/**/*", - "packages/owletto-openclaw/**/*", - "packages/owletto-worker/**/*", - "packages/owletto-connectors/**/*", - "packages/owletto-embeddings/**/*", - "packages/owletto-extension/**/*", - "packages/owletto-web/**/*" + "packages/server/**/*", + "packages/connector-sdk/**/*", + "packages/openclaw-plugin/**/*", + "packages/connector-worker/**/*", + "packages/connectors/**/*", + "packages/embeddings/**/*", + "packages/browser-extension/**/*", + "packages/web/**/*" ] } From efa979bcb42ab465993f91cd751f19078cf7214a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Burak=20Emre=20Kabakc=C4=B1?= Date: Mon, 4 May 2026 00:29:40 +0100 Subject: [PATCH 2/3] chore(submodule): bump packages/web to include @lobu/openclaw-plugin install fix Pulls in lobu-ai/owletto-web#61, which updates the OpenClaw install target string to match the renamed @lobu/openclaw-plugin package. Required for packages/server/src/utils/__tests__/mcp-install-targets.test.ts. --- packages/web | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web b/packages/web index 584c26668..0bc9db303 160000 --- a/packages/web +++ b/packages/web @@ -1 +1 @@ -Subproject commit 584c26668af28e18a9241f17b8d4834ca54c2d3a +Subproject commit 0bc9db303bb17bffd9b7044c4c0d10fcef484cc7 From 1094a27e78c12e3d6cee1a6511862143a6d0fdd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Burak=20Emre=20Kabakc=C4=B1?= Date: Mon, 4 May 2026 00:37:35 +0100 Subject: [PATCH 3/3] fix(publish): deprecate every published version of renamed packages Previously deprecateRenamedPackages only marked the just-published version as deprecated; anyone pinned to an older version (e.g. @lobu/owletto-sdk@1.5.0) never saw the rename notice. Switch to 'npm deprecate @*' so the deprecation message lands on every existing version. Also drop the dir argument since we no longer need to derive a specific version, and replace isVersionPublished with a simpler isPackagePublished existence check. --- scripts/publish-packages.mjs | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/scripts/publish-packages.mjs b/scripts/publish-packages.mjs index 6050981f6..4a9ca66c7 100644 --- a/scripts/publish-packages.mjs +++ b/scripts/publish-packages.mjs @@ -160,6 +160,14 @@ function isVersionPublished(name, version) { return result.status === 0 && result.stdout.trim() === version; } +function isPackagePublished(name) { + const result = spawnSync("npm", ["view", name, "name"], { + stdio: ["ignore", "pipe", "pipe"], + encoding: "utf8", + }); + return result.status === 0 && result.stdout.trim() === name; +} + function publishArgs(otp) { const args = ["publish", "--access", "public"]; if (otp) args.push(`--otp=${otp}`); @@ -180,15 +188,17 @@ function packageVersion(dir) { } function deprecateRenamedPackages(otp) { - for (const [oldName, newName, dir] of RENAMED_PACKAGE_DEPRECATIONS) { - const version = packageVersion(dir); - if (!isVersionPublished(oldName, version)) { - console.log(` → ${oldName}@${version} not on npm, skipping deprecation`); + for (const [oldName, newName] of RENAMED_PACKAGE_DEPRECATIONS) { + if (!isPackagePublished(oldName)) { + console.log(` → ${oldName} not on npm, skipping deprecation`); continue; } const message = `Renamed to ${newName}. Please install ${newName} instead.`; - console.log(` → deprecating ${oldName}@${version}`); - run("npm", deprecateArgs(`${oldName}@${version}`, message, otp)); + // Deprecate every published version of the old name (npm accepts `@*` as + // "all versions"). Without this, anyone pinned to an older version never + // sees the rename notice — only freshly resolved installs do. + console.log(` → deprecating ${oldName}@*`); + run("npm", deprecateArgs(`${oldName}@*`, message, otp)); } }