manifest 5.28.1 → 5.28.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/README.md +1 -9
  2. package/dist/backend/analytics/controllers/agent-analytics.controller.js +0 -2
  3. package/dist/backend/analytics/controllers/agents.controller.js +0 -2
  4. package/dist/backend/auth/auth.instance.js +0 -10
  5. package/dist/backend/database/local-bootstrap.service.js +0 -2
  6. package/dist/backend/health/health.controller.js +0 -2
  7. package/dist/backend/main.js +1 -1
  8. package/dist/backend/otlp/otlp.controller.js +0 -7
  9. package/dist/backend/routing/proxy/proxy.controller.js +1 -7
  10. package/dist/backend/routing/resolve.controller.js +0 -4
  11. package/dist/backend/routing/routing.controller.js +0 -7
  12. package/dist/index.js +15 -15
  13. package/dist/index.js.map +4 -4
  14. package/dist/local-mode.js +1 -1
  15. package/dist/openclaw.plugin.json +3 -3
  16. package/dist/server.js +0 -3
  17. package/openclaw.plugin.json +3 -3
  18. package/package.json +1 -1
  19. package/public/assets/{Account-lMoZskop.js → Account-BAE8eRcJ.js} +1 -1
  20. package/public/assets/{Limits-B-6iTyQT.js → Limits-CqQQ_3K0.js} +1 -1
  21. package/public/assets/{Login-DCJ6baks.js → Login-QaFynG2U.js} +1 -1
  22. package/public/assets/{MessageLog-WSu2aiYt.js → MessageLog-DQphxL5q.js} +1 -1
  23. package/public/assets/{ModelPrices-COnpiTsJ.js → ModelPrices-C0TBirFC.js} +1 -1
  24. package/public/assets/{Overview-BFROKNs8.js → Overview-NS_yOL6z.js} +1 -1
  25. package/public/assets/{Register-BRjUN5YN.js → Register-D9NcEgwm.js} +1 -1
  26. package/public/assets/{ResetPassword-ChtceLPF.js → ResetPassword-BopGZ9WZ.js} +1 -1
  27. package/public/assets/{Routing-CtIaVTz0.js → Routing-Cai7oclw.js} +1 -1
  28. package/public/assets/{Settings-DRSVp3Qa.js → Settings-DPQF7HQI.js} +1 -1
  29. package/public/assets/{SocialButtons-CHClLuQb.js → SocialButtons-D9y2Be-U.js} +1 -1
  30. package/public/assets/index-D0vjJLh-.js +2 -0
  31. package/public/assets/{model-display-CLqbKFOT.js → model-display-D6Z8peXf.js} +1 -1
  32. package/public/assets/{overview-NV8VepBt.js → overview-DWB5XRs3.js} +1 -1
  33. package/public/index.html +1 -1
  34. package/skills/manifest/SKILL.md +85 -79
  35. package/dist/backend/common/utils/posthog-sender.js +0 -19
  36. package/dist/backend/common/utils/product-telemetry.js +0 -55
  37. package/public/assets/index-CP_42-of.js +0 -2
package/README.md CHANGED
@@ -108,15 +108,7 @@ tailscale serve --bg 2099
108
108
 
109
109
  **In cloud mode, the blind proxy physically cannot read your prompts.** This is fundamentally different from services saying "trust us."
110
110
 
111
- The only thing Manifest collects is anonymous product analytics (hashed machine ID, OS platform, package version, event names) to help improve the project. No personally identifiable information or agent data is included.
112
-
113
- **Opting out:**
114
-
115
- ```bash
116
- MANIFEST_TELEMETRY_OPTOUT=1
117
- ```
118
-
119
- Or add `"telemetryOptOut": true` to `~/.openclaw/manifest/config.json`.
111
+ In local mode, all Manifest data stays on your machine. No analytics or telemetry data is sent externally.
120
112
 
121
113
 
122
114
  ## Manifest vs OpenRouter
@@ -21,7 +21,6 @@ const agent_analytics_service_1 = require("../services/agent-analytics.service")
21
21
  const range_query_dto_1 = require("../../common/dto/range-query.dto");
22
22
  const agent_cache_interceptor_1 = require("../../common/interceptors/agent-cache.interceptor");
23
23
  const cache_constants_1 = require("../../common/constants/cache.constants");
