@aquaclawai/aquarium 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-types/claude-code/index.d.ts +2 -0
- package/dist/agent-types/claude-code/index.d.ts.map +1 -0
- package/dist/agent-types/claude-code/index.js +2 -0
- package/dist/agent-types/claude-code/index.js.map +1 -0
- package/dist/agent-types/claude-code/manifest.d.ts +3 -0
- package/dist/agent-types/claude-code/manifest.d.ts.map +1 -0
- package/dist/agent-types/claude-code/manifest.js +45 -0
- package/dist/agent-types/claude-code/manifest.js.map +1 -0
- package/dist/agent-types/openclaw/adapter.d.ts +3 -0
- package/dist/agent-types/openclaw/adapter.d.ts.map +1 -0
- package/dist/agent-types/openclaw/adapter.js +714 -0
- package/dist/agent-types/openclaw/adapter.js.map +1 -0
- package/dist/agent-types/openclaw/gateway-rpc.d.ts +21 -0
- package/dist/agent-types/openclaw/gateway-rpc.d.ts.map +1 -0
- package/dist/agent-types/openclaw/gateway-rpc.js +202 -0
- package/dist/agent-types/openclaw/gateway-rpc.js.map +1 -0
- package/dist/agent-types/openclaw/index.d.ts +3 -0
- package/dist/agent-types/openclaw/index.d.ts.map +1 -0
- package/dist/agent-types/openclaw/index.js +3 -0
- package/dist/agent-types/openclaw/index.js.map +1 -0
- package/dist/agent-types/openclaw/manifest.d.ts +137 -0
- package/dist/agent-types/openclaw/manifest.d.ts.map +1 -0
- package/dist/agent-types/openclaw/manifest.js +191 -0
- package/dist/agent-types/openclaw/manifest.js.map +1 -0
- package/dist/agent-types/openclaw/provider-registry.d.ts +46 -0
- package/dist/agent-types/openclaw/provider-registry.d.ts.map +1 -0
- package/dist/agent-types/openclaw/provider-registry.js +108 -0
- package/dist/agent-types/openclaw/provider-registry.js.map +1 -0
- package/dist/agent-types/openclaw/reverse-adapter.d.ts +7 -0
- package/dist/agent-types/openclaw/reverse-adapter.d.ts.map +1 -0
- package/dist/agent-types/openclaw/reverse-adapter.js +528 -0
- package/dist/agent-types/openclaw/reverse-adapter.js.map +1 -0
- package/dist/agent-types/openclaw/security-profiles.d.ts +21 -0
- package/dist/agent-types/openclaw/security-profiles.d.ts.map +1 -0
- package/dist/agent-types/openclaw/security-profiles.js +251 -0
- package/dist/agent-types/openclaw/security-profiles.js.map +1 -0
- package/dist/agent-types/openclaw/workspace-templates.d.ts +2 -0
- package/dist/agent-types/openclaw/workspace-templates.d.ts.map +1 -0
- package/dist/agent-types/openclaw/workspace-templates.js +363 -0
- package/dist/agent-types/openclaw/workspace-templates.js.map +1 -0
- package/dist/agent-types/opencode/index.d.ts +2 -0
- package/dist/agent-types/opencode/index.d.ts.map +1 -0
- package/dist/agent-types/opencode/index.js +2 -0
- package/dist/agent-types/opencode/index.js.map +1 -0
- package/dist/agent-types/opencode/manifest.d.ts +3 -0
- package/dist/agent-types/opencode/manifest.d.ts.map +1 -0
- package/dist/agent-types/opencode/manifest.js +63 -0
- package/dist/agent-types/opencode/manifest.js.map +1 -0
- package/dist/agent-types/registry.d.ts +4 -0
- package/dist/agent-types/registry.d.ts.map +1 -0
- package/dist/agent-types/registry.js +24 -0
- package/dist/agent-types/registry.js.map +1 -0
- package/dist/agent-types/types.d.ts +169 -0
- package/dist/agent-types/types.d.ts.map +1 -0
- package/dist/agent-types/types.js +2 -0
- package/dist/agent-types/types.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +72 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +68 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +98 -0
- package/dist/config.js.map +1 -0
- package/dist/db/adapter.d.ts +21 -0
- package/dist/db/adapter.d.ts.map +1 -0
- package/dist/db/adapter.js +11 -0
- package/dist/db/adapter.js.map +1 -0
- package/dist/db/index.d.ts +4 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +5 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/knexfile.d.ts +5 -0
- package/dist/db/knexfile.d.ts.map +1 -0
- package/dist/db/knexfile.js +34 -0
- package/dist/db/knexfile.js.map +1 -0
- package/dist/db/migration-helpers.d.ts +45 -0
- package/dist/db/migration-helpers.d.ts.map +1 -0
- package/dist/db/migration-helpers.js +90 -0
- package/dist/db/migration-helpers.js.map +1 -0
- package/dist/db/migrations/001_initial.d.ts +4 -0
- package/dist/db/migrations/001_initial.d.ts.map +1 -0
- package/dist/db/migrations/001_initial.js +56 -0
- package/dist/db/migrations/001_initial.js.map +1 -0
- package/dist/db/migrations/002_instance_config.d.ts +4 -0
- package/dist/db/migrations/002_instance_config.d.ts.map +1 -0
- package/dist/db/migrations/002_instance_config.js +12 -0
- package/dist/db/migrations/002_instance_config.js.map +1 -0
- package/dist/db/migrations/003_instance_status_message.d.ts +4 -0
- package/dist/db/migrations/003_instance_status_message.d.ts.map +1 -0
- package/dist/db/migrations/003_instance_status_message.js +11 -0
- package/dist/db/migrations/003_instance_status_message.js.map +1 -0
- package/dist/db/migrations/004_templates.d.ts +4 -0
- package/dist/db/migrations/004_templates.d.ts.map +1 -0
- package/dist/db/migrations/004_templates.js +95 -0
- package/dist/db/migrations/004_templates.js.map +1 -0
- package/dist/db/migrations/005_group_chats.d.ts +4 -0
- package/dist/db/migrations/005_group_chats.d.ts.map +1 -0
- package/dist/db/migrations/005_group_chats.js +66 -0
- package/dist/db/migrations/005_group_chats.js.map +1 -0
- package/dist/db/migrations/006_template_setup.d.ts +4 -0
- package/dist/db/migrations/006_template_setup.d.ts.map +1 -0
- package/dist/db/migrations/006_template_setup.js +14 -0
- package/dist/db/migrations/006_template_setup.js.map +1 -0
- package/dist/db/migrations/007_group_chat_v2.d.ts +4 -0
- package/dist/db/migrations/007_group_chat_v2.d.ts.map +1 -0
- package/dist/db/migrations/007_group_chat_v2.js +59 -0
- package/dist/db/migrations/007_group_chat_v2.js.map +1 -0
- package/dist/db/migrations/008_default_provider_openrouter.d.ts +4 -0
- package/dist/db/migrations/008_default_provider_openrouter.d.ts.map +1 -0
- package/dist/db/migrations/008_default_provider_openrouter.js +33 -0
- package/dist/db/migrations/008_default_provider_openrouter.js.map +1 -0
- package/dist/db/migrations/009_opencode_default_provider_openrouter.d.ts +4 -0
- package/dist/db/migrations/009_opencode_default_provider_openrouter.d.ts.map +1 -0
- package/dist/db/migrations/009_opencode_default_provider_openrouter.js +33 -0
- package/dist/db/migrations/009_opencode_default_provider_openrouter.js.map +1 -0
- package/dist/db/migrations/010_fix_null_default_provider.d.ts +4 -0
- package/dist/db/migrations/010_fix_null_default_provider.d.ts.map +1 -0
- package/dist/db/migrations/010_fix_null_default_provider.js +24 -0
- package/dist/db/migrations/010_fix_null_default_provider.js.map +1 -0
- package/dist/db/migrations/011_snapshots.d.ts +4 -0
- package/dist/db/migrations/011_snapshots.d.ts.map +1 -0
- package/dist/db/migrations/011_snapshots.js +27 -0
- package/dist/db/migrations/011_snapshots.js.map +1 -0
- package/dist/db/migrations/013_official_templates.d.ts +4 -0
- package/dist/db/migrations/013_official_templates.d.ts.map +1 -0
- package/dist/db/migrations/013_official_templates.js +173 -0
- package/dist/db/migrations/013_official_templates.js.map +1 -0
- package/dist/db/migrations/014_notifications.d.ts +4 -0
- package/dist/db/migrations/014_notifications.d.ts.map +1 -0
- package/dist/db/migrations/014_notifications.js +45 -0
- package/dist/db/migrations/014_notifications.js.map +1 -0
- package/dist/db/migrations/015_security_profile.d.ts +4 -0
- package/dist/db/migrations/015_security_profile.d.ts.map +1 -0
- package/dist/db/migrations/015_security_profile.js +14 -0
- package/dist/db/migrations/015_security_profile.js.map +1 -0
- package/dist/db/migrations/016_template_security.d.ts +4 -0
- package/dist/db/migrations/016_template_security.d.ts.map +1 -0
- package/dist/db/migrations/016_template_security.js +12 -0
- package/dist/db/migrations/016_template_security.js.map +1 -0
- package/dist/db/migrations/017_auth_events.d.ts +4 -0
- package/dist/db/migrations/017_auth_events.d.ts.map +1 -0
- package/dist/db/migrations/017_auth_events.js +19 -0
- package/dist/db/migrations/017_auth_events.js.map +1 -0
- package/dist/db/migrations/018_skill_market.d.ts +4 -0
- package/dist/db/migrations/018_skill_market.d.ts.map +1 -0
- package/dist/db/migrations/018_skill_market.js +21 -0
- package/dist/db/migrations/018_skill_market.js.map +1 -0
- package/dist/db/migrations/019_credential_audit_log.d.ts +4 -0
- package/dist/db/migrations/019_credential_audit_log.d.ts.map +1 -0
- package/dist/db/migrations/019_credential_audit_log.js +19 -0
- package/dist/db/migrations/019_credential_audit_log.js.map +1 -0
- package/dist/db/migrations/020_template_security_score.d.ts +4 -0
- package/dist/db/migrations/020_template_security_score.d.ts.map +1 -0
- package/dist/db/migrations/020_template_security_score.js +31 -0
- package/dist/db/migrations/020_template_security_score.js.map +1 -0
- package/dist/db/migrations/021_credential_enhancements.d.ts +4 -0
- package/dist/db/migrations/021_credential_enhancements.d.ts.map +1 -0
- package/dist/db/migrations/021_credential_enhancements.js +15 -0
- package/dist/db/migrations/021_credential_enhancements.js.map +1 -0
- package/dist/db/migrations/021_user_roles.d.ts +4 -0
- package/dist/db/migrations/021_user_roles.d.ts.map +1 -0
- package/dist/db/migrations/021_user_roles.js +11 -0
- package/dist/db/migrations/021_user_roles.js.map +1 -0
- package/dist/db/migrations/022_config_hash.d.ts +4 -0
- package/dist/db/migrations/022_config_hash.d.ts.map +1 -0
- package/dist/db/migrations/022_config_hash.js +11 -0
- package/dist/db/migrations/022_config_hash.js.map +1 -0
- package/dist/db/migrations/023_account_security.d.ts +4 -0
- package/dist/db/migrations/023_account_security.d.ts.map +1 -0
- package/dist/db/migrations/023_account_security.js +22 -0
- package/dist/db/migrations/023_account_security.js.map +1 -0
- package/dist/db/migrations/024_wizard_configs.d.ts +4 -0
- package/dist/db/migrations/024_wizard_configs.d.ts.map +1 -0
- package/dist/db/migrations/024_wizard_configs.js +165 -0
- package/dist/db/migrations/024_wizard_configs.js.map +1 -0
- package/dist/db/migrations/025_auth_dual_mode.d.ts +4 -0
- package/dist/db/migrations/025_auth_dual_mode.d.ts.map +1 -0
- package/dist/db/migrations/025_auth_dual_mode.js +19 -0
- package/dist/db/migrations/025_auth_dual_mode.js.map +1 -0
- package/dist/db/migrations/027_add_avatar_to_instances.d.ts +4 -0
- package/dist/db/migrations/027_add_avatar_to_instances.d.ts.map +1 -0
- package/dist/db/migrations/027_add_avatar_to_instances.js +11 -0
- package/dist/db/migrations/027_add_avatar_to_instances.js.map +1 -0
- package/dist/db/migrations/027_add_clerk_id.d.ts +4 -0
- package/dist/db/migrations/027_add_clerk_id.d.ts.map +1 -0
- package/dist/db/migrations/027_add_clerk_id.js +11 -0
- package/dist/db/migrations/027_add_clerk_id.js.map +1 -0
- package/dist/db/migrations/028_template_plugin_dependencies.d.ts +4 -0
- package/dist/db/migrations/028_template_plugin_dependencies.d.ts.map +1 -0
- package/dist/db/migrations/028_template_plugin_dependencies.js +18 -0
- package/dist/db/migrations/028_template_plugin_dependencies.js.map +1 -0
- package/dist/db/migrations/029_remap_orphan_config_keys.d.ts +21 -0
- package/dist/db/migrations/029_remap_orphan_config_keys.d.ts.map +1 -0
- package/dist/db/migrations/029_remap_orphan_config_keys.js +63 -0
- package/dist/db/migrations/029_remap_orphan_config_keys.js.map +1 -0
- package/dist/db/migrations/030_extend_notification_types.d.ts +4 -0
- package/dist/db/migrations/030_extend_notification_types.d.ts.map +1 -0
- package/dist/db/migrations/030_extend_notification_types.js +10 -0
- package/dist/db/migrations/030_extend_notification_types.js.map +1 -0
- package/dist/db/migrations/031_default_security_profile_developer.d.ts +9 -0
- package/dist/db/migrations/031_default_security_profile_developer.d.ts.map +1 -0
- package/dist/db/migrations/031_default_security_profile_developer.js +22 -0
- package/dist/db/migrations/031_default_security_profile_developer.js.map +1 -0
- package/dist/db/migrations/032_geo_template.d.ts +4 -0
- package/dist/db/migrations/032_geo_template.d.ts.map +1 -0
- package/dist/db/migrations/032_geo_template.js +133 -0
- package/dist/db/migrations/032_geo_template.js.map +1 -0
- package/dist/db/migrations/033_jinko_travel_template.d.ts +4 -0
- package/dist/db/migrations/033_jinko_travel_template.d.ts.map +1 -0
- package/dist/db/migrations/033_jinko_travel_template.js +126 -0
- package/dist/db/migrations/033_jinko_travel_template.js.map +1 -0
- package/dist/db/postgres-adapter.d.ts +13 -0
- package/dist/db/postgres-adapter.d.ts.map +1 -0
- package/dist/db/postgres-adapter.js +27 -0
- package/dist/db/postgres-adapter.js.map +1 -0
- package/dist/db/run-migrations.d.ts +2 -0
- package/dist/db/run-migrations.d.ts.map +1 -0
- package/dist/db/run-migrations.js +26 -0
- package/dist/db/run-migrations.js.map +1 -0
- package/dist/db/sqlite-adapter.d.ts +13 -0
- package/dist/db/sqlite-adapter.d.ts.map +1 -0
- package/dist/db/sqlite-adapter.js +29 -0
- package/dist/db/sqlite-adapter.js.map +1 -0
- package/dist/ee/litellm/litellm-key-manager.d.ts +16 -0
- package/dist/ee/litellm/litellm-key-manager.d.ts.map +1 -0
- package/dist/ee/litellm/litellm-key-manager.js +16 -0
- package/dist/ee/litellm/litellm-key-manager.js.map +1 -0
- package/dist/ee/litellm/litellm-model-seeder.d.ts +6 -0
- package/dist/ee/litellm/litellm-model-seeder.d.ts.map +1 -0
- package/dist/ee/litellm/litellm-model-seeder.js +6 -0
- package/dist/ee/litellm/litellm-model-seeder.js.map +1 -0
- package/dist/index.ce.d.ts +2 -0
- package/dist/index.ce.d.ts.map +1 -0
- package/dist/index.ce.js +12 -0
- package/dist/index.ce.js.map +1 -0
- package/dist/middleware/auth.d.ts +30 -0
- package/dist/middleware/auth.d.ts.map +1 -0
- package/dist/middleware/auth.js +86 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/dynamic-middleware.d.ts +7 -0
- package/dist/middleware/dynamic-middleware.d.ts.map +1 -0
- package/dist/middleware/dynamic-middleware.js +46 -0
- package/dist/middleware/dynamic-middleware.js.map +1 -0
- package/dist/middleware/log-redaction.d.ts +2 -0
- package/dist/middleware/log-redaction.d.ts.map +1 -0
- package/dist/middleware/log-redaction.js +56 -0
- package/dist/middleware/log-redaction.js.map +1 -0
- package/dist/routes/admin.d.ts +3 -0
- package/dist/routes/admin.d.ts.map +1 -0
- package/dist/routes/admin.js +491 -0
- package/dist/routes/admin.js.map +1 -0
- package/dist/routes/agent-types.d.ts +3 -0
- package/dist/routes/agent-types.d.ts.map +1 -0
- package/dist/routes/agent-types.js +85 -0
- package/dist/routes/agent-types.js.map +1 -0
- package/dist/routes/auth.d.ts +3 -0
- package/dist/routes/auth.d.ts.map +1 -0
- package/dist/routes/auth.js +242 -0
- package/dist/routes/auth.js.map +1 -0
- package/dist/routes/channels.d.ts +3 -0
- package/dist/routes/channels.d.ts.map +1 -0
- package/dist/routes/channels.js +527 -0
- package/dist/routes/channels.js.map +1 -0
- package/dist/routes/credentials.d.ts +3 -0
- package/dist/routes/credentials.d.ts.map +1 -0
- package/dist/routes/credentials.js +81 -0
- package/dist/routes/credentials.js.map +1 -0
- package/dist/routes/dashboard.d.ts +3 -0
- package/dist/routes/dashboard.d.ts.map +1 -0
- package/dist/routes/dashboard.js +75 -0
- package/dist/routes/dashboard.js.map +1 -0
- package/dist/routes/exec-approval.d.ts +3 -0
- package/dist/routes/exec-approval.d.ts.map +1 -0
- package/dist/routes/exec-approval.js +60 -0
- package/dist/routes/exec-approval.js.map +1 -0
- package/dist/routes/group-chats.d.ts +3 -0
- package/dist/routes/group-chats.d.ts.map +1 -0
- package/dist/routes/group-chats.js +190 -0
- package/dist/routes/group-chats.js.map +1 -0
- package/dist/routes/instance-files.d.ts +3 -0
- package/dist/routes/instance-files.d.ts.map +1 -0
- package/dist/routes/instance-files.js +255 -0
- package/dist/routes/instance-files.js.map +1 -0
- package/dist/routes/instance-proxy.d.ts +40 -0
- package/dist/routes/instance-proxy.d.ts.map +1 -0
- package/dist/routes/instance-proxy.js +318 -0
- package/dist/routes/instance-proxy.js.map +1 -0
- package/dist/routes/instances.d.ts +3 -0
- package/dist/routes/instances.d.ts.map +1 -0
- package/dist/routes/instances.js +325 -0
- package/dist/routes/instances.js.map +1 -0
- package/dist/routes/metadata.d.ts +3 -0
- package/dist/routes/metadata.d.ts.map +1 -0
- package/dist/routes/metadata.js +13 -0
- package/dist/routes/metadata.js.map +1 -0
- package/dist/routes/notifications.d.ts +3 -0
- package/dist/routes/notifications.d.ts.map +1 -0
- package/dist/routes/notifications.js +104 -0
- package/dist/routes/notifications.js.map +1 -0
- package/dist/routes/oauth.d.ts +3 -0
- package/dist/routes/oauth.d.ts.map +1 -0
- package/dist/routes/oauth.js +516 -0
- package/dist/routes/oauth.js.map +1 -0
- package/dist/routes/rpc-proxy.d.ts +3 -0
- package/dist/routes/rpc-proxy.d.ts.map +1 -0
- package/dist/routes/rpc-proxy.js +116 -0
- package/dist/routes/rpc-proxy.js.map +1 -0
- package/dist/routes/security.d.ts +3 -0
- package/dist/routes/security.d.ts.map +1 -0
- package/dist/routes/security.js +43 -0
- package/dist/routes/security.js.map +1 -0
- package/dist/routes/skills.d.ts +3 -0
- package/dist/routes/skills.d.ts.map +1 -0
- package/dist/routes/skills.js +48 -0
- package/dist/routes/skills.js.map +1 -0
- package/dist/routes/snapshots.d.ts +3 -0
- package/dist/routes/snapshots.d.ts.map +1 -0
- package/dist/routes/snapshots.js +99 -0
- package/dist/routes/snapshots.js.map +1 -0
- package/dist/routes/system-config.d.ts +3 -0
- package/dist/routes/system-config.d.ts.map +1 -0
- package/dist/routes/system-config.js +75 -0
- package/dist/routes/system-config.js.map +1 -0
- package/dist/routes/templates.d.ts +3 -0
- package/dist/routes/templates.d.ts.map +1 -0
- package/dist/routes/templates.js +256 -0
- package/dist/routes/templates.js.map +1 -0
- package/dist/routes/ui-proxy.d.ts +3 -0
- package/dist/routes/ui-proxy.d.ts.map +1 -0
- package/dist/routes/ui-proxy.js +90 -0
- package/dist/routes/ui-proxy.js.map +1 -0
- package/dist/routes/user-credentials.d.ts +3 -0
- package/dist/routes/user-credentials.d.ts.map +1 -0
- package/dist/routes/user-credentials.js +85 -0
- package/dist/routes/user-credentials.js.map +1 -0
- package/dist/routes/users.d.ts +3 -0
- package/dist/routes/users.d.ts.map +1 -0
- package/dist/routes/users.js +30 -0
- package/dist/routes/users.js.map +1 -0
- package/dist/runtime/docker.d.ts +37 -0
- package/dist/runtime/docker.d.ts.map +1 -0
- package/dist/runtime/docker.js +612 -0
- package/dist/runtime/docker.js.map +1 -0
- package/dist/runtime/factory.d.ts +4 -0
- package/dist/runtime/factory.d.ts.map +1 -0
- package/dist/runtime/factory.js +21 -0
- package/dist/runtime/factory.js.map +1 -0
- package/dist/runtime/kubernetes.d.ts +34 -0
- package/dist/runtime/kubernetes.d.ts.map +1 -0
- package/dist/runtime/kubernetes.js +513 -0
- package/dist/runtime/kubernetes.js.map +1 -0
- package/dist/runtime/types.d.ts +81 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +2 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/server-core.d.ts +26 -0
- package/dist/server-core.d.ts.map +1 -0
- package/dist/server-core.js +184 -0
- package/dist/server-core.js.map +1 -0
- package/dist/services/config-diff.d.ts +6 -0
- package/dist/services/config-diff.d.ts.map +1 -0
- package/dist/services/config-diff.js +85 -0
- package/dist/services/config-diff.js.map +1 -0
- package/dist/services/config-field-meta.d.ts +22 -0
- package/dist/services/config-field-meta.d.ts.map +1 -0
- package/dist/services/config-field-meta.js +177 -0
- package/dist/services/config-field-meta.js.map +1 -0
- package/dist/services/config-validator.d.ts +8 -0
- package/dist/services/config-validator.d.ts.map +1 -0
- package/dist/services/config-validator.js +59 -0
- package/dist/services/config-validator.js.map +1 -0
- package/dist/services/credential-audit.d.ts +13 -0
- package/dist/services/credential-audit.d.ts.map +1 -0
- package/dist/services/credential-audit.js +18 -0
- package/dist/services/credential-audit.js.map +1 -0
- package/dist/services/credential-store.d.ts +28 -0
- package/dist/services/credential-store.d.ts.map +1 -0
- package/dist/services/credential-store.js +99 -0
- package/dist/services/credential-store.js.map +1 -0
- package/dist/services/dlp-scanner.d.ts +9 -0
- package/dist/services/dlp-scanner.d.ts.map +1 -0
- package/dist/services/dlp-scanner.js +90 -0
- package/dist/services/dlp-scanner.js.map +1 -0
- package/dist/services/gateway-event-relay.d.ts +53 -0
- package/dist/services/gateway-event-relay.d.ts.map +1 -0
- package/dist/services/gateway-event-relay.js +519 -0
- package/dist/services/gateway-event-relay.js.map +1 -0
- package/dist/services/group-chat-manager.d.ts +17 -0
- package/dist/services/group-chat-manager.d.ts.map +1 -0
- package/dist/services/group-chat-manager.js +613 -0
- package/dist/services/group-chat-manager.js.map +1 -0
- package/dist/services/health-monitor.d.ts +3 -0
- package/dist/services/health-monitor.d.ts.map +1 -0
- package/dist/services/health-monitor.js +342 -0
- package/dist/services/health-monitor.js.map +1 -0
- package/dist/services/instance-manager.d.ts +20 -0
- package/dist/services/instance-manager.d.ts.map +1 -0
- package/dist/services/instance-manager.js +833 -0
- package/dist/services/instance-manager.js.map +1 -0
- package/dist/services/metadata-store.d.ts +3 -0
- package/dist/services/metadata-store.d.ts.map +1 -0
- package/dist/services/metadata-store.js +34 -0
- package/dist/services/metadata-store.js.map +1 -0
- package/dist/services/notification-store.d.ts +24 -0
- package/dist/services/notification-store.d.ts.map +1 -0
- package/dist/services/notification-store.js +216 -0
- package/dist/services/notification-store.js.map +1 -0
- package/dist/services/openrouter-models.d.ts +13 -0
- package/dist/services/openrouter-models.d.ts.map +1 -0
- package/dist/services/openrouter-models.js +46 -0
- package/dist/services/openrouter-models.js.map +1 -0
- package/dist/services/output-filter.d.ts +8 -0
- package/dist/services/output-filter.d.ts.map +1 -0
- package/dist/services/output-filter.js +230 -0
- package/dist/services/output-filter.js.map +1 -0
- package/dist/services/prompt-guard.d.ts +6 -0
- package/dist/services/prompt-guard.d.ts.map +1 -0
- package/dist/services/prompt-guard.js +165 -0
- package/dist/services/prompt-guard.js.map +1 -0
- package/dist/services/security-event-service.d.ts +11 -0
- package/dist/services/security-event-service.d.ts.map +1 -0
- package/dist/services/security-event-service.js +201 -0
- package/dist/services/security-event-service.js.map +1 -0
- package/dist/services/snapshot-store.d.ts +21 -0
- package/dist/services/snapshot-store.d.ts.map +1 -0
- package/dist/services/snapshot-store.js +330 -0
- package/dist/services/snapshot-store.js.map +1 -0
- package/dist/services/system-config.d.ts +15 -0
- package/dist/services/system-config.d.ts.map +1 -0
- package/dist/services/system-config.js +80 -0
- package/dist/services/system-config.js.map +1 -0
- package/dist/services/template-file-format.d.ts +32 -0
- package/dist/services/template-file-format.d.ts.map +1 -0
- package/dist/services/template-file-format.js +125 -0
- package/dist/services/template-file-format.js.map +1 -0
- package/dist/services/template-store.d.ts +21 -0
- package/dist/services/template-store.d.ts.map +1 -0
- package/dist/services/template-store.js +701 -0
- package/dist/services/template-store.js.map +1 -0
- package/dist/services/user-credential-store.d.ts +20 -0
- package/dist/services/user-credential-store.d.ts.map +1 -0
- package/dist/services/user-credential-store.js +243 -0
- package/dist/services/user-credential-store.js.map +1 -0
- package/dist/services/wizard-config-store.d.ts +38 -0
- package/dist/services/wizard-config-store.d.ts.map +1 -0
- package/dist/services/wizard-config-store.js +70 -0
- package/dist/services/wizard-config-store.js.map +1 -0
- package/dist/web-dist/assets/AdminPage-BrAU67Dg.js +1 -0
- package/dist/web-dist/assets/AgentAvatar-BKJckc1W.js +1 -0
- package/dist/web-dist/assets/AgentAvatar-Cq-M5jMd.css +1 -0
- package/dist/web-dist/assets/AppLayout-Bf0v_2wK.css +1 -0
- package/dist/web-dist/assets/AppLayout-DXgV0atq.js +1 -0
- package/dist/web-dist/assets/AssistantChatPage-uVLgKLay.js +6 -0
- package/dist/web-dist/assets/AssistantEditPage-Bab1X-DA.js +1 -0
- package/dist/web-dist/assets/AssistantVersionsPage-BQRw3BUF.js +1 -0
- package/dist/web-dist/assets/AvatarPicker-DmnkD8Rb.js +1 -0
- package/dist/web-dist/assets/AvatarPicker-LHUepNFa.css +1 -0
- package/dist/web-dist/assets/CeAuthProvider-38_x9VGA.js +1 -0
- package/dist/web-dist/assets/ChatHubPage-2l4cKq0x.css +1 -0
- package/dist/web-dist/assets/ChatHubPage-B2WduoUM.js +1 -0
- package/dist/web-dist/assets/ChatTab-CHpjEu8M.js +6 -0
- package/dist/web-dist/assets/CreateWizardPage-DFEQ3VX3.js +47 -0
- package/dist/web-dist/assets/CreateWizardPage-IqNXDOER.css +1 -0
- package/dist/web-dist/assets/CredentialsPage-CDeXpnLG.js +1 -0
- package/dist/web-dist/assets/CredentialsPage-aI4kLoJD.css +1 -0
- package/dist/web-dist/assets/DocsAboutPage-CMbxiw1u.js +26 -0
- package/dist/web-dist/assets/DocsChannelsPage-CtmKYKK_.js +1 -0
- package/dist/web-dist/assets/DocsGettingStartedPage-CpM7o8sw.js +1 -0
- package/dist/web-dist/assets/DocsGroupChatsPage-7w-RVSJR.js +1 -0
- package/dist/web-dist/assets/DocsHomePage-BGEU5xBg.js +1 -0
- package/dist/web-dist/assets/DocsInstancesPage-Sewnw_x7.js +1 -0
- package/dist/web-dist/assets/DocsLayout-S7-ONZwP.js +1 -0
- package/dist/web-dist/assets/DocsProvidersPage-MeWneL5K.js +1 -0
- package/dist/web-dist/assets/DocsSkillsPage-CzsHPXxE.js +1 -0
- package/dist/web-dist/assets/DocsTemplatesPage-BXASAEoO.js +1 -0
- package/dist/web-dist/assets/DocsWorkspacePage-qYNeK_YS.js +24 -0
- package/dist/web-dist/assets/ExportWizardPage-BhNvovbU.js +3 -0
- package/dist/web-dist/assets/ExportWizardPage-Cp-KSYUy.css +1 -0
- package/dist/web-dist/assets/GoogleOAuthCallback-CBvLawe2.js +1 -0
- package/dist/web-dist/assets/GroupChatPage-rMfhmtsX.js +1 -0
- package/dist/web-dist/assets/GroupChatsListPage-BOwxHFfA.js +1 -0
- package/dist/web-dist/assets/InstancePage-BBL68DKB.js +1 -0
- package/dist/web-dist/assets/InstancePage-CzysRY40.css +1 -0
- package/dist/web-dist/assets/MyAssistantsPage-B808ZfHg.css +1 -0
- package/dist/web-dist/assets/MyAssistantsPage-q3-hNMth.js +1 -0
- package/dist/web-dist/assets/ProfilePage-Dx8YdU59.js +1 -0
- package/dist/web-dist/assets/ProfilePage-JMOkUDx7.css +1 -0
- package/dist/web-dist/assets/SessionDrawer-Ba7pbZDJ.css +1 -0
- package/dist/web-dist/assets/SessionDrawer-CXzEQAfF.js +1 -0
- package/dist/web-dist/assets/SystemConfigPage-4dvxADwi.js +1 -0
- package/dist/web-dist/assets/SystemConfigPage-DRqVfLGt.css +1 -0
- package/dist/web-dist/assets/TemplatesPage-DqXuG-Gy.css +1 -0
- package/dist/web-dist/assets/TemplatesPage-HMS__ODO.js +1 -0
- package/dist/web-dist/assets/TestLoginPage-xVQL0lYP.js +1 -0
- package/dist/web-dist/assets/ThemeToggle-DymKEYXG.js +1 -0
- package/dist/web-dist/assets/WorkbenchPage-Bymo4SSt.css +1 -0
- package/dist/web-dist/assets/WorkbenchPage-ST3hVrbL.js +33 -0
- package/dist/web-dist/assets/api-B5psysvQ.js +1 -0
- package/dist/web-dist/assets/clock-dRyRszad.js +1 -0
- package/dist/web-dist/assets/createLucideIcon-DiGX-lN4.js +1 -0
- package/dist/web-dist/assets/group-chat-9BaA9G_8.css +1 -0
- package/dist/web-dist/assets/index-BqzqZJ96.js +26 -0
- package/dist/web-dist/assets/index-DyrDN1Of.css +1 -0
- package/dist/web-dist/assets/index-wWimwgy7.js +1 -0
- package/dist/web-dist/assets/provider-display-BgrE7u33.js +1 -0
- package/dist/web-dist/assets/types-1lNWpzYk.js +57 -0
- package/dist/web-dist/assets/types-B6ttO-6G.css +1 -0
- package/dist/web-dist/assets/useTranslation-B-8kenfJ.js +1 -0
- package/dist/web-dist/assets/zap-CVBnETFW.js +1 -0
- package/dist/web-dist/index.html +31 -0
- package/dist/web-dist/vite.svg +1 -0
- package/dist/ws/index.d.ts +7 -0
- package/dist/ws/index.d.ts.map +1 -0
- package/dist/ws/index.js +112 -0
- package/dist/ws/index.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"030_extend_notification_types.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/030_extend_notification_types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CASlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CASpD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { addCheckConstraint, dropConstraint } from '../migration-helpers.js';
|
|
2
|
+
export async function up(knex) {
|
|
3
|
+
await dropConstraint(knex, 'notifications', 'chk_notification_type');
|
|
4
|
+
await addCheckConstraint(knex, 'notifications', 'chk_notification_type', "type IN ('budget_warning', 'budget_critical', 'budget_exhausted', 'burn_rate_spike', 'instance_stopped', 'daily_digest', 'security_audit', 'config_integrity', 'skill_plugin_change', 'dlp_alert')");
|
|
5
|
+
}
|
|
6
|
+
export async function down(knex) {
|
|
7
|
+
await dropConstraint(knex, 'notifications', 'chk_notification_type');
|
|
8
|
+
await addCheckConstraint(knex, 'notifications', 'chk_notification_type', "type IN ('budget_warning', 'budget_critical', 'budget_exhausted', 'burn_rate_spike', 'instance_stopped', 'daily_digest')");
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=030_extend_notification_types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"030_extend_notification_types.js","sourceRoot":"","sources":["../../../src/db/migrations/030_extend_notification_types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE7E,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,MAAM,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,uBAAuB,CAAC,CAAC;IAErE,MAAM,kBAAkB,CACtB,IAAI,EACJ,eAAe,EACf,uBAAuB,EACvB,oMAAoM,CACrM,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,MAAM,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,uBAAuB,CAAC,CAAC;IAErE,MAAM,kBAAkB,CACtB,IAAI,EACJ,eAAe,EACf,uBAAuB,EACvB,0HAA0H,CAC3H,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Knex } from 'knex';
|
|
2
|
+
/**
|
|
3
|
+
* 'standard' profile disables bundled skills, plugins, and coding tools —
|
|
4
|
+
* too restrictive for most use cases. Switch default to 'developer' and
|
|
5
|
+
* migrate existing 'standard' instances so they get full tool/skill access.
|
|
6
|
+
*/
|
|
7
|
+
export declare function up(knex: Knex): Promise<void>;
|
|
8
|
+
export declare function down(knex: Knex): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=031_default_security_profile_developer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"031_default_security_profile_developer.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/031_default_security_profile_developer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC;;;;GAIG;AACH,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { addCheckConstraint, dropConstraint } from '../migration-helpers.js';
|
|
2
|
+
/**
|
|
3
|
+
* 'standard' profile disables bundled skills, plugins, and coding tools —
|
|
4
|
+
* too restrictive for most use cases. Switch default to 'developer' and
|
|
5
|
+
* migrate existing 'standard' instances so they get full tool/skill access.
|
|
6
|
+
*/
|
|
7
|
+
export async function up(knex) {
|
|
8
|
+
await knex('instances')
|
|
9
|
+
.where('security_profile', 'standard')
|
|
10
|
+
.update({ security_profile: 'developer' });
|
|
11
|
+
await knex.schema.alterTable('instances', (t) => {
|
|
12
|
+
t.string('security_profile', 20).notNullable().defaultTo('developer').alter();
|
|
13
|
+
});
|
|
14
|
+
await dropConstraint(knex, 'instances', 'chk_security_profile');
|
|
15
|
+
await addCheckConstraint(knex, 'instances', 'chk_security_profile', "security_profile IN ('strict','standard','developer','unrestricted')");
|
|
16
|
+
}
|
|
17
|
+
export async function down(knex) {
|
|
18
|
+
await knex.schema.alterTable('instances', (t) => {
|
|
19
|
+
t.string('security_profile', 20).notNullable().defaultTo('standard').alter();
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=031_default_security_profile_developer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"031_default_security_profile_developer.js","sourceRoot":"","sources":["../../../src/db/migrations/031_default_security_profile_developer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE7E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,MAAM,IAAI,CAAC,WAAW,CAAC;SACpB,KAAK,CAAC,kBAAkB,EAAE,UAAU,CAAC;SACrC,MAAM,CAAC,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC,CAAC;IAE7C,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;QAC9C,CAAC,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAChE,MAAM,kBAAkB,CACtB,IAAI,EACJ,WAAW,EACX,sBAAsB,EACtB,sEAAsE,CACvE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;QAC9C,CAAC,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;IAC/E,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"032_geo_template.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/032_geo_template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAsFjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAyClD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CASpD"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
const GEO_TEMPLATE = {
|
|
2
|
+
slug: 'geo-brand-assistant',
|
|
3
|
+
name: 'GEO Brand Assistant',
|
|
4
|
+
description: 'AI-powered brand intelligence assistant that monitors your brand visibility across ChatGPT, Perplexity, Gemini, and other AI platforms. Track mention rates, link rates, and visibility scores in real time.',
|
|
5
|
+
category: 'data-analysis',
|
|
6
|
+
tags: JSON.stringify(['GEO', 'brand', 'analytics', 'AI visibility', 'SEO']),
|
|
7
|
+
locale: 'en-US',
|
|
8
|
+
license: 'public',
|
|
9
|
+
trust_level: 'official',
|
|
10
|
+
billing_mode: 'platform',
|
|
11
|
+
agent_type: 'openclaw',
|
|
12
|
+
required_credentials: JSON.stringify([
|
|
13
|
+
{
|
|
14
|
+
provider: 'salevoice',
|
|
15
|
+
credentialType: 'api_key',
|
|
16
|
+
description: 'SaleVoice API Key — get it from app.salevoice.ai',
|
|
17
|
+
required: true,
|
|
18
|
+
},
|
|
19
|
+
]),
|
|
20
|
+
mcp_servers: JSON.stringify({
|
|
21
|
+
'geo-mcp': {
|
|
22
|
+
name: 'GEO MCP Server',
|
|
23
|
+
description: 'SaleVoice GEO brand intelligence MCP server',
|
|
24
|
+
url: 'https://api.salevoice.ai/mcp',
|
|
25
|
+
transport: 'sse',
|
|
26
|
+
headers: { Authorization: 'Bearer ${CREDENTIAL:salevoice:api_key}' },
|
|
27
|
+
env: {},
|
|
28
|
+
},
|
|
29
|
+
}),
|
|
30
|
+
skills: JSON.stringify([]),
|
|
31
|
+
suggested_channels: JSON.stringify([]),
|
|
32
|
+
workspaceFiles: {
|
|
33
|
+
'SOUL.md': `# Soul
|
|
34
|
+
|
|
35
|
+
You are a GEO (Generative Engine Optimization) brand intelligence analyst. Your job is to help users understand how their brands perform across AI platforms like ChatGPT, Perplexity, Gemini, and Google AI Overviews.
|
|
36
|
+
|
|
37
|
+
## Core Principles
|
|
38
|
+
|
|
39
|
+
- Always ground your analysis in real data from the GEO tools — never fabricate numbers
|
|
40
|
+
- Present data clearly with context: what changed, why it matters, and what to do next
|
|
41
|
+
- When a user asks about a brand, start by listing available brands, then drill into the one they care about
|
|
42
|
+
- Proactively surface interesting trends — sudden drops in mention rate, new competitors appearing, link rate changes
|
|
43
|
+
- Be concise and actionable — executives read your output
|
|
44
|
+
|
|
45
|
+
## Workflow
|
|
46
|
+
|
|
47
|
+
1. If the user hasn't specified a brand, call \`geo_list_brands\` to show what's available
|
|
48
|
+
2. Use \`geo_brand_overview\` to get the current snapshot (mention rate, link rate, visibility score)
|
|
49
|
+
3. Use \`geo_brand_analytics\` to show trends over time when the user asks about changes or performance history
|
|
50
|
+
4. Synthesize the data into plain-language insights with specific recommendations
|
|
51
|
+
`,
|
|
52
|
+
'IDENTITY.md': `# Identity
|
|
53
|
+
|
|
54
|
+
- Name: GEO Brand Analyst
|
|
55
|
+
- Language: English (also supports Chinese)
|
|
56
|
+
- Personality: Data-driven, concise, proactive
|
|
57
|
+
- Role: Brand intelligence analyst specializing in AI search visibility
|
|
58
|
+
`,
|
|
59
|
+
'AGENTS.md': `# Agents Configuration
|
|
60
|
+
|
|
61
|
+
## Default Agent
|
|
62
|
+
- Model: Use platform default
|
|
63
|
+
- Purpose: GEO brand intelligence analysis and reporting
|
|
64
|
+
`,
|
|
65
|
+
'TOOLS.md': `# Tools
|
|
66
|
+
|
|
67
|
+
This agent connects to the SaleVoice GEO MCP server and has access to the following tools:
|
|
68
|
+
|
|
69
|
+
## geo_list_brands
|
|
70
|
+
List all brands in the current workspace. Use this first to discover which brands are available for analysis.
|
|
71
|
+
|
|
72
|
+
## geo_brand_overview
|
|
73
|
+
Get a brand's current visibility snapshot including:
|
|
74
|
+
- **Mention Rate**: How often AI platforms mention the brand
|
|
75
|
+
- **Link Rate**: How often AI platforms link to the brand's website
|
|
76
|
+
- **Visibility Score**: Composite score across all tracked AI platforms
|
|
77
|
+
|
|
78
|
+
## geo_brand_analytics
|
|
79
|
+
Get historical analytics for a brand over a time range. Use this to identify trends, compare periods, and spot anomalies in AI visibility data.
|
|
80
|
+
`,
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
export async function up(knex) {
|
|
84
|
+
const firstUser = await knex('users')
|
|
85
|
+
.select('id', 'display_name')
|
|
86
|
+
.orderBy('created_at', 'asc')
|
|
87
|
+
.first();
|
|
88
|
+
if (!firstUser)
|
|
89
|
+
return;
|
|
90
|
+
const existing = await knex('templates')
|
|
91
|
+
.where({ slug: GEO_TEMPLATE.slug, is_latest: true })
|
|
92
|
+
.first();
|
|
93
|
+
if (existing)
|
|
94
|
+
return;
|
|
95
|
+
const { workspaceFiles, ...manifest } = GEO_TEMPLATE;
|
|
96
|
+
const [row] = await knex('templates')
|
|
97
|
+
.insert({
|
|
98
|
+
...manifest,
|
|
99
|
+
author_id: firstUser.id,
|
|
100
|
+
author_name: firstUser.display_name,
|
|
101
|
+
})
|
|
102
|
+
.returning('id');
|
|
103
|
+
await knex('template_contents').insert({
|
|
104
|
+
template_id: row.id,
|
|
105
|
+
workspace_files: JSON.stringify(workspaceFiles),
|
|
106
|
+
mcp_server_configs: JSON.stringify({
|
|
107
|
+
'geo-mcp': {
|
|
108
|
+
command: 'npx',
|
|
109
|
+
args: [
|
|
110
|
+
'-y', 'mcp-remote',
|
|
111
|
+
'https://api.salevoice.ai/mcp',
|
|
112
|
+
'--header',
|
|
113
|
+
'Authorization:Bearer ${CREDENTIAL:salevoice:api_key}',
|
|
114
|
+
],
|
|
115
|
+
},
|
|
116
|
+
}),
|
|
117
|
+
inline_skills: JSON.stringify({}),
|
|
118
|
+
openclaw_config: JSON.stringify({}),
|
|
119
|
+
setup_commands: JSON.stringify([]),
|
|
120
|
+
custom_image: null,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
export async function down(knex) {
|
|
124
|
+
const templates = await knex('templates')
|
|
125
|
+
.where({ slug: GEO_TEMPLATE.slug })
|
|
126
|
+
.select('id');
|
|
127
|
+
const ids = templates.map((t) => t.id);
|
|
128
|
+
if (ids.length > 0) {
|
|
129
|
+
await knex('template_contents').whereIn('template_id', ids).delete();
|
|
130
|
+
await knex('templates').whereIn('id', ids).delete();
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=032_geo_template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"032_geo_template.js","sourceRoot":"","sources":["../../../src/db/migrations/032_geo_template.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"033_jinko_travel_template.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/033_jinko_travel_template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAyFjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CASpD"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
const JINKO_TEMPLATE = {
|
|
2
|
+
slug: 'jinko-travel-assistant',
|
|
3
|
+
name: 'Jinko Travel Assistant',
|
|
4
|
+
description: 'AI-powered travel assistant that searches flights, compares prices, plans trips, and books tickets using the Jinko flight search API. Supports destination discovery, flexible date calendars, and end-to-end booking.',
|
|
5
|
+
category: 'travel',
|
|
6
|
+
tags: JSON.stringify(['travel', 'flights', 'booking', 'trip planning', 'Jinko']),
|
|
7
|
+
locale: 'en-US',
|
|
8
|
+
license: 'public',
|
|
9
|
+
trust_level: 'official',
|
|
10
|
+
billing_mode: 'platform',
|
|
11
|
+
agent_type: 'openclaw',
|
|
12
|
+
required_credentials: JSON.stringify([
|
|
13
|
+
{
|
|
14
|
+
provider: 'jinko',
|
|
15
|
+
credentialType: 'api_key',
|
|
16
|
+
description: 'Jinko API Key (jnk_...) — get from builders.gojinko.com',
|
|
17
|
+
required: true,
|
|
18
|
+
},
|
|
19
|
+
]),
|
|
20
|
+
mcp_servers: JSON.stringify({
|
|
21
|
+
jinko: {
|
|
22
|
+
name: 'Jinko Travel MCP',
|
|
23
|
+
description: 'Jinko flight search, booking, and trip planning MCP server',
|
|
24
|
+
url: 'https://mcp.builders.gojinko.com/mcp',
|
|
25
|
+
headers: { Authorization: 'Bearer ${CREDENTIAL:jinko:api_key}' },
|
|
26
|
+
env: {},
|
|
27
|
+
},
|
|
28
|
+
}),
|
|
29
|
+
skills: JSON.stringify([]),
|
|
30
|
+
suggested_channels: JSON.stringify([]),
|
|
31
|
+
workspaceFiles: {
|
|
32
|
+
'SOUL.md': `# Soul
|
|
33
|
+
|
|
34
|
+
You are a travel assistant specializing in flight search and trip planning. Your job is to help users find the best flights, compare prices across dates, plan multi-leg trips, and book tickets.
|
|
35
|
+
|
|
36
|
+
## Core Principles
|
|
37
|
+
|
|
38
|
+
- Always use the Jinko tools to search for real flight data — never fabricate prices or schedules
|
|
39
|
+
- Present flight options clearly: airline, times, duration, stops, and price
|
|
40
|
+
- When a user is flexible on dates, use the flight calendar to show price trends across a date range
|
|
41
|
+
- Proactively suggest alternatives: nearby airports, flexible dates, different cabin classes
|
|
42
|
+
- Confirm all booking details with the user before calling the book tool
|
|
43
|
+
|
|
44
|
+
## Workflow
|
|
45
|
+
|
|
46
|
+
1. If the user hasn't specified a destination, use \`find_destination\` to help them discover options by keyword
|
|
47
|
+
2. Use \`find_flight\` for cached route searches or \`flight_calendar\` for flexible date price comparison
|
|
48
|
+
3. Use \`flight_search\` to get live pricing — either by route + date or with an offer_token from step 2
|
|
49
|
+
4. Use \`trip\` to create an itinerary, add flight items, and set traveler details
|
|
50
|
+
5. Use \`book\` only after the user explicitly confirms they want to proceed with booking
|
|
51
|
+
`,
|
|
52
|
+
'IDENTITY.md': `# Identity
|
|
53
|
+
|
|
54
|
+
- Name: Travel Assistant
|
|
55
|
+
- Language: English (also supports Chinese)
|
|
56
|
+
- Personality: Helpful, thorough, price-conscious
|
|
57
|
+
- Role: Travel booking specialist powered by Jinko flight data
|
|
58
|
+
`,
|
|
59
|
+
'TOOLS.md': `# Tools
|
|
60
|
+
|
|
61
|
+
This agent connects to the Jinko Travel MCP server and has access to the following tools:
|
|
62
|
+
|
|
63
|
+
## find_destination
|
|
64
|
+
Discover travel destinations accessible from departure airports. Returns destinations sorted by cheapest available flight with offer_tokens. Use this when the user wants to explore where they can fly from a given origin.
|
|
65
|
+
|
|
66
|
+
## flight_calendar
|
|
67
|
+
Show cheapest flight prices across a date range for a specific route. Use this when the user has flexible travel dates and wants to find the cheapest day to fly. Returns daily lowest prices with offer_tokens for each entry.
|
|
68
|
+
|
|
69
|
+
## find_flight
|
|
70
|
+
Search cached flight data for a specific route. Returns flights with offer_tokens that can be used with flight_search for live pricing. Supports filtering by dates, cabin class, stops, and price.
|
|
71
|
+
|
|
72
|
+
## flight_search
|
|
73
|
+
Get live flight pricing and fare options directly from airlines. Dual-mode:
|
|
74
|
+
- **Search mode** (origin + destination + departure_date): Live search returning real-time availability and pricing.
|
|
75
|
+
- **Price-check mode** (offer_token): Get detailed fare breakdown for a specific flight from find_flight or flight_calendar results.
|
|
76
|
+
Returns fare options with price breakdown, baggage rules, and trip_item_tokens for the trip tool.
|
|
77
|
+
|
|
78
|
+
## trip
|
|
79
|
+
Create and manage a trip: add flight items and set traveler details. Use trip_item_tokens from flight_search results. Set passenger info (name, date of birth, gender) and contact details. Returns a trip_id for booking.
|
|
80
|
+
|
|
81
|
+
## book
|
|
82
|
+
Get a checkout URL for a trip. IMPORTANT: Only call this after the user has explicitly confirmed they want to proceed. The trip must have flight items and travelers set. Returns a checkout_url that the user opens in a browser to complete payment via Stripe.
|
|
83
|
+
`,
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
export async function up(knex) {
|
|
87
|
+
const firstUser = await knex('users')
|
|
88
|
+
.select('id', 'display_name')
|
|
89
|
+
.orderBy('created_at', 'asc')
|
|
90
|
+
.first();
|
|
91
|
+
if (!firstUser)
|
|
92
|
+
return;
|
|
93
|
+
const existing = await knex('templates')
|
|
94
|
+
.where({ slug: JINKO_TEMPLATE.slug, is_latest: true })
|
|
95
|
+
.first();
|
|
96
|
+
if (existing)
|
|
97
|
+
return;
|
|
98
|
+
const { workspaceFiles, ...manifest } = JINKO_TEMPLATE;
|
|
99
|
+
const [row] = await knex('templates')
|
|
100
|
+
.insert({
|
|
101
|
+
...manifest,
|
|
102
|
+
author_id: firstUser.id,
|
|
103
|
+
author_name: firstUser.display_name,
|
|
104
|
+
})
|
|
105
|
+
.returning('id');
|
|
106
|
+
await knex('template_contents').insert({
|
|
107
|
+
template_id: row.id,
|
|
108
|
+
workspace_files: JSON.stringify(workspaceFiles),
|
|
109
|
+
mcp_server_configs: JSON.stringify({}),
|
|
110
|
+
inline_skills: JSON.stringify({}),
|
|
111
|
+
openclaw_config: JSON.stringify({}),
|
|
112
|
+
setup_commands: JSON.stringify([]),
|
|
113
|
+
custom_image: null,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
export async function down(knex) {
|
|
117
|
+
const templates = await knex('templates')
|
|
118
|
+
.where({ slug: JINKO_TEMPLATE.slug })
|
|
119
|
+
.select('id');
|
|
120
|
+
const ids = templates.map((t) => t.id);
|
|
121
|
+
if (ids.length > 0) {
|
|
122
|
+
await knex('template_contents').whereIn('template_id', ids).delete();
|
|
123
|
+
await knex('templates').whereIn('id', ids).delete();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=033_jinko_travel_template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"033_jinko_travel_template.js","sourceRoot":"","sources":["../../../src/db/migrations/033_jinko_travel_template.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Knex } from 'knex';
|
|
2
|
+
import type { DbAdapter } from './adapter.js';
|
|
3
|
+
export declare class PostgresAdapter implements DbAdapter {
|
|
4
|
+
readonly dialect: "pg";
|
|
5
|
+
generateId(): string;
|
|
6
|
+
jsonValue(val: unknown): string;
|
|
7
|
+
parseJson<T>(val: unknown): T;
|
|
8
|
+
uuidColumnType(): 'uuid' | 'string';
|
|
9
|
+
uuidDefault(knex: Knex): Knex.Raw | null;
|
|
10
|
+
intervalAgo(knex: Knex, amount: number, unit: 'days' | 'hours' | 'minutes'): Knex.Raw;
|
|
11
|
+
jsonExtract(knex: Knex, column: string, key: string): Knex.Raw;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=postgres-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-adapter.d.ts","sourceRoot":"","sources":["../../src/db/postgres-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,qBAAa,eAAgB,YAAW,SAAS;IAC/C,QAAQ,CAAC,OAAO,EAAG,IAAI,CAAU;IAEjC,UAAU,IAAI,MAAM;IAIpB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;IAI/B,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,CAAC;IAK7B,cAAc,IAAI,MAAM,GAAG,QAAQ;IAInC,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI;IAIxC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG;IAIrF,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG;CAG/D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
export class PostgresAdapter {
|
|
3
|
+
dialect = 'pg';
|
|
4
|
+
generateId() {
|
|
5
|
+
return randomUUID();
|
|
6
|
+
}
|
|
7
|
+
jsonValue(val) {
|
|
8
|
+
return JSON.stringify(val);
|
|
9
|
+
}
|
|
10
|
+
parseJson(val) {
|
|
11
|
+
// Postgres driver returns parsed objects from jsonb columns
|
|
12
|
+
return val;
|
|
13
|
+
}
|
|
14
|
+
uuidColumnType() {
|
|
15
|
+
return 'uuid';
|
|
16
|
+
}
|
|
17
|
+
uuidDefault(knex) {
|
|
18
|
+
return knex.raw('gen_random_uuid()');
|
|
19
|
+
}
|
|
20
|
+
intervalAgo(knex, amount, unit) {
|
|
21
|
+
return knex.raw(`now() - interval '${amount} ${unit}'`);
|
|
22
|
+
}
|
|
23
|
+
jsonExtract(knex, column, key) {
|
|
24
|
+
return knex.raw('??->>?', [column, key]);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=postgres-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-adapter.js","sourceRoot":"","sources":["../../src/db/postgres-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,MAAM,OAAO,eAAe;IACjB,OAAO,GAAG,IAAa,CAAC;IAEjC,UAAU;QACR,OAAO,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,GAAY;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS,CAAI,GAAY;QACvB,4DAA4D;QAC5D,OAAO,GAAQ,CAAC;IAClB,CAAC;IAED,cAAc;QACZ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,IAAU;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,WAAW,CAAC,IAAU,EAAE,MAAc,EAAE,IAAkC;QACxE,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED,WAAW,CAAC,IAAU,EAAE,MAAc,EAAE,GAAW;QACjD,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-migrations.d.ts","sourceRoot":"","sources":["../../src/db/run-migrations.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { fileURLToPath } from 'url';
|
|
2
|
+
import { db } from './index.js';
|
|
3
|
+
async function runMigrations() {
|
|
4
|
+
try {
|
|
5
|
+
const [batch, log] = await db.migrate.latest({
|
|
6
|
+
directory: fileURLToPath(new URL('./migrations', import.meta.url)),
|
|
7
|
+
loadExtensions: ['.ts'],
|
|
8
|
+
});
|
|
9
|
+
if (log.length === 0) {
|
|
10
|
+
console.log('Already up to date');
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
console.log(`Batch ${batch} run: ${log.length} migrations`);
|
|
14
|
+
console.log(log.join('\n'));
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
console.error('Migration failed:', err);
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
21
|
+
finally {
|
|
22
|
+
await db.destroy();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
runMigrations();
|
|
26
|
+
//# sourceMappingURL=run-migrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-migrations.js","sourceRoot":"","sources":["../../src/db/run-migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC,KAAK,UAAU,aAAa;IAC1B,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;YAC3C,SAAS,EAAE,aAAa,CAAC,IAAI,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClE,cAAc,EAAE,CAAC,KAAK,CAAC;SACxB,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,GAAG,CAAC,MAAM,aAAa,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC;AACH,CAAC;AAED,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Knex } from 'knex';
|
|
2
|
+
import type { DbAdapter } from './adapter.js';
|
|
3
|
+
export declare class SqliteAdapter implements DbAdapter {
|
|
4
|
+
readonly dialect: "sqlite";
|
|
5
|
+
generateId(): string;
|
|
6
|
+
jsonValue(val: unknown): string;
|
|
7
|
+
parseJson<T>(val: unknown): T;
|
|
8
|
+
uuidColumnType(): 'uuid' | 'string';
|
|
9
|
+
uuidDefault(_knex: Knex): Knex.Raw | null;
|
|
10
|
+
intervalAgo(knex: Knex, amount: number, unit: 'days' | 'hours' | 'minutes'): Knex.Raw;
|
|
11
|
+
jsonExtract(knex: Knex, column: string, key: string): Knex.Raw;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=sqlite-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-adapter.d.ts","sourceRoot":"","sources":["../../src/db/sqlite-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,qBAAa,aAAc,YAAW,SAAS;IAC7C,QAAQ,CAAC,OAAO,EAAG,QAAQ,CAAU;IAErC,UAAU,IAAI,MAAM;IAIpB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;IAI/B,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,CAAC;IAO7B,cAAc,IAAI,MAAM,GAAG,QAAQ;IAInC,WAAW,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI;IAIzC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG;IAIrF,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG;CAG/D"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
export class SqliteAdapter {
|
|
3
|
+
dialect = 'sqlite';
|
|
4
|
+
generateId() {
|
|
5
|
+
return randomUUID();
|
|
6
|
+
}
|
|
7
|
+
jsonValue(val) {
|
|
8
|
+
return JSON.stringify(val);
|
|
9
|
+
}
|
|
10
|
+
parseJson(val) {
|
|
11
|
+
if (typeof val === 'string') {
|
|
12
|
+
return JSON.parse(val);
|
|
13
|
+
}
|
|
14
|
+
return val;
|
|
15
|
+
}
|
|
16
|
+
uuidColumnType() {
|
|
17
|
+
return 'string';
|
|
18
|
+
}
|
|
19
|
+
uuidDefault(_knex) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
intervalAgo(knex, amount, unit) {
|
|
23
|
+
return knex.raw("datetime('now', ?)", [`-${amount} ${unit}`]);
|
|
24
|
+
}
|
|
25
|
+
jsonExtract(knex, column, key) {
|
|
26
|
+
return knex.raw('json_extract(??, ?)', [column, `$.${key}`]);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=sqlite-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-adapter.js","sourceRoot":"","sources":["../../src/db/sqlite-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,MAAM,OAAO,aAAa;IACf,OAAO,GAAG,QAAiB,CAAC;IAErC,UAAU;QACR,OAAO,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,GAAY;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS,CAAI,GAAY;QACvB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;QAC9B,CAAC;QACD,OAAO,GAAQ,CAAC;IAClB,CAAC;IAED,cAAc;QACZ,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,WAAW,CAAC,KAAW;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,IAAU,EAAE,MAAc,EAAE,IAAkC;QACxE,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,WAAW,CAAC,IAAU,EAAE,MAAc,EAAE,GAAW;QACjD,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,MAAM,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CE stub — LiteLLM key management is an EE-only feature.
|
|
3
|
+
* These methods are no-ops in CE mode; platform billing mode is disabled.
|
|
4
|
+
*/
|
|
5
|
+
export declare const litellmKeyManager: {
|
|
6
|
+
createKeyForInstance(_params: {
|
|
7
|
+
instanceId: string;
|
|
8
|
+
userId: string;
|
|
9
|
+
userEmail: string;
|
|
10
|
+
}): Promise<{
|
|
11
|
+
virtualKey: string;
|
|
12
|
+
}>;
|
|
13
|
+
revokeKeyForInstance(_instanceId: string): Promise<void>;
|
|
14
|
+
syncUserBudgetToTeam(_userId: string, _usageLimitUsd: number | null): Promise<void>;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=litellm-key-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"litellm-key-manager.d.ts","sourceRoot":"","sources":["../../../src/ee/litellm/litellm-key-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,iBAAiB;kCACQ;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;sCAGvF,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;kCAG1B,MAAM,kBAAkB,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1F,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CE stub — LiteLLM key management is an EE-only feature.
|
|
3
|
+
* These methods are no-ops in CE mode; platform billing mode is disabled.
|
|
4
|
+
*/
|
|
5
|
+
export const litellmKeyManager = {
|
|
6
|
+
async createKeyForInstance(_params) {
|
|
7
|
+
return { virtualKey: '' };
|
|
8
|
+
},
|
|
9
|
+
async revokeKeyForInstance(_instanceId) {
|
|
10
|
+
// no-op in CE
|
|
11
|
+
},
|
|
12
|
+
async syncUserBudgetToTeam(_userId, _usageLimitUsd) {
|
|
13
|
+
// no-op in CE
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=litellm-key-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"litellm-key-manager.js","sourceRoot":"","sources":["../../../src/ee/litellm/litellm-key-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,KAAK,CAAC,oBAAoB,CAAC,OAAkE;QAC3F,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAC5B,CAAC;IACD,KAAK,CAAC,oBAAoB,CAAC,WAAmB;QAC5C,cAAc;IAChB,CAAC;IACD,KAAK,CAAC,oBAAoB,CAAC,OAAe,EAAE,cAA6B;QACvE,cAAc;IAChB,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"litellm-model-seeder.d.ts","sourceRoot":"","sources":["../../../src/ee/litellm/litellm-model-seeder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"litellm-model-seeder.js","sourceRoot":"","sources":["../../../src/ee/litellm/litellm-model-seeder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.ce.d.ts","sourceRoot":"","sources":["../src/index.ce.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC"}
|
package/dist/index.ce.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import 'dotenv/config';
|
|
2
|
+
import { installLogRedaction } from './middleware/log-redaction.js';
|
|
3
|
+
installLogRedaction();
|
|
4
|
+
import { createApp, startServer } from './server-core.js';
|
|
5
|
+
import instanceProxyRoutes from './routes/instance-proxy.js';
|
|
6
|
+
const { app, server } = createApp({
|
|
7
|
+
// CE: no Clerk CSP domains, no-op token verifier (uses cookie/JWT auth)
|
|
8
|
+
});
|
|
9
|
+
// Instance proxy catch-all (must be last under /api/instances)
|
|
10
|
+
app.use('/api/instances', instanceProxyRoutes);
|
|
11
|
+
await startServer(server);
|
|
12
|
+
//# sourceMappingURL=index.ce.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.ce.js","sourceRoot":"","sources":["../src/index.ce.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,mBAAmB,EAAE,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,mBAAmB,MAAM,4BAA4B,CAAC;AAE7D,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;AAChC,wEAAwE;CACzE,CAAC,CAAC;AAEH,+DAA+D;AAC/D,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;AAE/C,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Request, Response, NextFunction } from 'express';
|
|
2
|
+
export interface AuthPayload {
|
|
3
|
+
userId: string;
|
|
4
|
+
email: string;
|
|
5
|
+
}
|
|
6
|
+
declare global {
|
|
7
|
+
namespace Express {
|
|
8
|
+
interface Request {
|
|
9
|
+
auth?: AuthPayload;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
type AuthHandler = (req: Request, res: Response, next: NextFunction) => void;
|
|
14
|
+
/**
|
|
15
|
+
* Register a custom auth handler (used by EE entry to plug in Clerk auth).
|
|
16
|
+
* CE mode never calls this — routes are open for the single local user.
|
|
17
|
+
*/
|
|
18
|
+
export declare function setAuthHandler(handler: AuthHandler): void;
|
|
19
|
+
/**
|
|
20
|
+
* Shared requireAuth middleware — pluggable between CE and EE.
|
|
21
|
+
*
|
|
22
|
+
* Flow:
|
|
23
|
+
* - Test mode (NODE_ENV=test or no Clerk secret): test cookie → OK; no cookie + no handler → pass-through (CE); no cookie + handler → reject (EE test)
|
|
24
|
+
* - Production CE (no Clerk secret key): no handler registered → pass-through (open access)
|
|
25
|
+
* - Production EE (Clerk secret present): delegate to registered Clerk auth handler
|
|
26
|
+
*/
|
|
27
|
+
export declare function requireAuth(req: Request, res: Response, next: NextFunction): void;
|
|
28
|
+
export declare function requireAdmin(req: Request, res: Response, next: NextFunction): void;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=auth.d.ts.map
|