24
- const product_telemetry_1 = require("../../common/utils/product-telemetry");
25
24
  let AgentAnalyticsController = class AgentAnalyticsController {
26
25
  analytics;
27
26
  constructor(analytics) {
@@ -34,7 +33,6 @@ let AgentAnalyticsController = class AgentAnalyticsController {
34
33
  return {
35
34
  ...usage,
36
35
  agentName: ctx.agentName,
37
- telemetryId: (0, product_telemetry_1.hashForTelemetry)(ctx.userId),
38
36
  };
39
37
  }
40
38
  async getCosts(query, req) {
@@ -26,7 +26,6 @@ const rename_agent_dto_1 = require("../../common/dto/rename-agent.dto");
26
26
  const user_cache_interceptor_1 = require("../../common/interceptors/user-cache.interceptor");
27
27
  const cache_constants_1 = require("../../common/constants/cache.constants");
28
28
  const local_mode_constants_1 = require("../../common/constants/local-mode.constants");
29
- const product_telemetry_1 = require("../../common/utils/product-telemetry");
30
29
  const slugify_1 = require("../../common/utils/slugify");
31
30
  const tenant_cache_service_1 = require("../../common/services/tenant-cache.service");
32
31
  let AgentsController = class AgentsController {
@@ -68,7 +67,6 @@ let AgentsController = class AgentsController {
68
67
  }
69
68
  throw error;
70
69
  }
71
- (0, product_telemetry_1.trackCloudEvent)('agent_created', user.id, { agent_name: slug });
72
70
  return {
73
71
  agent: { id: result.agentId, name: slug, display_name: displayName },
74
72
  apiKey: result.apiKey,
@@ -6,7 +6,6 @@ const render_1 = require("@react-email/render");
6
6
  const verify_email_1 = require("../notifications/emails/verify-email");
7
7
  const reset_password_1 = require("../notifications/emails/reset-password");
8
8
  const send_email_1 = require("../notifications/services/email-providers/send-email");
9
- const product_telemetry_1 = require("../common/utils/product-telemetry");
10
9
  const local_mode_constants_1 = require("../common/constants/local-mode.constants");
11
10
  const isLocalMode = process.env['MANIFEST_MODE'] === 'local';
12
11
  const port = process.env['PORT'] ?? '3001';
@@ -116,15 +115,6 @@ const authInstance = isLocalMode
116
115
  },
117
116
  },
118
117
  trustedOrigins: buildTrustedOrigins(),
119
- databaseHooks: {
120
- user: {
121
- create: {
122
- after: async (user) => {
123
- (0, product_telemetry_1.trackCloudEvent)('user_registered', user.id);
124
- },
125
- },
126
- },
127
- },
128
118
  });
129
119
  exports.auth = authInstance;
130
120
  //# sourceMappingURL=auth.instance.js.map
@@ -62,7 +62,6 @@ const user_provider_entity_1 = require("../entities/user-provider.entity");
62
62
  const tier_assignment_entity_1 = require("../entities/tier-assignment.entity");
63
63
  const hash_util_1 = require("../common/utils/hash.util");
64
64
  const local_mode_constants_1 = require("../common/constants/local-mode.constants");
65
- const product_telemetry_1 = require("../common/utils/product-telemetry");
66
65
  const seed_messages_1 = require("./seed-messages");
67
66
  let LocalBootstrapService = LocalBootstrapService_1 = class LocalBootstrapService {
68
67
  tenantRepo;
@@ -124,7 +123,6 @@ let LocalBootstrapService = LocalBootstrapService_1 = class LocalBootstrapServic
124
123
  is_active: true,
125
124
  tenant_id: local_mode_constants_1.LOCAL_TENANT_ID,
126
125
  });
127
- (0, product_telemetry_1.trackEvent)('agent_created', { agent_name: local_mode_constants_1.LOCAL_AGENT_NAME });
128
126
  this.logger.log(`Created tenant/agent for local mode`);
129
127
  }
130
128
  const apiKey = this.readApiKeyFromConfig();
@@ -22,14 +22,12 @@ let HealthController = class HealthController {
22
22
  getHealth() {
23
23
  const isLocal = process.env['MANIFEST_MODE'] === 'local';
24
24
  const isDev = process.env['NODE_ENV'] !== 'production';
25
- const optOut = process.env['MANIFEST_TELEMETRY_OPTOUT'];
26
25
  return {
27
26
  status: 'healthy',
28
27
  uptime_seconds: Math.floor((Date.now() - this.startTime) / 1000),
29
28
  ...(isLocal ? { version: this.versionCheck.getCurrentVersion() } : {}),
30
29
  mode: isLocal ? 'local' : 'cloud',
31
30
  devMode: isDev,
32
- telemetryOptOut: optOut === '1' || optOut === 'true',
33
31
  ...this.versionCheck.getUpdateInfo(),
34
32
  };
35
33
  }
@@ -62,7 +62,7 @@ async function bootstrap() {
62
62
  scriptSrc: ["'self'"],
63
63
  styleSrc: ["'self'", "'unsafe-inline'"],
64
64
  imgSrc: ["'self'", 'data:'],
65
- connectSrc: ["'self'", 'https://eu.i.posthog.com'],
65
+ connectSrc: ["'self'"],
66
66
  fontSrc: ["'self'"],
67
67
  objectSrc: ["'none'"],
68
68
  frameAncestors: ["'none'"],
@@ -26,7 +26,6 @@ const metric_ingest_service_1 = require("./services/metric-ingest.service");
26
26
  const log_ingest_service_1 = require("./services/log-ingest.service");
27
27
  const ingest_event_bus_service_1 = require("../common/services/ingest-event-bus.service");
28
28
  const manifest_runtime_service_1 = require("../common/services/manifest-runtime.service");
29
- const product_telemetry_1 = require("../common/utils/product-telemetry");
30
29
  let OtlpController = OtlpController_1 = class OtlpController {
31
30
  decoder;
32
31
  traceIngest;
@@ -84,9 +83,6 @@ let OtlpController = OtlpController_1 = class OtlpController {
84
83
  const markerPath = (0, path_1.join)(markerDir, '.first_telemetry_sent');
85
84
  if ((0, fs_1.existsSync)(markerPath))
86
85
  return;
87
- (0, product_telemetry_1.trackEvent)('first_telemetry_received', {
88
- agent_id_hash: ctx.agentId.slice(0, 8),
89
- });
90
86
  (0, fs_1.mkdirSync)(markerDir, { recursive: true });
91
87
  (0, fs_1.writeFileSync)(markerPath, new Date().toISOString(), { mode: 0o600 });
92
88
  }
@@ -94,9 +90,6 @@ let OtlpController = OtlpController_1 = class OtlpController {
94
90
  if (this.seenAgents.has(ctx.agentId))
95
91
  return;
96
92
  this.seenAgents.add(ctx.agentId);
97
- (0, product_telemetry_1.trackCloudEvent)('first_telemetry_received', ctx.userId, {
98
- agent_id_hash: ctx.agentId.slice(0, 8),
99
- });
100
93
  }
101
94
  }
102
95
  };
@@ -24,7 +24,6 @@ const provider_client_1 = require("./provider-client");
24
24
  const proxy_message_recorder_1 = require("./proxy-message-recorder");
25
25
  const stream_writer_1 = require("./stream-writer");
26
26
  const proxy_error_sanitizer_1 = require("./proxy-error-sanitizer");
27
- const product_telemetry_1 = require("../../common/utils/product-telemetry");
28
27
  const MAX_SEEN_USERS = 10_000;
29
28
  let ProxyController = ProxyController_1 = class ProxyController {
30
29
  proxyService;
@@ -234,7 +233,7 @@ let ProxyController = ProxyController_1 = class ProxyController {
234
233
  const parts = header.split('-');
235
234
  return parts.length >= 2 ? parts[1] : undefined;
236
235
  }
237
- trackFirstProxyRequest(userId, meta) {
236
+ trackFirstProxyRequest(userId, _meta) {
238
237
  if (this.seenUsers.has(userId))
239
238
  return;
240
239
  if (this.seenUsers.size >= MAX_SEEN_USERS) {
@@ -242,11 +241,6 @@ let ProxyController = ProxyController_1 = class ProxyController {
242
241
  this.seenUsers.delete(oldest);
243
242
  }
244
243
  this.seenUsers.add(userId);
245
- (0, product_telemetry_1.trackCloudEvent)('routing_first_proxy_request', userId, {
246
- provider: meta.provider,
247
- model: meta.model,
248
- tier: meta.tier,
249
- });
250
244
  }
251
245
  };
252
246
  exports.ProxyController = ProxyController;
@@ -21,7 +21,6 @@ const otlp_auth_guard_1 = require("../otlp/guards/otlp-auth.guard");
21
21
  const resolve_service_1 = require("./resolve.service");
22
22
  const routing_service_1 = require("./routing.service");
23
23
  const resolve_request_dto_1 = require("./dto/resolve-request.dto");
24
- const product_telemetry_1 = require("../common/utils/product-telemetry");
25
24
  class SubscriptionProviderItem {
26
25
  provider;
27
26
  }
@@ -58,9 +57,6 @@ let ResolveController = class ResolveController {
58
57
  for (const item of body.providers) {
59
58
  const { isNew } = await this.routingService.registerSubscriptionProvider(agentId, userId, item.provider);
60
59
  if (isNew) {
61
- (0, product_telemetry_1.trackCloudEvent)('routing_provider_connected', userId, {
62
- provider: `${item.provider} (Subscription)`,
63
- });
64
60
  registered++;
65
61
  }
66
62
  }
@@ -20,7 +20,6 @@ const resolve_agent_service_1 = require("./resolve-agent.service");
20
20
  const custom_provider_service_1 = require("./custom-provider.service");
21
21
  const model_discovery_service_1 = require("./model-discovery/model-discovery.service");
22
22
  const ollama_sync_service_1 = require("../database/ollama-sync.service");
23
- const product_telemetry_1 = require("../common/utils/product-telemetry");
24
23
  const routing_dto_1 = require("./dto/routing.dto");
25
24
  let RoutingController = class RoutingController {
26
25
  routingService;
@@ -66,12 +65,6 @@ let RoutingController = class RoutingController {
66
65
  }
67
66
  catch {
68
67
  }
69
- if (isNew) {
70
- const providerLabel = body.authType === 'subscription' ? `${body.provider} (Subscription)` : body.provider;
71
- (0, product_telemetry_1.trackCloudEvent)('routing_provider_connected', user.id, {
72
- provider: providerLabel,
73
- });
74
- }
75
68
  return {
76
69
  id: result.id,
77
70
  provider: result.provider,