meta-sovereign 0.0.0-stage → 0.49.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +24 -0
- package/README.hi.md +171 -0
- package/README.md +360 -2
- package/README.ru.md +171 -0
- package/README.zh.md +185 -0
- package/js/bin/meta-sovereign.js +5 -0
- package/js/src/automation/automations.js +656 -0
- package/js/src/automation/autopilot.js +347 -0
- package/js/src/automation/drafts.js +167 -0
- package/js/src/automation/index.js +72 -0
- package/js/src/automation/next-chat.js +69 -0
- package/js/src/automation/outbox.js +393 -0
- package/js/src/automation/paced-send.js +52 -0
- package/js/src/automation/record-outcome.js +64 -0
- package/js/src/automation/runner.js +368 -0
- package/js/src/automation/safety.js +187 -0
- package/js/src/broadcast/index.js +246 -0
- package/js/src/cli/automation-commands.js +422 -0
- package/js/src/cli/confirm.js +35 -0
- package/js/src/cli/cv-commands.js +313 -0
- package/js/src/cli/greetings-commands.js +242 -0
- package/js/src/cli/index.js +843 -0
- package/js/src/cli/lino-args.js +34 -0
- package/js/src/cli/migrate-commands.js +111 -0
- package/js/src/cli/trust-commands.js +83 -0
- package/js/src/crm/address-form.js +289 -0
- package/js/src/crm/audience.js +131 -0
- package/js/src/crm/index.js +64 -0
- package/js/src/crm/people.js +751 -0
- package/js/src/crm/person-learn.js +589 -0
- package/js/src/crm/reengage.js +636 -0
- package/js/src/crm/words.js +87 -0
- package/js/src/cv/browser.js +181 -0
- package/js/src/cv/diff.js +271 -0
- package/js/src/cv/index.js +461 -0
- package/js/src/cv/model.js +333 -0
- package/js/src/cv/platforms/define.js +142 -0
- package/js/src/cv/platforms/habr-career.js +239 -0
- package/js/src/cv/platforms/hh.js +171 -0
- package/js/src/cv/platforms/index.js +88 -0
- package/js/src/cv/platforms/linkedin.js +149 -0
- package/js/src/cv/platforms/naukri.js +148 -0
- package/js/src/cv/platforms/parse.js +219 -0
- package/js/src/cv/platforms/steps.js +237 -0
- package/js/src/cv/platforms/superjob.js +99 -0
- package/js/src/cv/platforms/topcv.js +158 -0
- package/js/src/cv/platforms/vietnamworks.js +248 -0
- package/js/src/cv/runner.js +691 -0
- package/js/src/cv/telemetry.js +461 -0
- package/js/src/facts/index.js +45 -0
- package/js/src/greetings/catalog.js +274 -0
- package/js/src/greetings/detect.js +103 -0
- package/js/src/greetings/index.js +383 -0
- package/js/src/greetings/plan.js +403 -0
- package/js/src/handlers/index.js +307 -0
- package/js/src/index.d.ts +32 -0
- package/js/src/index.js +24 -0
- package/js/src/patterns/index.js +203 -0
- package/js/src/patterns/safe-regex.js +138 -0
- package/js/src/replies/index.js +53 -0
- package/js/src/replies/reply-cache.js +318 -0
- package/js/src/replies/reply-graph.js +775 -0
- package/js/src/replies/reply-service.js +281 -0
- package/js/src/replies/reply-store-clink.js +274 -0
- package/js/src/server/account-scope.js +49 -0
- package/js/src/server/aggregate.js +89 -0
- package/js/src/server/chat-index.js +249 -0
- package/js/src/server/confirmations.js +123 -0
- package/js/src/server/cors.js +175 -0
- package/js/src/server/email-attachments.js +58 -0
- package/js/src/server/email-poller.js +76 -0
- package/js/src/server/handlers-bootstrap.js +51 -0
- package/js/src/server/hosted-ui.js +142 -0
- package/js/src/server/index.js +919 -0
- package/js/src/server/local-tls.js +273 -0
- package/js/src/server/log.js +217 -0
- package/js/src/server/metrics.js +84 -0
- package/js/src/server/passcode.js +234 -0
- package/js/src/server/redact.js +60 -0
- package/js/src/server/routes-auto-import.js +492 -0
- package/js/src/server/routes-automations.js +519 -0
- package/js/src/server/routes-backup.js +150 -0
- package/js/src/server/routes-chat.js +47 -0
- package/js/src/server/routes-client-log.js +114 -0
- package/js/src/server/routes-cv.js +204 -0
- package/js/src/server/routes-derived.js +157 -0
- package/js/src/server/routes-email.js +320 -0
- package/js/src/server/routes-events.js +141 -0
- package/js/src/server/routes-greetings.js +194 -0
- package/js/src/server/routes-learned.js +182 -0
- package/js/src/server/routes-messages.js +242 -0
- package/js/src/server/routes-mutating.js +810 -0
- package/js/src/server/routes-passcode.js +116 -0
- package/js/src/server/routes-people.js +130 -0
- package/js/src/server/routes-suggest.js +83 -0
- package/js/src/server/routes-telegram-account-data.js +62 -0
- package/js/src/server/routes-telegram-account-extras.js +74 -0
- package/js/src/server/routes-telegram-accounts.js +244 -0
- package/js/src/server/routes-telegram-admin-extras.js +71 -0
- package/js/src/server/routes-telegram-admin.js +70 -0
- package/js/src/server/routes-telegram-apps.js +72 -0
- package/js/src/server/routes-telegram-boosts.js +44 -0
- package/js/src/server/routes-telegram-bot-login.js +92 -0
- package/js/src/server/routes-telegram-business.js +158 -0
- package/js/src/server/routes-telegram-calls.js +18 -0
- package/js/src/server/routes-telegram-channel-dm.js +69 -0
- package/js/src/server/routes-telegram-chat-admins.js +92 -0
- package/js/src/server/routes-telegram-chat-reactions.js +32 -0
- package/js/src/server/routes-telegram-chat-settings.js +45 -0
- package/js/src/server/routes-telegram-chat-themes.js +64 -0
- package/js/src/server/routes-telegram-chatlists.js +99 -0
- package/js/src/server/routes-telegram-checklist-stats.js +132 -0
- package/js/src/server/routes-telegram-cloud-themes.js +60 -0
- package/js/src/server/routes-telegram-common-chats.js +24 -0
- package/js/src/server/routes-telegram-contacts.js +33 -0
- package/js/src/server/routes-telegram-drafts-calendar.js +54 -0
- package/js/src/server/routes-telegram-effects.js +22 -0
- package/js/src/server/routes-telegram-emoji-status.js +53 -0
- package/js/src/server/routes-telegram-ephemeral.js +48 -0
- package/js/src/server/routes-telegram-export.js +47 -0
- package/js/src/server/routes-telegram-files.js +428 -0
- package/js/src/server/routes-telegram-folder-edit.js +40 -0
- package/js/src/server/routes-telegram-forum-view.js +25 -0
- package/js/src/server/routes-telegram-games.js +19 -0
- package/js/src/server/routes-telegram-gift-send.js +45 -0
- package/js/src/server/routes-telegram-gifts-manage.js +109 -0
- package/js/src/server/routes-telegram-group-extras.js +75 -0
- package/js/src/server/routes-telegram-hashtags.js +66 -0
- package/js/src/server/routes-telegram-inline.js +104 -0
- package/js/src/server/routes-telegram-instant-view.js +82 -0
- package/js/src/server/routes-telegram-invite-links.js +133 -0
- package/js/src/server/routes-telegram-link-preview.js +25 -0
- package/js/src/server/routes-telegram-message-links.js +44 -0
- package/js/src/server/routes-telegram-notify-settings.js +63 -0
- package/js/src/server/routes-telegram-paid.js +91 -0
- package/js/src/server/routes-telegram-pinned-list.js +74 -0
- package/js/src/server/routes-telegram-pinned-order.js +25 -0
- package/js/src/server/routes-telegram-privacy.js +109 -0
- package/js/src/server/routes-telegram-private-call.js +43 -0
- package/js/src/server/routes-telegram-profile-extras.js +66 -0
- package/js/src/server/routes-telegram-profile-stories.js +116 -0
- package/js/src/server/routes-telegram-proxy.js +59 -0
- package/js/src/server/routes-telegram-quick-replies.js +81 -0
- package/js/src/server/routes-telegram-request-peer.js +46 -0
- package/js/src/server/routes-telegram-ringtones.js +68 -0
- package/js/src/server/routes-telegram-round.js +57 -0
- package/js/src/server/routes-telegram-saved-gifs.js +28 -0
- package/js/src/server/routes-telegram-saved-tags.js +54 -0
- package/js/src/server/routes-telegram-security.js +120 -0
- package/js/src/server/routes-telegram-send-as.js +36 -0
- package/js/src/server/routes-telegram-share.js +159 -0
- package/js/src/server/routes-telegram-stars.js +70 -0
- package/js/src/server/routes-telegram-stats.js +40 -0
- package/js/src/server/routes-telegram-sticker-extras.js +97 -0
- package/js/src/server/routes-telegram-sticker-settings.js +101 -0
- package/js/src/server/routes-telegram-stories.js +49 -0
- package/js/src/server/routes-telegram-story-actions.js +95 -0
- package/js/src/server/routes-telegram-story-extras.js +97 -0
- package/js/src/server/routes-telegram-story-manage.js +46 -0
- package/js/src/server/routes-telegram-story-post.js +96 -0
- package/js/src/server/routes-telegram-topic-admin.js +76 -0
- package/js/src/server/routes-telegram-transcribe.js +45 -0
- package/js/src/server/routes-telegram-ttl.js +84 -0
- package/js/src/server/routes-telegram-voice-chat.js +69 -0
- package/js/src/server/routes-telegram-wallpapers.js +73 -0
- package/js/src/server/routes-telegram-web-apps.js +109 -0
- package/js/src/server/routes-telegram.js +1493 -0
- package/js/src/server/routes-whatsapp.js +103 -0
- package/js/src/server/secret-mask.js +33 -0
- package/js/src/server/telegram-extras.js +394 -0
- package/js/src/server/util.js +155 -0
- package/js/src/sources/auto-import/archive.js +184 -0
- package/js/src/sources/auto-import/files.js +152 -0
- package/js/src/sources/auto-import/index.js +35 -0
- package/js/src/sources/auto-import/manager.js +368 -0
- package/js/src/sources/auto-import/recipes.js +189 -0
- package/js/src/sources/auto-import/sign-ins.js +329 -0
- package/js/src/sources/auto-import/telegram-creds.js +865 -0
- package/js/src/sources/browser-actions.js +405 -0
- package/js/src/sources/browser-sender.js +687 -0
- package/js/src/sources/cv-bridge.js +95 -0
- package/js/src/sources/email-compose.js +215 -0
- package/js/src/sources/email-html.js +416 -0
- package/js/src/sources/email-live.js +1061 -0
- package/js/src/sources/email-mime.js +606 -0
- package/js/src/sources/email-node-socket.js +245 -0
- package/js/src/sources/email-node-transport.js +659 -0
- package/js/src/sources/email-records.js +589 -0
- package/js/src/sources/email-store.js +127 -0
- package/js/src/sources/email.js +35 -0
- package/js/src/sources/facebook.js +288 -0
- package/js/src/sources/github-check.js +206 -0
- package/js/src/sources/github.js +745 -0
- package/js/src/sources/habr-career.js +129 -0
- package/js/src/sources/hh.js +149 -0
- package/js/src/sources/http.js +276 -0
- package/js/src/sources/index.js +279 -0
- package/js/src/sources/job-board.js +175 -0
- package/js/src/sources/link.js +72 -0
- package/js/src/sources/linkedin.js +247 -0
- package/js/src/sources/live-links.js +204 -0
- package/js/src/sources/message-actions.js +143 -0
- package/js/src/sources/naukri.js +25 -0
- package/js/src/sources/peopleperhour.js +865 -0
- package/js/src/sources/private-call-dh.js +164 -0
- package/js/src/sources/private-call-emoji.js +87 -0
- package/js/src/sources/private-call-machine.js +444 -0
- package/js/src/sources/sticker.js +25 -0
- package/js/src/sources/superjob.js +127 -0
- package/js/src/sources/telegram-account-data-paths.js +26 -0
- package/js/src/sources/telegram-account-data-run.js +399 -0
- package/js/src/sources/telegram-account-data.js +279 -0
- package/js/src/sources/telegram-account-extras.js +208 -0
- package/js/src/sources/telegram-account-live.js +575 -0
- package/js/src/sources/telegram-account.js +1465 -0
- package/js/src/sources/telegram-accounts.js +287 -0
- package/js/src/sources/telegram-actions.js +651 -0
- package/js/src/sources/telegram-add-members.js +283 -0
- package/js/src/sources/telegram-admin-manage.js +258 -0
- package/js/src/sources/telegram-admin-rights.js +88 -0
- package/js/src/sources/telegram-admin.js +282 -0
- package/js/src/sources/telegram-api/layer-225.tl +2360 -0
- package/js/src/sources/telegram-api/layer-232.tl +2577 -0
- package/js/src/sources/telegram-apps.js +272 -0
- package/js/src/sources/telegram-avatars.js +247 -0
- package/js/src/sources/telegram-backfill.js +288 -0
- package/js/src/sources/telegram-boosts.js +167 -0
- package/js/src/sources/telegram-bot-commands.js +119 -0
- package/js/src/sources/telegram-bot-login.js +268 -0
- package/js/src/sources/telegram-bots.js +82 -0
- package/js/src/sources/telegram-business-bots.js +304 -0
- package/js/src/sources/telegram-business-links.js +159 -0
- package/js/src/sources/telegram-business-messages.js +240 -0
- package/js/src/sources/telegram-business.js +388 -0
- package/js/src/sources/telegram-calendar.js +88 -0
- package/js/src/sources/telegram-calls.js +116 -0
- package/js/src/sources/telegram-catchup.js +458 -0
- package/js/src/sources/telegram-channel-dm-shape.js +154 -0
- package/js/src/sources/telegram-channel-dm.js +270 -0
- package/js/src/sources/telegram-channels.js +311 -0
- package/js/src/sources/telegram-chat-admins.js +18 -0
- package/js/src/sources/telegram-chat-edit.js +317 -0
- package/js/src/sources/telegram-chat-info.js +491 -0
- package/js/src/sources/telegram-chat-reactions.js +149 -0
- package/js/src/sources/telegram-chat-removal.js +181 -0
- package/js/src/sources/telegram-chat-settings.js +258 -0
- package/js/src/sources/telegram-chat-themes.js +140 -0
- package/js/src/sources/telegram-chatlists.js +457 -0
- package/js/src/sources/telegram-cloud-themes.js +155 -0
- package/js/src/sources/telegram-comments.js +205 -0
- package/js/src/sources/telegram-common-chats.js +82 -0
- package/js/src/sources/telegram-contacts-edit.js +152 -0
- package/js/src/sources/telegram-contacts.js +89 -0
- package/js/src/sources/telegram-custom-emoji-search.js +69 -0
- package/js/src/sources/telegram-custom-emoji.js +208 -0
- package/js/src/sources/telegram-dialogs.js +184 -0
- package/js/src/sources/telegram-drafts.js +76 -0
- package/js/src/sources/telegram-effects.js +58 -0
- package/js/src/sources/telegram-emoji-keywords.js +159 -0
- package/js/src/sources/telegram-emoji-status.js +125 -0
- package/js/src/sources/telegram-ephemeral.js +138 -0
- package/js/src/sources/telegram-export-html.js +291 -0
- package/js/src/sources/telegram-export-media.js +278 -0
- package/js/src/sources/telegram-export-output.js +92 -0
- package/js/src/sources/telegram-export-paths.js +165 -0
- package/js/src/sources/telegram-export-run.js +325 -0
- package/js/src/sources/telegram-export-shape.js +259 -0
- package/js/src/sources/telegram-export.js +266 -0
- package/js/src/sources/telegram-fact-checks.js +86 -0
- package/js/src/sources/telegram-folder-edit.js +239 -0
- package/js/src/sources/telegram-folders.js +131 -0
- package/js/src/sources/telegram-format.js +331 -0
- package/js/src/sources/telegram-forum-view.js +39 -0
- package/js/src/sources/telegram-forum.js +197 -0
- package/js/src/sources/telegram-games.js +66 -0
- package/js/src/sources/telegram-gif-save.js +99 -0
- package/js/src/sources/telegram-gift-send.js +156 -0
- package/js/src/sources/telegram-gifts-manage.js +406 -0
- package/js/src/sources/telegram-giveaways.js +133 -0
- package/js/src/sources/telegram-global.js +286 -0
- package/js/src/sources/telegram-group-extras.js +122 -0
- package/js/src/sources/telegram-history.js +641 -0
- package/js/src/sources/telegram-inline-bots.js +394 -0
- package/js/src/sources/telegram-instant-view-shape.js +669 -0
- package/js/src/sources/telegram-instant-view-whole.js +71 -0
- package/js/src/sources/telegram-instant-view.js +208 -0
- package/js/src/sources/telegram-invite-links.js +433 -0
- package/js/src/sources/telegram-invite.js +139 -0
- package/js/src/sources/telegram-jump.js +168 -0
- package/js/src/sources/telegram-layer.js +186 -0
- package/js/src/sources/telegram-left-channels.js +53 -0
- package/js/src/sources/telegram-link-preview.js +214 -0
- package/js/src/sources/telegram-map.js +156 -0
- package/js/src/sources/telegram-media.js +512 -0
- package/js/src/sources/telegram-members.js +222 -0
- package/js/src/sources/telegram-message-links.js +106 -0
- package/js/src/sources/telegram-moderation.js +151 -0
- package/js/src/sources/telegram-mtproto.js +211 -0
- package/js/src/sources/telegram-notify-settings.js +343 -0
- package/js/src/sources/telegram-ownership.js +144 -0
- package/js/src/sources/telegram-pages.js +280 -0
- package/js/src/sources/telegram-paid-messages.js +204 -0
- package/js/src/sources/telegram-peer-actions.js +227 -0
- package/js/src/sources/telegram-peers.js +132 -0
- package/js/src/sources/telegram-phone-change.js +89 -0
- package/js/src/sources/telegram-pinned-list.js +113 -0
- package/js/src/sources/telegram-pinned-order.js +98 -0
- package/js/src/sources/telegram-polls.js +431 -0
- package/js/src/sources/telegram-privacy.js +419 -0
- package/js/src/sources/telegram-private-call.js +268 -0
- package/js/src/sources/telegram-profile-extras.js +435 -0
- package/js/src/sources/telegram-profile-music.js +264 -0
- package/js/src/sources/telegram-profile-stories.js +194 -0
- package/js/src/sources/telegram-profile.js +262 -0
- package/js/src/sources/telegram-proxy.js +242 -0
- package/js/src/sources/telegram-qr-login.js +244 -0
- package/js/src/sources/telegram-quick-reaction.js +70 -0
- package/js/src/sources/telegram-quick-replies.js +272 -0
- package/js/src/sources/telegram-readers.js +207 -0
- package/js/src/sources/telegram-repair.js +289 -0
- package/js/src/sources/telegram-request-peer.js +238 -0
- package/js/src/sources/telegram-ringtones.js +228 -0
- package/js/src/sources/telegram-round.js +62 -0
- package/js/src/sources/telegram-saved-tags.js +140 -0
- package/js/src/sources/telegram-scheduled.js +161 -0
- package/js/src/sources/telegram-search.js +72 -0
- package/js/src/sources/telegram-security.js +329 -0
- package/js/src/sources/telegram-send-as-client.js +88 -0
- package/js/src/sources/telegram-send-as.js +180 -0
- package/js/src/sources/telegram-send.js +407 -0
- package/js/src/sources/telegram-service-names.js +65 -0
- package/js/src/sources/telegram-share-media.js +302 -0
- package/js/src/sources/telegram-shared.js +109 -0
- package/js/src/sources/telegram-similar-channels.js +85 -0
- package/js/src/sources/telegram-stars.js +337 -0
- package/js/src/sources/telegram-stats-more.js +217 -0
- package/js/src/sources/telegram-stats.js +332 -0
- package/js/src/sources/telegram-sticker-search.js +204 -0
- package/js/src/sources/telegram-sticker-sets.js +181 -0
- package/js/src/sources/telegram-sticker-trending.js +204 -0
- package/js/src/sources/telegram-stickers.js +724 -0
- package/js/src/sources/telegram-stories.js +379 -0
- package/js/src/sources/telegram-story-actions.js +256 -0
- package/js/src/sources/telegram-story-extras.js +231 -0
- package/js/src/sources/telegram-story-manage.js +145 -0
- package/js/src/sources/telegram-story-post.js +249 -0
- package/js/src/sources/telegram-top-peers.js +112 -0
- package/js/src/sources/telegram-topic-admin.js +277 -0
- package/js/src/sources/telegram-transcribe.js +161 -0
- package/js/src/sources/telegram-translate.js +99 -0
- package/js/src/sources/telegram-ttl.js +250 -0
- package/js/src/sources/telegram-unread.js +151 -0
- package/js/src/sources/telegram-updates.js +370 -0
- package/js/src/sources/telegram-upload.js +439 -0
- package/js/src/sources/telegram-usernames.js +129 -0
- package/js/src/sources/telegram-views.js +82 -0
- package/js/src/sources/telegram-voice-chat-live.js +42 -0
- package/js/src/sources/telegram-voice-chat.js +383 -0
- package/js/src/sources/telegram-wallpapers.js +350 -0
- package/js/src/sources/telegram-web-apps.js +339 -0
- package/js/src/sources/telegram.js +684 -0
- package/js/src/sources/topcv.js +26 -0
- package/js/src/sources/upwork.js +873 -0
- package/js/src/sources/vietnamworks.js +25 -0
- package/js/src/sources/vk-auth.js +507 -0
- package/js/src/sources/vk.js +692 -0
- package/js/src/sources/web-uis.js +447 -0
- package/js/src/sources/whatsapp-archive.js +271 -0
- package/js/src/sources/whatsapp-file.js +41 -0
- package/js/src/sources/whatsapp-ids.js +94 -0
- package/js/src/sources/whatsapp-web-signin.js +156 -0
- package/js/src/sources/whatsapp.js +378 -0
- package/js/src/sources/x.js +346 -0
- package/js/src/storage/backup.js +328 -0
- package/js/src/storage/binary-packet.js +197 -0
- package/js/src/storage/browser-store.js +408 -0
- package/js/src/storage/clink.js +311 -0
- package/js/src/storage/disk-space.js +71 -0
- package/js/src/storage/doublets-archive.js +337 -0
- package/js/src/storage/doublets-mirror.js +238 -0
- package/js/src/storage/doublets-snapshot-worker.js +56 -0
- package/js/src/storage/doublets-store.js +125 -0
- package/js/src/storage/dual-store.js +244 -0
- package/js/src/storage/durable.js +117 -0
- package/js/src/storage/export-encrypted.js +87 -0
- package/js/src/storage/file-writer.js +41 -0
- package/js/src/storage/index.js +47 -0
- package/js/src/storage/lino-store.js +774 -0
- package/js/src/storage/lino.js +86 -0
- package/js/src/storage/migrations/0001-email-threads.js +134 -0
- package/js/src/storage/migrations/0002-whatsapp-chat-ids.js +148 -0
- package/js/src/storage/migrations/browser-runner.js +73 -0
- package/js/src/storage/migrations/core.js +325 -0
- package/js/src/storage/migrations/index.js +34 -0
- package/js/src/storage/migrations/node-runner.js +375 -0
- package/js/src/storage/secret-store.js +100 -0
- package/js/src/storage/soft-delete.js +145 -0
- package/js/src/storage/store-lock.js +119 -0
- package/js/src/storage/universal.js +125 -0
- package/js/src/storage/vault.js +329 -0
- package/js/src/storage/write-queue.js +180 -0
- package/js/src/sync/bun-server.js +536 -0
- package/js/src/sync/index.js +35 -0
- package/js/src/sync/peer.js +235 -0
- package/js/src/sync/tcp-transport.js +132 -0
- package/js/src/sync/webrtc-signaling.js +117 -0
- package/js/src/sync/webrtc-transport.js +183 -0
- package/js/src/sync/ws-frame.js +184 -0
- package/js/src/sync/ws-transport.js +334 -0
- package/js/src/web/app-notify.js +35 -0
- package/js/src/web/app.css +12435 -0
- package/js/src/web/app.js +260 -0
- package/js/src/web/app.min.js +454 -0
- package/js/src/web/appearance.js +134 -0
- package/js/src/web/apps-model.js +127 -0
- package/js/src/web/auto-download.js +172 -0
- package/js/src/web/automation-api.js +400 -0
- package/js/src/web/automations-model.js +245 -0
- package/js/src/web/automations-safety.js +291 -0
- package/js/src/web/automations-state.js +281 -0
- package/js/src/web/automations-view.js +941 -0
- package/js/src/web/autopilot-hook.js +118 -0
- package/js/src/web/bot-keyboard.js +273 -0
- package/js/src/web/business-hours-model.js +196 -0
- package/js/src/web/business-menu.js +128 -0
- package/js/src/web/business-messages.js +378 -0
- package/js/src/web/call-model.js +72 -0
- package/js/src/web/channel-dm-model.js +156 -0
- package/js/src/web/chat-account-data.js +555 -0
- package/js/src/web/chat-account.js +89 -0
- package/js/src/web/chat-accounts-live.js +84 -0
- package/js/src/web/chat-accounts.js +495 -0
- package/js/src/web/chat-actions.js +650 -0
- package/js/src/web/chat-add-members.js +214 -0
- package/js/src/web/chat-admin-rights.js +242 -0
- package/js/src/web/chat-admin.js +361 -0
- package/js/src/web/chat-admins.js +299 -0
- package/js/src/web/chat-album.js +174 -0
- package/js/src/web/chat-apps-search.js +204 -0
- package/js/src/web/chat-attach-bots.js +354 -0
- package/js/src/web/chat-attach.js +680 -0
- package/js/src/web/chat-attached-button.js +75 -0
- package/js/src/web/chat-attached-stickers.js +130 -0
- package/js/src/web/chat-automation.js +280 -0
- package/js/src/web/chat-boosts.js +433 -0
- package/js/src/web/chat-bot-commands.js +315 -0
- package/js/src/web/chat-bot-login.js +250 -0
- package/js/src/web/chat-bots.js +453 -0
- package/js/src/web/chat-business-bots.js +337 -0
- package/js/src/web/chat-business-common.js +70 -0
- package/js/src/web/chat-business-hours.js +259 -0
- package/js/src/web/chat-business-link-open.js +96 -0
- package/js/src/web/chat-business-links.js +299 -0
- package/js/src/web/chat-business-place.js +365 -0
- package/js/src/web/chat-business-profile.js +243 -0
- package/js/src/web/chat-calendar.js +128 -0
- package/js/src/web/chat-calls.js +271 -0
- package/js/src/web/chat-channel-dm-thread.js +464 -0
- package/js/src/web/chat-channel-dm.js +177 -0
- package/js/src/web/chat-collectible.js +156 -0
- package/js/src/web/chat-comments-bar.js +72 -0
- package/js/src/web/chat-comments.js +351 -0
- package/js/src/web/chat-common-chats.js +164 -0
- package/js/src/web/chat-contacts-edit.js +229 -0
- package/js/src/web/chat-contacts-window.js +308 -0
- package/js/src/web/chat-create.js +462 -0
- package/js/src/web/chat-days.js +454 -0
- package/js/src/web/chat-drafts-clear.js +134 -0
- package/js/src/web/chat-drag.js +257 -0
- package/js/src/web/chat-edit-mode.js +159 -0
- package/js/src/web/chat-edit.js +264 -0
- package/js/src/web/chat-effects.js +251 -0
- package/js/src/web/chat-email-body.js +221 -0
- package/js/src/web/chat-emoji-status-search.js +91 -0
- package/js/src/web/chat-emoji-status.js +231 -0
- package/js/src/web/chat-emoji-suggest.js +131 -0
- package/js/src/web/chat-emoji-tools.js +40 -0
- package/js/src/web/chat-emoji.js +822 -0
- package/js/src/web/chat-ephemeral.js +96 -0
- package/js/src/web/chat-export.js +532 -0
- package/js/src/web/chat-fact-check.js +168 -0
- package/js/src/web/chat-failure.js +68 -0
- package/js/src/web/chat-folder-edit.js +707 -0
- package/js/src/web/chat-folder-live.js +78 -0
- package/js/src/web/chat-folder-model.js +237 -0
- package/js/src/web/chat-folder-share.js +554 -0
- package/js/src/web/chat-folder-tags.js +139 -0
- package/js/src/web/chat-folder-updates.js +234 -0
- package/js/src/web/chat-folders.js +191 -0
- package/js/src/web/chat-follow.js +282 -0
- package/js/src/web/chat-format-bar.js +109 -0
- package/js/src/web/chat-forum-view.js +103 -0
- package/js/src/web/chat-forward.js +235 -0
- package/js/src/web/chat-games.js +195 -0
- package/js/src/web/chat-gestures.js +125 -0
- package/js/src/web/chat-gift-code-button.js +44 -0
- package/js/src/web/chat-gift-manage.js +556 -0
- package/js/src/web/chat-gift-unique.js +321 -0
- package/js/src/web/chat-giveaway.js +343 -0
- package/js/src/web/chat-global.js +342 -0
- package/js/src/web/chat-group-stickers.js +308 -0
- package/js/src/web/chat-info.js +71 -0
- package/js/src/web/chat-inline-bots.js +462 -0
- package/js/src/web/chat-instant-view-open.js +92 -0
- package/js/src/web/chat-instant-view-render.js +564 -0
- package/js/src/web/chat-instant-view.js +168 -0
- package/js/src/web/chat-invite-links.js +562 -0
- package/js/src/web/chat-invite.js +345 -0
- package/js/src/web/chat-join-requests.js +429 -0
- package/js/src/web/chat-jump.js +453 -0
- package/js/src/web/chat-leaving.js +116 -0
- package/js/src/web/chat-left-channels.js +131 -0
- package/js/src/web/chat-link-open.js +87 -0
- package/js/src/web/chat-link-preview.js +302 -0
- package/js/src/web/chat-list-menu.js +273 -0
- package/js/src/web/chat-list.js +353 -0
- package/js/src/web/chat-live-locations.js +323 -0
- package/js/src/web/chat-live.js +646 -0
- package/js/src/web/chat-marks.js +101 -0
- package/js/src/web/chat-media.js +928 -0
- package/js/src/web/chat-members.js +349 -0
- package/js/src/web/chat-message-stats.js +208 -0
- package/js/src/web/chat-message.js +1475 -0
- package/js/src/web/chat-model.js +533 -0
- package/js/src/web/chat-moderation.js +472 -0
- package/js/src/web/chat-music-save.js +55 -0
- package/js/src/web/chat-notify-settings.js +279 -0
- package/js/src/web/chat-notify-sound.js +85 -0
- package/js/src/web/chat-notify.js +286 -0
- package/js/src/web/chat-outbox.js +189 -0
- package/js/src/web/chat-paid-earnings.js +173 -0
- package/js/src/web/chat-paid-send.js +153 -0
- package/js/src/web/chat-paid.js +317 -0
- package/js/src/web/chat-passcode.js +252 -0
- package/js/src/web/chat-peer-actions.js +498 -0
- package/js/src/web/chat-person-extras.js +258 -0
- package/js/src/web/chat-photo-editor.js +506 -0
- package/js/src/web/chat-photo.js +262 -0
- package/js/src/web/chat-pin-drag.js +198 -0
- package/js/src/web/chat-pin-order.js +134 -0
- package/js/src/web/chat-pinned.js +431 -0
- package/js/src/web/chat-pip.js +160 -0
- package/js/src/web/chat-poll-create.js +357 -0
- package/js/src/web/chat-poll.js +716 -0
- package/js/src/web/chat-prepared-share.js +210 -0
- package/js/src/web/chat-privacy-paid.js +136 -0
- package/js/src/web/chat-privacy.js +822 -0
- package/js/src/web/chat-private-call.js +462 -0
- package/js/src/web/chat-profile-extras.js +470 -0
- package/js/src/web/chat-profile.js +546 -0
- package/js/src/web/chat-quick-reaction.js +161 -0
- package/js/src/web/chat-reactions.js +363 -0
- package/js/src/web/chat-read-time.js +131 -0
- package/js/src/web/chat-readers.js +399 -0
- package/js/src/web/chat-replies.js +140 -0
- package/js/src/web/chat-report.js +62 -0
- package/js/src/web/chat-request-peer.js +184 -0
- package/js/src/web/chat-rich-message.js +121 -0
- package/js/src/web/chat-round-record.js +560 -0
- package/js/src/web/chat-round.js +191 -0
- package/js/src/web/chat-row.js +155 -0
- package/js/src/web/chat-saved-gifs.js +72 -0
- package/js/src/web/chat-saved-tags.js +318 -0
- package/js/src/web/chat-saved.js +600 -0
- package/js/src/web/chat-schedule.js +499 -0
- package/js/src/web/chat-search.js +308 -0
- package/js/src/web/chat-security.js +639 -0
- package/js/src/web/chat-selection.js +671 -0
- package/js/src/web/chat-send-as.js +194 -0
- package/js/src/web/chat-send-gift.js +307 -0
- package/js/src/web/chat-service-line.js +144 -0
- package/js/src/web/chat-settings.js +376 -0
- package/js/src/web/chat-share.js +674 -0
- package/js/src/web/chat-shared.js +379 -0
- package/js/src/web/chat-sidebar.js +483 -0
- package/js/src/web/chat-similar-bots.js +90 -0
- package/js/src/web/chat-similar.js +192 -0
- package/js/src/web/chat-stars.js +385 -0
- package/js/src/web/chat-state.js +1107 -0
- package/js/src/web/chat-stats.js +756 -0
- package/js/src/web/chat-sticker-box.js +265 -0
- package/js/src/web/chat-sticker-settings.js +427 -0
- package/js/src/web/chat-sticker-trending.js +187 -0
- package/js/src/web/chat-stickers.js +969 -0
- package/js/src/web/chat-suggest.js +65 -0
- package/js/src/web/chat-tags.js +284 -0
- package/js/src/web/chat-theme-model.js +63 -0
- package/js/src/web/chat-theme.js +265 -0
- package/js/src/web/chat-todo-create.js +183 -0
- package/js/src/web/chat-top-peers.js +249 -0
- package/js/src/web/chat-topic-admin.js +422 -0
- package/js/src/web/chat-topics.js +254 -0
- package/js/src/web/chat-transcribe.js +328 -0
- package/js/src/web/chat-translate.js +211 -0
- package/js/src/web/chat-translation-switch.js +97 -0
- package/js/src/web/chat-ttl.js +271 -0
- package/js/src/web/chat-usernames.js +246 -0
- package/js/src/web/chat-view.js +1325 -0
- package/js/src/web/chat-views.js +303 -0
- package/js/src/web/chat-voice-chat.js +137 -0
- package/js/src/web/chat-voice-hooks.js +196 -0
- package/js/src/web/chat-voice-panel.js +307 -0
- package/js/src/web/chat-voice.js +477 -0
- package/js/src/web/chat-wallpaper.js +414 -0
- package/js/src/web/chat-web-apps.js +590 -0
- package/js/src/web/chat-webpage.js +69 -0
- package/js/src/web/chat-window.js +543 -0
- package/js/src/web/client-log.js +97 -0
- package/js/src/web/client.js +427 -0
- package/js/src/web/cloud-theme-model.js +135 -0
- package/js/src/web/cloud-themes.js +423 -0
- package/js/src/web/connection-guide.js +174 -0
- package/js/src/web/connection-guides.js +1251 -0
- package/js/src/web/connections/browser-sign-ins.js +317 -0
- package/js/src/web/connections/email-pull.js +61 -0
- package/js/src/web/connections/hash.js +20 -0
- package/js/src/web/connections/index.js +1219 -0
- package/js/src/web/connections/popularity.js +55 -0
- package/js/src/web/connections/recommended.js +20 -0
- package/js/src/web/connections/setup-steps.js +52 -0
- package/js/src/web/connections/telegram-qr-login.js +98 -0
- package/js/src/web/connections/telegram-sessions.js +681 -0
- package/js/src/web/connections/whatsapp-web.js +123 -0
- package/js/src/web/custom-emoji.js +133 -0
- package/js/src/web/cv-view.js +472 -0
- package/js/src/web/discover.js +214 -0
- package/js/src/web/discovery-shell.js +47 -0
- package/js/src/web/disk-banner.js +85 -0
- package/js/src/web/dom-telegram-calls.js +487 -0
- package/js/src/web/dom.js +1341 -0
- package/js/src/web/download/copy.js +262 -0
- package/js/src/web/download/download.css +292 -0
- package/js/src/web/download/downloads.js +211 -0
- package/js/src/web/download/index.html +33 -0
- package/js/src/web/download/model.js +197 -0
- package/js/src/web/download/page.js +378 -0
- package/js/src/web/download/verify.js +41 -0
- package/js/src/web/emoji-data.js +26 -0
- package/js/src/web/emoji-status-model.js +40 -0
- package/js/src/web/emoji-status.js +22 -0
- package/js/src/web/entity-extras.js +79 -0
- package/js/src/web/forum-topics.js +82 -0
- package/js/src/web/gif-id.js +17 -0
- package/js/src/web/gift-manage-model.js +146 -0
- package/js/src/web/giveaway-model.js +145 -0
- package/js/src/web/greetings-view.js +641 -0
- package/js/src/web/i18n.js +287 -0
- package/js/src/web/icons.js +571 -0
- package/js/src/web/index.html +50 -0
- package/js/src/web/language-switcher.js +66 -0
- package/js/src/web/live-clock.js +20 -0
- package/js/src/web/live-follow.js +82 -0
- package/js/src/web/live-place.js +174 -0
- package/js/src/web/live-watch.js +90 -0
- package/js/src/web/locales/en-chat-account.js +409 -0
- package/js/src/web/locales/en-chat-more.js +1410 -0
- package/js/src/web/locales/en-chat.js +1441 -0
- package/js/src/web/locales/en-folders.js +55 -0
- package/js/src/web/locales/en-transcribe.js +24 -0
- package/js/src/web/locales/en.js +1064 -0
- package/js/src/web/locales/hi-chat-account.js +415 -0
- package/js/src/web/locales/hi-chat-more.js +1422 -0
- package/js/src/web/locales/hi-chat.js +1448 -0
- package/js/src/web/locales/hi-folders.js +54 -0
- package/js/src/web/locales/hi-transcribe.js +25 -0
- package/js/src/web/locales/hi.js +1060 -0
- package/js/src/web/locales/index.js +27 -0
- package/js/src/web/locales/ru-chat-account.js +434 -0
- package/js/src/web/locales/ru-chat-more.js +1430 -0
- package/js/src/web/locales/ru-chat.js +1460 -0
- package/js/src/web/locales/ru-folders.js +55 -0
- package/js/src/web/locales/ru-transcribe.js +24 -0
- package/js/src/web/locales/ru.js +1076 -0
- package/js/src/web/locales/zh-chat-account.js +376 -0
- package/js/src/web/locales/zh-chat-more.js +1328 -0
- package/js/src/web/locales/zh-chat.js +1355 -0
- package/js/src/web/locales/zh-folders.js +52 -0
- package/js/src/web/locales/zh-transcribe.js +21 -0
- package/js/src/web/locales/zh.js +1024 -0
- package/js/src/web/lottie-sticker.js +165 -0
- package/js/src/web/media-src.js +57 -0
- package/js/src/web/message-links.js +159 -0
- package/js/src/web/message-parts.js +765 -0
- package/js/src/web/message-text.js +357 -0
- package/js/src/web/nav-items.js +29 -0
- package/js/src/web/notice.js +58 -0
- package/js/src/web/notify-rules.js +138 -0
- package/js/src/web/notify-sound.js +109 -0
- package/js/src/web/paid-portal.js +29 -0
- package/js/src/web/paid-send.js +217 -0
- package/js/src/web/passcode.js +206 -0
- package/js/src/web/pattern-matcher.wasm +0 -0
- package/js/src/web/pattern-worker.js +49 -0
- package/js/src/web/patterns-wasm.js +83 -0
- package/js/src/web/peer-avatar.js +241 -0
- package/js/src/web/peer-color.js +47 -0
- package/js/src/web/person-panel.js +373 -0
- package/js/src/web/photo-editor-model.js +305 -0
- package/js/src/web/photo-editor-render.js +145 -0
- package/js/src/web/poll-parts.js +190 -0
- package/js/src/web/privacy-prefs.js +77 -0
- package/js/src/web/private-call-model.js +102 -0
- package/js/src/web/profile-extras-model.js +113 -0
- package/js/src/web/profile-music.js +206 -0
- package/js/src/web/profile-stories-model.js +37 -0
- package/js/src/web/profile-stories.js +492 -0
- package/js/src/web/proxy-model.js +121 -0
- package/js/src/web/qr-code.js +486 -0
- package/js/src/web/quick-replies-model.js +228 -0
- package/js/src/web/quick-replies.js +489 -0
- package/js/src/web/rich-math.js +64 -0
- package/js/src/web/rich-message-model.js +37 -0
- package/js/src/web/rich-service-model.js +44 -0
- package/js/src/web/rich-text-nodes.js +103 -0
- package/js/src/web/schema-banner.js +51 -0
- package/js/src/web/service-texts.js +477 -0
- package/js/src/web/settings-media.js +133 -0
- package/js/src/web/settings-notify.js +283 -0
- package/js/src/web/settings-proxy.js +373 -0
- package/js/src/web/settings-scale.js +82 -0
- package/js/src/web/settings-sounds.js +250 -0
- package/js/src/web/settings-view.js +233 -0
- package/js/src/web/shell/app-shell.js +205 -0
- package/js/src/web/shortcuts.js +234 -0
- package/js/src/web/spinner.js +89 -0
- package/js/src/web/stars-model.js +120 -0
- package/js/src/web/stats-graph.js +447 -0
- package/js/src/web/sticker-settings-model.js +26 -0
- package/js/src/web/stories-model.js +212 -0
- package/js/src/web/stories.js +391 -0
- package/js/src/web/story-actions.js +505 -0
- package/js/src/web/story-extras.js +272 -0
- package/js/src/web/story-manage-model.js +83 -0
- package/js/src/web/story-manage.js +234 -0
- package/js/src/web/story-post-model.js +112 -0
- package/js/src/web/story-post.js +416 -0
- package/js/src/web/story-viewer.js +804 -0
- package/js/src/web/telegram-account-scope.js +92 -0
- package/js/src/web/telegram-online.js +102 -0
- package/js/src/web/text-shortcuts.js +107 -0
- package/js/src/web/tutorial-follow.js +278 -0
- package/js/src/web/tutorial-placement.js +120 -0
- package/js/src/web/tutorial-start.js +62 -0
- package/js/src/web/tutorial.js +1326 -0
- package/js/src/web/ui-scale.js +165 -0
- package/js/src/web/usernames-model.js +40 -0
- package/js/src/web/views.js +1236 -0
- package/js/src/web/voice-chat-model.js +83 -0
- package/js/src/web/voice-chat-sdp.js +194 -0
- package/js/src/web/voice-chat-session.js +204 -0
- package/js/src/web/voice-ogg.js +456 -0
- package/js/src/web/wallpaper-css.js +158 -0
- package/js/src/web/web-apps-model.js +415 -0
- package/js/src/web/web-mode-banner.js +188 -0
- package/js/src/web/web-mode.js +91 -0
- package/js/src/web/webpage-kind.js +28 -0
- package/js/src/web/webrtc-sync.js +132 -0
- package/package.json +423 -4
package/LICENSE
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
This is free and unencumbered software released into the public domain.
|
|
2
|
+
|
|
3
|
+
Anyone is free to copy, modify, publish, use, compile, sell, or
|
|
4
|
+
distribute this software, either in source code form or as a compiled
|
|
5
|
+
binary, for any purpose, commercial or non-commercial, and by any
|
|
6
|
+
means.
|
|
7
|
+
|
|
8
|
+
In jurisdictions that recognize copyright laws, the author or authors
|
|
9
|
+
of this software dedicate any and all copyright interest in the
|
|
10
|
+
software to the public domain. We make this dedication for the benefit
|
|
11
|
+
of the public at large and to the detriment of our heirs and
|
|
12
|
+
successors. We intend this dedication to be an overt act of
|
|
13
|
+
relinquishment in perpetuity of all present and future rights to this
|
|
14
|
+
software under copyright law.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
19
|
+
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
20
|
+
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
21
|
+
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
22
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
|
23
|
+
|
|
24
|
+
For more information, please refer to <https://unlicense.org>
|
package/README.hi.md
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# meta-sovereign (languages: [en](README.md) • [zh](README.zh.md) • hi • [ru](README.ru.md))
|
|
2
|
+
|
|
3
|
+
`meta-sovereign` एक व्यक्तिगत **meta profile sovereign** सिस्टम है: ऐसा unified inbox, CRM और automation platform जिसका स्वामित्व सचमुच उपयोगकर्ता के पास रहता है। यह local-first और privacy-respecting है, और VK, Telegram, X, WhatsApp, Facebook, LinkedIn, career.habr.com, hh.ru, superjob.ru तथा email providers से contacts, chats, email और patterns को एक जगह लाता है।
|
|
4
|
+
|
|
5
|
+
## अभी चलाकर देखें (install नहीं)
|
|
6
|
+
|
|
7
|
+
किसी भी आधुनिक browser में <https://link-foundation.github.io/meta-sovereign/> खोलें। Web app तुरंत boot होता है, पूरी तरह browser में चलता है, और default रूप से local storage में लिखता है। जब तक आप server नहीं जोड़ते, आपका data device से बाहर नहीं जाता।
|
|
8
|
+
|
|
9
|
+
> अगर link अभी live नहीं है, तो GitHub Pages workflow (`.github/workflows/pages.yml`) अगली `main` push पर इसे publish करेगा।
|
|
10
|
+
|
|
11
|
+
Server के बिना hosted app **browser-only mode** में चलता है: contacts, patterns और broadcasts browser store से काम करते हैं, जबकि imports, automations, sync, CV sync और greetings local server का इंतज़ार करते हैं। एक notice server start करने का command और **Check again** button दिखाता है।
|
|
12
|
+
|
|
13
|
+
## Desktop app
|
|
14
|
+
|
|
15
|
+
अपने system का installer <https://link-foundation.github.io/meta-sovereign/download/> से या [GitHub releases](https://github.com/link-foundation/meta-sovereign/releases) से download करें: Linux (AppImage, deb, tar.gz), macOS (dmg, zip) और Windows (installer, portable), हर एक x64 और arm64 के लिए। Desktop app में server bundled है, इसलिए खुद server start किए बिना हर feature काम करता है। Unsigned builds की पहली launch, checksums और updates [`docs/USER-GUIDE.hi.md` §4](docs/USER-GUIDE.hi.md#4-desktop-या-mobile-app-install-करें) में हैं।
|
|
16
|
+
|
|
17
|
+
## local server चलाएँ (sync के लिए recommended)
|
|
18
|
+
|
|
19
|
+
Devices के बीच sync, encrypted backups और पूरा feature set इस्तेमाल करने के लिए SPA के पास local server start करें। दो backend उपलब्ध हैं; दोनों समान wire protocol लागू करते हैं (देखें [`docs/SERVER-PARITY.hi.md`](docs/SERVER-PARITY.hi.md))।
|
|
20
|
+
|
|
21
|
+
### Rust server — single binary, runtime नहीं, पर सीमित
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
git clone https://github.com/link-foundation/meta-sovereign
|
|
25
|
+
cd meta-sovereign
|
|
26
|
+
cargo run --manifest-path rust/Cargo.toml -p meta-sovereign-server -- serve
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
> **Rust server की सीमाएँ।** यह links को **सिर्फ़ memory में** रखता है: disk पर कुछ नहीं लिखा जाता, इसलिए server बंद होते ही सारा data चला जाता है। इसमें **कोई source adapters नहीं हैं**: Telegram, VK, GitHub, Upwork आदि से live fetch नहीं, outbound HTTP/TLS client नहीं (email सिर्फ़ archives ingest करता है), और automations, CV sync, browser auto-import, backups तथा `/api/export-encrypted` नहीं हैं। असली इस्तेमाल के लिए JS server या desktop app चुनें। Route-by-route सूची [`docs/SERVER-PARITY.hi.md`](docs/SERVER-PARITY.hi.md) में है।
|
|
30
|
+
|
|
31
|
+
### JavaScript server — पूरा feature set (Node/Bun/Deno), source से
|
|
32
|
+
|
|
33
|
+
Package अभी **npm पर publish नहीं है** (registry 404 देती है), इसलिए `npx -y meta-sovereign serve` आज काम नहीं करता। Server को source checkout से चलाएँ (Node.js और npm चाहिए):
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
git clone https://github.com/link-foundation/meta-sovereign
|
|
37
|
+
cd meta-sovereign
|
|
38
|
+
npm install
|
|
39
|
+
node js/bin/meta-sovereign.js serve
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Package npm पर publish होने के बाद `npx -y meta-sovereign serve` (या `npm install -g meta-sovereign && meta-sovereign serve`) काम करेगा। तब तक toolchain के बिना server चलाने का तरीका desktop app (ऊपर) है।
|
|
43
|
+
|
|
44
|
+
दोनों backend default रूप से <http://127.0.0.1:8787> पर listen करते हैं। JS server hosted app के origin (`https://link-foundation.github.io`) को CORS headers के साथ जवाब देता है; दूसरे origins `meta-sovereign serve --allow-origin=<origins>` या `MS_ALLOW_ORIGINS` से allow करें। Safari `https` pages को `http://127.0.0.1` तक नहीं पहुँचने देता, लेकिन `https://127.0.0.1` तक पहुँचने देता है; server अब उसी port पर HTTPS का भी जवाब देता है और इसके लिए localhost का अपना certificate बनाता है। एक बार `node js/bin/meta-sovereign.js trust` चलाएँ (macOS login keychain में जोड़ता है; दूसरे systems पर certificate का path print होता है) या Safari में `https://127.0.0.1:8787/trust` खोलें और prompts follow करें — उसके बाद hosted app Safari में सीधे server से connect हो जाता है। Trust से पहले notice server का नाम दिखाता है, उसकी copy (<http://127.0.0.1:8787>) और **सर्वर पर भरोसा करें** (<https://127.0.0.1:8787/trust>) का link देता है। `--tls=false` / `MS_TLS=off` HTTPS बंद करता है; server की अपनी copy fallback रहती है। Hosted SPA `discoverServer()` से local server खोजता है (saved override → `127.0.0.1` ports)। अगर browser auto-connect नहीं करता, app में **Settings → Server** खोलें और binary द्वारा print किया गया URL paste करें।
|
|
45
|
+
|
|
46
|
+
Default UI hosted app है: `serve` उसका पता छापता है, <https://link-foundation.github.io/meta-sovereign/>, और app हमारे port 8787 पर server को खुद ढूँढ लेता है (वह 8788, 7001, 7002 और 3000 भी देखता है; किसी दूसरे port पर `serve` बताता है कि उसे **Settings → Server** में set करें), इसलिए server को web site host नहीं करनी पड़ती। <http://127.0.0.1:8787> पर उसकी अपनी copy Safari और बिना internet काम के लिए fallback रहती है; `serve --local-ui=false` (या `MS_LOCAL_UI=off`) उसे बंद करता है, और तब `/` hosted app खोलता है। `--ui-url=<url>` (या `MS_UI_URL`) कोई दूसरी hosted copy बताता है, जैसे किसी fork का Pages, और उसके origin को अनुमति देता है।
|
|
47
|
+
|
|
48
|
+
## SPA को server से जोड़ें
|
|
49
|
+
|
|
50
|
+
SPA server को इस क्रम में चुनता है ([`js/src/web/discover.js`](js/src/web/discover.js)):
|
|
51
|
+
|
|
52
|
+
1. **Same origin** — जब SPA सीधे JS या Rust server से serve हो।
|
|
53
|
+
2. **Saved override** — `localStorage.metaServer`, जिसे app का **Settings → Server** prompt set करता है।
|
|
54
|
+
3. **Runtime shell candidates** — Electron और Capacitor embedded server URL inject करते हैं।
|
|
55
|
+
4. **`127.0.0.1` ports** — default local-server port automatic probe होता है।
|
|
56
|
+
5. **Caller-supplied LAN candidates** — programmatically pass किए गए URLs।
|
|
57
|
+
|
|
58
|
+
यदि कोई server जवाब नहीं देता, SPA **offline mode** में रहता है: writes local browser store में जाती हैं ([`createBrowserStore`](js/src/storage/browser-store.js): IndexedDB → localStorage → memory) और अगली बार server मिलने पर [`OfflineClient`](js/src/web/client.js) उन्हें replay करता है।
|
|
59
|
+
|
|
60
|
+
पूरी user flow guide — बिना install, Rust server, JS server, desktop/mobile app, encrypted export और troubleshooting — [`docs/USER-GUIDE.hi.md`](docs/USER-GUIDE.hi.md) में है।
|
|
61
|
+
|
|
62
|
+
## यह क्या करता है
|
|
63
|
+
|
|
64
|
+
- **Unified inbox**: VK, Telegram, X, WhatsApp, Facebook, LinkedIn, career.habr.com, hh.ru, superjob.ru और email।
|
|
65
|
+
- **CV synchronisation**: LinkedIn, hh.ru, Habr Career, Naukri, VietnamWorks, TopCV और SuperJob — हर profile को अपने ही browser से पढ़ें, field दर field अंतर देखें और तय किए गए values वापस लिखें ([`docs/CV-SYNC.hi.md`](docs/CV-SYNC.hi.md))।
|
|
66
|
+
- **Greetings**: VK, Telegram, WhatsApp, Messenger, X और email पर "hi" या greeting sticker से बातचीत शुरू करें, जैसे [konard/vk-bot](https://github.com/konard/vk-bot) करता है — UI में stickers चुनें, देखें किसे क्या जाएगा, और messages के बीच pause के साथ भेजें ([`docs/GREETINGS.hi.md`](docs/GREETINGS.hi.md))।
|
|
67
|
+
- **Personal CRM**: contacts, communities, group memberships, intersections और mass-personal outreach।
|
|
68
|
+
- **Personal memory**: conversations से structured `question → answer` facts।
|
|
69
|
+
- **Conversation automation platform**: pattern editors, reply-variation editors और n8n-style dialog graphs।
|
|
70
|
+
- **Portable data store**: binary [Doublets](https://github.com/linksplatform/doublets-rs) + text [Links Notation](https://github.com/link-foundation/links-notation), automated backups और `.lino` import/export।
|
|
71
|
+
- **Local-first runtime**: user-owned devices के बीच WebRTC sync और optional self-hosted personal cloud।
|
|
72
|
+
- **Two stacks**: JS + Rust/WebAssembly default stack और pure Rust server/microservice variant; on-disk format साझा है।
|
|
73
|
+
|
|
74
|
+
पूर्ण requirement → status mapping [`docs/REQUIREMENTS.hi.md`](docs/REQUIREMENTS.hi.md) में है; per-issue case studies [`docs/case-studies/`](docs/case-studies/) में हैं।
|
|
75
|
+
|
|
76
|
+
Telegram क्लाइंट की हर सुविधा — समर्थित, आंशिक, रोकी हुई या असमर्थित, और API या वेब ऐप से पहुँच — [`docs/FEATURES.hi.md`](docs/FEATURES.hi.md) में दर्ज है।
|
|
77
|
+
|
|
78
|
+
## स्थिति
|
|
79
|
+
|
|
80
|
+
issue #1 का prototype implement हो चुका है और PR #2 में track है:
|
|
81
|
+
|
|
82
|
+
- **Data layer (R-A\*)**: `DualStore` Doublets binary और Links Notation text को lock-step में रखता है; AES-256-GCM backups और `secret:*` link encryption (केवल `MS_SECRET_PASSPHRASE` सेट होने पर; बाक़ी store encrypted नहीं) उपलब्ध हैं।
|
|
83
|
+
- **Service connectors (R-E\*)**: VK, Telegram, X, WhatsApp, Facebook, LinkedIn, career.habr.com, hh.ru, superjob.ru और email के archive parsers तथा live connectors।
|
|
84
|
+
- **Pattern matching और automation (R-C\*)**: `inferRegex`, `simplifyRegex`, `compilePeg`, fuzzy reply variation extraction और `createGraph` / `runGraph`।
|
|
85
|
+
- **CRM (R-D\*)**: contact aggregation, audience DSL, mass-personal outreach, profile और resume sync envelopes।
|
|
86
|
+
- **CV synchronisation (R-V\*)**: सात job platforms के declarative browser plans, cross-platform diff, चुनिंदा writes और हर run के लिए HTML/screenshot artifacts वाली redacted telemetry stream।
|
|
87
|
+
- **Distribution (R-F\*)**: NPM library, CLI, local server, Electron shell, Capacitor mobile shell और Docker web + WebRTC microservices।
|
|
88
|
+
- **Stacks (R-G\*)**: JS server + React SPA + Rust/WASM heavy workloads, साथ में pure Rust server।
|
|
89
|
+
- **Hardening (R-K\*)**: soft delete by default, AES-256-GCM master-key vault, multiple unlock methods और encrypted export।
|
|
90
|
+
- **Browser publishing (R-L\*)**: GitHub Pages CI workflow, public SPA URL और user-first README/user guide।
|
|
91
|
+
|
|
92
|
+
## Repository structure
|
|
93
|
+
|
|
94
|
+
`meta-sovereign` multi-language repository है:
|
|
95
|
+
|
|
96
|
+
- **JavaScript** `js/` में रहता है: `js/src/`, `js/tests/`, `js/scripts/`, `js/bin/`, `js/electron/`, `js/examples/`, `js/experiments/`।
|
|
97
|
+
- **Rust** `rust/` में रहता है: workspace manifest, lockfile और crates।
|
|
98
|
+
- **Native shells**: `js/electron/`, `mobile/`, `capacitor.config.json`, `docker/`।
|
|
99
|
+
- **Operations**: `.github/workflows/`, `.changeset/`, `docs/`।
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
.
|
|
103
|
+
├── .changeset/ # Changeset configuration
|
|
104
|
+
├── .github/workflows/ # GitHub Actions CI/CD
|
|
105
|
+
├── docker/ # Web + WebRTC Dockerfiles
|
|
106
|
+
├── docs/ # Requirements, user guide, server parity, case studies
|
|
107
|
+
├── js/ # JavaScript tree
|
|
108
|
+
├── mobile/ # Capacitor mobile shell
|
|
109
|
+
├── rust/ # Rust workspace
|
|
110
|
+
└── package.json # Node.js package manifest
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Developer reference
|
|
116
|
+
|
|
117
|
+
यह भाग contributors के लिए है।
|
|
118
|
+
|
|
119
|
+
### Quick start
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
bun install
|
|
123
|
+
bun test
|
|
124
|
+
npm test
|
|
125
|
+
deno test --allow-read --allow-write --allow-env --allow-net --allow-sys js/tests
|
|
126
|
+
|
|
127
|
+
RUN_BROWSER_E2E=1 npm run test:e2e:browser
|
|
128
|
+
cargo test --manifest-path rust/Cargo.toml --workspace
|
|
129
|
+
npm run build:web
|
|
130
|
+
npm run build:pages
|
|
131
|
+
bun run lint
|
|
132
|
+
bun run format:check
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### CI/CD और quality gates
|
|
136
|
+
|
|
137
|
+
Pipeline fast checks, slow matrix tests, API docs build, broken-link checks और automated release चलाता है। हर job में explicit `timeout-minutes` है, और individual tests में `node --test --test-timeout=30000` / `bun test --timeout 30000` guard है।
|
|
138
|
+
|
|
139
|
+
हर PR को ये checks पास करने चाहिए:
|
|
140
|
+
|
|
141
|
+
- ESLint और Prettier;
|
|
142
|
+
- `jscpd` duplication check;
|
|
143
|
+
- secrets scan;
|
|
144
|
+
- file line limits;
|
|
145
|
+
- Node, Bun, Deno × Ubuntu, macOS, Windows test matrix;
|
|
146
|
+
- docs बदलने पर documentation validation।
|
|
147
|
+
|
|
148
|
+
विस्तार के लिए [`docs/BEST-PRACTICES.hi.md`](docs/BEST-PRACTICES.hi.md) देखें।
|
|
149
|
+
|
|
150
|
+
### Scripts reference
|
|
151
|
+
|
|
152
|
+
| Script | Description |
|
|
153
|
+
| ---------------------- | --------------------------------- |
|
|
154
|
+
| `bun test` | Bun से tests चलाएँ |
|
|
155
|
+
| `bun run lint` | ESLint से code जाँचें |
|
|
156
|
+
| `bun run lint:fix` | lint issues auto-fix करें |
|
|
157
|
+
| `bun run format` | Prettier से formatting करें |
|
|
158
|
+
| `bun run format:check` | formatting check करें |
|
|
159
|
+
| `bun run check` | lint + format + duplication चलाएँ |
|
|
160
|
+
| `bun run changeset` | नया changeset बनाएँ |
|
|
161
|
+
| `bun run build:web` | production SPA bundle बनाएँ |
|
|
162
|
+
| `bun run build:pages` | `dist/pages/` artifact बनाएँ |
|
|
163
|
+
| `bun run build:mobile` | Capacitor mobile bundle बनाएँ |
|
|
164
|
+
|
|
165
|
+
### Contributing
|
|
166
|
+
|
|
167
|
+
विस्तृत guidelines [`docs/CONTRIBUTING.hi.md`](docs/CONTRIBUTING.hi.md) में हैं। सामान्य flow: fork करें, branch बनाएँ, बदलाव करें, changeset बनाएँ, commit करें, push करें और Pull Request खोलें।
|
|
168
|
+
|
|
169
|
+
## License
|
|
170
|
+
|
|
171
|
+
[Unlicense](LICENSE) - public domain.
|
package/README.md
CHANGED
|
@@ -1,3 +1,361 @@
|
|
|
1
|
-
#
|
|
1
|
+
# meta-sovereign (languages: en • [zh](README.zh.md) • [hi](README.hi.md) • [ru](README.ru.md))
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A personal **meta profile sovereign** system — a unified inbox + CRM + automation platform that the user actually owns. Local-first, privacy-respecting, with all your contacts, chats, email, and patterns from VK, Telegram, X, WhatsApp, Facebook, LinkedIn, career.habr.com, hh.ru, superjob.ru, email, GitHub, Upwork, and PeoplePerHour providers.
|
|
4
|
+
|
|
5
|
+
## Try it now (no install)
|
|
6
|
+
|
|
7
|
+
Open <https://link-foundation.github.io/meta-sovereign/> in any modern browser. The web app boots immediately, runs entirely in your browser, and writes to local storage by default — nothing leaves your device until you point it at a server.
|
|
8
|
+
|
|
9
|
+
> If the link is not yet live, the GitHub Pages workflow (`.github/workflows/pages.yml`) publishes it on the next push to `main`.
|
|
10
|
+
|
|
11
|
+
Without a server the hosted app runs in **browser-only mode**: contacts, patterns and broadcasts work from the browser store, while imports, automations, sync, CV sync and greetings wait for a local server. A notice shows the command to start one and a **Check again** button.
|
|
12
|
+
|
|
13
|
+
## Desktop app
|
|
14
|
+
|
|
15
|
+
Download the installer for your system from <https://link-foundation.github.io/meta-sovereign/download/>, or from [GitHub releases](https://github.com/link-foundation/meta-sovereign/releases): Linux (AppImage, deb, tar.gz), macOS (dmg, zip) and Windows (installer, portable), each for x64 and arm64. The desktop app bundles the server, so every feature works without starting one yourself. First-launch steps for unsigned builds, checksums and update notes are in [`docs/USER-GUIDE.md` §4](docs/USER-GUIDE.md#4-install-the-desktop-or-mobile-app).
|
|
16
|
+
|
|
17
|
+
## Run a local server (recommended for sync)
|
|
18
|
+
|
|
19
|
+
To sync between devices, keep encrypted backups, and unlock the full feature set, start a local server next to the SPA. Two backends are available; both implement the same wire protocol (see [`docs/SERVER-PARITY.md`](docs/SERVER-PARITY.md)).
|
|
20
|
+
|
|
21
|
+
### Rust server — single binary, no runtime, but limited
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
git clone https://github.com/link-foundation/meta-sovereign
|
|
25
|
+
cd meta-sovereign
|
|
26
|
+
cargo run --manifest-path rust/Cargo.toml -p meta-sovereign-server -- serve
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
> **Rust server limits.** It keeps links **in memory only**: nothing is written to disk, so everything is gone when the server stops. It has **no source adapters**: no live fetches from Telegram, VK, GitHub, Upwork or similar, no outbound HTTP or TLS client (email only ingests archives), and no automations, CV sync, browser auto-import, backups or `/api/export-encrypted`. Pick the JS server or the desktop app for real use. The route-by-route list is in [`docs/SERVER-PARITY.md`](docs/SERVER-PARITY.md).
|
|
30
|
+
|
|
31
|
+
### JavaScript server — full feature set (Node/Bun/Deno), from source
|
|
32
|
+
|
|
33
|
+
The package is **not published on npm yet** (the registry answers 404), so `npx -y meta-sovereign serve` does not work today. Run the server from a source checkout (needs Node.js and npm):
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
git clone https://github.com/link-foundation/meta-sovereign
|
|
37
|
+
cd meta-sovereign
|
|
38
|
+
npm install
|
|
39
|
+
node js/bin/meta-sovereign.js serve
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Once the package is published to npm, `npx -y meta-sovereign serve` (or `npm install -g meta-sovereign && meta-sovereign serve`) will work. Until then, the desktop app (above) is the way to run the server without a toolchain.
|
|
43
|
+
|
|
44
|
+
Either backend listens on <http://127.0.0.1:8787> by default. The JS server answers the hosted app's origin (`https://link-foundation.github.io`) with CORS headers; allow other origins with `meta-sovereign serve --allow-origin=<origins>` or `MS_ALLOW_ORIGINS`. Safari does not let `https` pages reach `http://127.0.0.1`, but it allows `https://127.0.0.1`; the server also answers HTTPS on the same port with its own certificate for localhost — run `node js/bin/meta-sovereign.js trust` once (macOS adds it to the login keychain; other systems print the certificate path), or open `https://127.0.0.1:8787/trust` in Safari and follow the prompts, and the hosted app connects directly. Before trusting, the notice names the server, links its own copy (<http://127.0.0.1:8787>) and a **Trust the server** link (<https://127.0.0.1:8787/trust>). `--tls=false` / `MS_TLS=off` turns HTTPS off; the server's own copy remains the fallback. The hosted SPA discovers the local server automatically through `discoverServer()` (saved override → `127.0.0.1` ports). If your browser does not auto-connect, open the in-app **Settings → Server** prompt and paste the URL the binary printed.
|
|
45
|
+
|
|
46
|
+
The hosted app is the default UI: `serve` prints its address, <https://link-foundation.github.io/meta-sovereign/>, and the app finds the server on our port 8787 by itself (it also looks at 8788, 7001, 7002 and 3000; on another port `serve` says to set it in **Settings → Server**), so the server does not have to host a web site. Its own copy at <http://127.0.0.1:8787> stays as a fallback for Safari and for working offline; `serve --local-ui=false` (or `MS_LOCAL_UI=off`) turns it off, and `/` then opens the hosted app. `--ui-url=<url>` (or `MS_UI_URL`) names another hosted copy, such as a fork's Pages, and allows its origin.
|
|
47
|
+
|
|
48
|
+
## Connect the SPA to your server
|
|
49
|
+
|
|
50
|
+
The SPA picks a server in this order ([`js/src/web/discover.js`](js/src/web/discover.js)):
|
|
51
|
+
|
|
52
|
+
1. **Same origin** — when you serve the SPA from the JS or Rust server directly.
|
|
53
|
+
2. **Saved override** — `localStorage.metaServer`. Set via the in-app **Settings → Server** prompt.
|
|
54
|
+
3. **Runtime shell candidates** — Electron and Capacitor inject the embedded server URL.
|
|
55
|
+
4. **`127.0.0.1` ports** — the default local-server port is probed automatically.
|
|
56
|
+
5. **Caller-supplied LAN candidates** — passed programmatically.
|
|
57
|
+
|
|
58
|
+
If nothing answers, the SPA falls back to **offline mode**: writes go to the local browser store ([`createBrowserStore`](js/src/storage/browser-store.js): IndexedDB → localStorage → in-memory) and replay automatically through [`OfflineClient`](js/src/web/client.js) the next time a server appears.
|
|
59
|
+
|
|
60
|
+
The full user-facing flow — install nothing, install Rust server, install JS server, install desktop / mobile app, encrypted export, troubleshooting — is in [`docs/USER-GUIDE.md`](docs/USER-GUIDE.md).
|
|
61
|
+
|
|
62
|
+
## What it does
|
|
63
|
+
|
|
64
|
+
- **Unified inbox** spanning VK, Telegram, X, WhatsApp, Facebook, LinkedIn, career.habr.com, hh.ru, superjob.ru, email, GitHub, Upwork, and PeoplePerHour.
|
|
65
|
+
- **CV synchronisation** across LinkedIn, hh.ru, Habr Career, Naukri, VietnamWorks, TopCV and SuperJob: read every profile through your own browser, see the differences field by field, and push the agreed values back ([`docs/CV-SYNC.md`](docs/CV-SYNC.md)).
|
|
66
|
+
- **Greetings**: open dialogs on VK, Telegram, WhatsApp, Messenger, X and email with a "hi" or a greeting sticker, the way [konard/vk-bot](https://github.com/konard/vk-bot) does — pick stickers in the UI, preview who gets what, send with a pause between messages ([`docs/GREETINGS.md`](docs/GREETINGS.md)).
|
|
67
|
+
- **Chat** with the connected Telegram account that behaves like Telegram's own apps: each message sent once, delivery ticks, live updates and catch-up after a gap, read marking, cloud drafts, retries that survive a reload. How the open-source Telegram, Signal and Element clients do it, pinned to the commits we read, is in [`docs/CHAT-REFERENCES.md`](docs/CHAT-REFERENCES.md).
|
|
68
|
+
- **Personal CRM**: contacts, communities, group memberships, intersections, mass-personal outreach.
|
|
69
|
+
- **Personal memory**: structured `question → answer` facts captured automatically from conversations.
|
|
70
|
+
- **Conversation automation platform**: pattern editors, reply-variation editors, n8n-style dialog graphs.
|
|
71
|
+
- **Portable data store**: dual binary ([Doublets](https://github.com/linksplatform/doublets-rs)) + text ([Links Notation](https://github.com/link-foundation/links-notation)) representation, automated backups, `.lino` import/export.
|
|
72
|
+
- **Local-first runtime**: WebRTC sync between user-owned devices, optional self-hosted personal cloud.
|
|
73
|
+
- **Two stacks**: JS + Rust/WebAssembly (default) and pure Rust (server/microservice variant). The on-disk format is shared.
|
|
74
|
+
|
|
75
|
+
The full requirement → status mapping lives in [`docs/REQUIREMENTS.md`](docs/REQUIREMENTS.md); the per-issue case studies live in [`docs/case-studies/`](docs/case-studies/).
|
|
76
|
+
|
|
77
|
+
Every Telegram client feature, with what is supported, partial, parked or not supported, and whether it is reachable by API or web app, is tracked in [`docs/FEATURES.md`](docs/FEATURES.md).
|
|
78
|
+
|
|
79
|
+
## Status
|
|
80
|
+
|
|
81
|
+
The prototype targeted by issue #1 is implemented and tracked in PR #2:
|
|
82
|
+
|
|
83
|
+
- **Data layer (R-A\*)**: `DualStore` keeps Doublets binary + Links Notation text in lock-step, with AES-256-GCM encrypted backups (`createBackupScheduler`) and `secret:*` link encryption (only when `MS_SECRET_PASSPHRASE` is set; the rest of the store is not encrypted).
|
|
84
|
+
- **Service connectors (R-E\*)**: archive parser + live API connector for VK, Telegram, X, WhatsApp, Facebook, LinkedIn, career.habr.com, hh.ru, superjob.ru, email, GitHub, Upwork, and PeoplePerHour.
|
|
85
|
+
- **Pattern matching and automation (R-C\*)**: `inferRegex` / `simplifyRegex` / `compilePeg`, fuzzy reply-variation extraction, and an n8n-style automation graph (`createGraph` + `runGraph`).
|
|
86
|
+
- **CRM (R-D\*)**: contact aggregation, audience DSL, mass-personal outreach, profile and resume sync envelopes.
|
|
87
|
+
- **CV synchronisation (R-V\*)**: declarative browser plans for seven job platforms, cross-platform diff, selective writes, and a redacted telemetry stream with HTML/screenshot artifacts for every run.
|
|
88
|
+
- **Distribution (R-F\*)**: NPM library, CLI (`js/bin/meta-sovereign.js`), local server (`meta-sovereign serve`), Electron shell, Capacitor mobile shell, Docker microservices for web + WebRTC.
|
|
89
|
+
- **Stacks (R-G\*)**: default JS server + React SPA + Rust/WASM heavy workloads; alternative pure-Rust server (`meta-sovereign-rs serve`).
|
|
90
|
+
- **Hardening (R-K\*)**: soft-delete by default, AES-256-GCM master-key vault with multi-method unlock, encrypted export.
|
|
91
|
+
- **Browser publishing (R-L\*)**: GitHub Pages CI workflow, SPA on a public URL, user-first README and user guide.
|
|
92
|
+
|
|
93
|
+
## Repository structure
|
|
94
|
+
|
|
95
|
+
`meta-sovereign` is multi-language. Each language tree mirrors the corresponding [link-foundation AI-driven-development pipeline template](https://github.com/link-foundation):
|
|
96
|
+
|
|
97
|
+
- **JavaScript** lives under `js/`: `js/src/`, `js/tests/`, `js/scripts/`, `js/bin/`, `js/electron/`, `js/examples/`, and `js/experiments/`.
|
|
98
|
+
- **Rust** lives under `rust/`: `rust/Cargo.toml`, `rust/Cargo.lock`, and the `rust/crates/` workspace (`meta-sovereign-server`, `meta-sovereign-core`, `meta-sovereign-wasm`).
|
|
99
|
+
- **Native shells**: `js/electron/` (desktop), `mobile/` + `capacitor.config.json` (iOS/Android), `docker/` (web + WebRTC microservices).
|
|
100
|
+
- **Operations**: `.github/workflows/` (CI/CD), `.changeset/` (release management), `docs/` (this guide and case studies).
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
.
|
|
104
|
+
├── .changeset/ # Changeset configuration
|
|
105
|
+
├── .github/workflows/ # GitHub Actions CI/CD (release.yml, links.yml, pages.yml)
|
|
106
|
+
├── .husky/ # Git hooks (pre-commit)
|
|
107
|
+
├── docker/ # Web + WebRTC microservice Dockerfiles
|
|
108
|
+
├── docs/ # REQUIREMENTS, USER-GUIDE, SERVER-PARITY, case studies
|
|
109
|
+
├── js/ # JavaScript tree (src, tests, scripts, bin, electron)
|
|
110
|
+
├── mobile/ # Capacitor mobile shell
|
|
111
|
+
├── rust/ # Rust workspace manifest, lockfile, and crates
|
|
112
|
+
├── bunfig.toml # Bun configuration
|
|
113
|
+
├── capacitor.config.json # Capacitor mobile config
|
|
114
|
+
├── deno.json # Deno configuration
|
|
115
|
+
└── package.json # Node.js package manifest
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Developer reference
|
|
121
|
+
|
|
122
|
+
Everything below is for contributors. End-users do not need to read it.
|
|
123
|
+
|
|
124
|
+
### Inherited features (CI/CD baseline)
|
|
125
|
+
|
|
126
|
+
- **Multi-runtime support**: Works with Bun, Node.js, and Deno.
|
|
127
|
+
- **Universal testing**: Uses [test-anywhere](https://github.com/link-foundation/test-anywhere) for cross-runtime tests.
|
|
128
|
+
- **Automated releases**: Changesets-based versioning with GitHub Actions.
|
|
129
|
+
- **Code quality**: ESLint + Prettier with pre-commit hooks via Husky.
|
|
130
|
+
- **Package manager agnostic**: Works with bun, npm, yarn, pnpm, and deno.
|
|
131
|
+
- **Broken link checks**: Automated link validation with [lychee](https://github.com/lycheeverse/lychee-action) and Web Archive fallback suggestions.
|
|
132
|
+
- **GitHub Pages publishing**: `pages.yml` deploys the SPA on every push to `main` (this PR).
|
|
133
|
+
|
|
134
|
+
### Quick Start
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
# Install dependencies
|
|
138
|
+
bun install
|
|
139
|
+
|
|
140
|
+
# Run tests
|
|
141
|
+
bun test
|
|
142
|
+
|
|
143
|
+
# Or with other runtimes:
|
|
144
|
+
npm test
|
|
145
|
+
deno test --allow-read --allow-write --allow-env --allow-net --allow-sys js/tests
|
|
146
|
+
|
|
147
|
+
# Run the real-browser e2e (opt-in; needs Playwright + Chromium)
|
|
148
|
+
RUN_BROWSER_E2E=1 npm run test:e2e:browser
|
|
149
|
+
|
|
150
|
+
# Run the Rust workspace tests
|
|
151
|
+
cargo test --manifest-path rust/Cargo.toml --workspace
|
|
152
|
+
|
|
153
|
+
# Build the SPA bundle
|
|
154
|
+
npm run build:web
|
|
155
|
+
|
|
156
|
+
# Build the GitHub Pages artifact (writes dist/pages/)
|
|
157
|
+
npm run build:pages
|
|
158
|
+
|
|
159
|
+
# Lint code
|
|
160
|
+
bun run lint
|
|
161
|
+
|
|
162
|
+
# Format code
|
|
163
|
+
bun run format
|
|
164
|
+
|
|
165
|
+
# Check all (lint + format + file size)
|
|
166
|
+
bun run check
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Design Choices
|
|
170
|
+
|
|
171
|
+
#### Multi-Runtime Support
|
|
172
|
+
|
|
173
|
+
This template is designed to work seamlessly with all major JavaScript runtimes:
|
|
174
|
+
|
|
175
|
+
- **Bun**: Primary runtime with highest performance, uses native test support (`bun test`)
|
|
176
|
+
- **Node.js**: Alternative runtime, uses built-in test runner (`node --test`)
|
|
177
|
+
- **Deno**: Secure runtime with built-in TypeScript support (`deno test`)
|
|
178
|
+
|
|
179
|
+
The [test-anywhere](https://github.com/link-foundation/test-anywhere) framework provides a unified testing API that works identically across all runtimes.
|
|
180
|
+
|
|
181
|
+
#### Package Manager Agnostic
|
|
182
|
+
|
|
183
|
+
While `package.json` is the source of truth for dependencies, the template supports:
|
|
184
|
+
|
|
185
|
+
- **bun**: Primary choice, uses `bun.lockb`
|
|
186
|
+
- **npm**: Uses `package-lock.json`
|
|
187
|
+
- **yarn**: Uses `yarn.lock`
|
|
188
|
+
- **pnpm**: Uses `pnpm-lock.yaml`
|
|
189
|
+
- **deno**: Uses `deno.json` for configuration
|
|
190
|
+
|
|
191
|
+
Note: `package-lock.json` is not committed by default to allow any package manager.
|
|
192
|
+
|
|
193
|
+
#### Code Quality
|
|
194
|
+
|
|
195
|
+
- **ESLint**: Configured with recommended rules + Prettier integration
|
|
196
|
+
- **Prettier**: Consistent code formatting
|
|
197
|
+
- **Husky + lint-staged**: Pre-commit hooks ensure code quality
|
|
198
|
+
- **File size limit**: Files must stay under 1500 lines for maintainability (enforced via ESLint and CI)
|
|
199
|
+
|
|
200
|
+
#### Release Workflow
|
|
201
|
+
|
|
202
|
+
The release workflow uses [Changesets](https://github.com/changesets/changesets) for version management:
|
|
203
|
+
|
|
204
|
+
1. **Creating a changeset**: Run `bun run changeset` to document changes
|
|
205
|
+
2. **PR validation**: CI checks for valid changeset in each PR
|
|
206
|
+
3. **Automated versioning**: Merging to `main` triggers version bump
|
|
207
|
+
4. **npm publishing**: Automated via OIDC trusted publishing (no tokens needed)
|
|
208
|
+
5. **GitHub releases**: Auto-created with formatted release notes
|
|
209
|
+
|
|
210
|
+
##### Manual Releases
|
|
211
|
+
|
|
212
|
+
Two manual release modes are available via GitHub Actions:
|
|
213
|
+
|
|
214
|
+
- **Instant release**: Immediately bump version and publish
|
|
215
|
+
- **Changeset PR**: Create a PR with changeset for review
|
|
216
|
+
|
|
217
|
+
#### CI/CD Pipeline
|
|
218
|
+
|
|
219
|
+
The GitHub Actions workflow (`.github/workflows/release.yml`) implements a fast-fail pipeline:
|
|
220
|
+
|
|
221
|
+
**Fast checks** (~7-30s each, run first for fastest feedback):
|
|
222
|
+
|
|
223
|
+
1. **Test compilation**: Syntax-checks all `.mjs` files with `node --check`
|
|
224
|
+
2. **Lint, format & secrets scan**: ESLint, Prettier, jscpd, and [secretlint](https://github.com/secretlint/secretlint) for credential leak detection
|
|
225
|
+
3. **File line limits**: Enforces 1500-line limit on `.mjs` files and `release.yml`
|
|
226
|
+
4. **Changeset check**: Validates PR has exactly one changeset (added by that PR)
|
|
227
|
+
5. **Version check**: Blocks manual version changes in `package.json`
|
|
228
|
+
6. **Documentation validation**: Checks doc file sizes and required files
|
|
229
|
+
|
|
230
|
+
**Slow checks** (only run after all fast checks pass):
|
|
231
|
+
|
|
232
|
+
7. **Test matrix**: 3 runtimes × 3 OS = 9 test combinations
|
|
233
|
+
8. **API doc build**: `npm run docs:api` + `cargo doc --manifest-path rust/Cargo.toml --no-deps --workspace`
|
|
234
|
+
9. **Broken link checks**: Validates all links in Markdown/HTML files (separate workflow)
|
|
235
|
+
|
|
236
|
+
**Release** (on merge to main):
|
|
237
|
+
|
|
238
|
+
10. **Changeset merge**: Combines multiple pending changesets at release time
|
|
239
|
+
11. **Release**: Automated versioning and npm publishing
|
|
240
|
+
12. **GitHub Pages**: `pages.yml` publishes the SPA bundle (this PR).
|
|
241
|
+
|
|
242
|
+
##### Reasonable timeouts on every job
|
|
243
|
+
|
|
244
|
+
Every CI job declares an explicit `timeout-minutes` so a hung step
|
|
245
|
+
fails fast instead of stalling for the GitHub default of six hours.
|
|
246
|
+
The bands are sized at roughly 5–10× the observed p95 to absorb cold
|
|
247
|
+
runners without hiding real flakiness:
|
|
248
|
+
|
|
249
|
+
| Job | Cap | Typical |
|
|
250
|
+
| -------------------------- | -------- | -------------------------------------------- |
|
|
251
|
+
| Detect Changes / file size | 5 min | ~3–6 s |
|
|
252
|
+
| Test Compilation | 5 min | ~4 s |
|
|
253
|
+
| Version / Changeset checks | 5–10 min | ~6–13 s |
|
|
254
|
+
| Lint and Format | 10 min | ~23 s |
|
|
255
|
+
| Build API Docs | 15 min | ~25 s |
|
|
256
|
+
| Test (per runtime × OS) | 10 min | ~13–55 s (deno-windows up to ~2 min on cold) |
|
|
257
|
+
| Release / Instant Release | 30 min | well under 10 min |
|
|
258
|
+
| Broken Link Checker | 10 min | ~8 s |
|
|
259
|
+
| GitHub Pages build/deploy | 10 min | ~30–60 s |
|
|
260
|
+
|
|
261
|
+
Per-test timeouts are also enforced inside the runners themselves so
|
|
262
|
+
an individual hung promise surfaces in seconds rather than at the job
|
|
263
|
+
cap: `node --test --test-timeout=30000` and `bun test --timeout 30000`.
|
|
264
|
+
|
|
265
|
+
See [BEST-PRACTICES.md](docs/BEST-PRACTICES.md) for detailed explanations of each practice.
|
|
266
|
+
|
|
267
|
+
##### Robust Changeset Handling
|
|
268
|
+
|
|
269
|
+
The CI/CD pipeline is designed to handle concurrent PRs gracefully:
|
|
270
|
+
|
|
271
|
+
- **PR Validation**: Only validates changesets **added by the current PR**, not pre-existing ones from other merged PRs. This prevents false failures when multiple PRs merge before a release cycle completes.
|
|
272
|
+
|
|
273
|
+
- **Release-time Merging**: If multiple changesets exist when releasing, they are automatically merged into a single changeset with:
|
|
274
|
+
- The highest version bump type (major > minor > patch)
|
|
275
|
+
- All descriptions preserved in chronological order
|
|
276
|
+
|
|
277
|
+
This design decouples PR validation from the need to pull changes from the default branch, reducing conflicts and ensuring that even if CI/CD fails, all unpublished changesets will still get published when the error is resolved.
|
|
278
|
+
|
|
279
|
+
#### Broken Link Checker
|
|
280
|
+
|
|
281
|
+
The link checker workflow (`.github/workflows/links.yml`) validates all links in Markdown and HTML files:
|
|
282
|
+
|
|
283
|
+
1. **Detection**: Uses [lychee](https://github.com/lycheeverse/lychee-action) to scan all `*.md` and `*.html` files
|
|
284
|
+
2. **Web Archive fallback**: For any broken links found, automatically checks the [Wayback Machine](https://web.archive.org) for archived versions
|
|
285
|
+
3. **Actionable suggestions**: Reports one of three outcomes for each broken link:
|
|
286
|
+
- **Archived**: Suggests the Web Archive URL as a replacement
|
|
287
|
+
- **Not archived**: Clearly reports the link is unrecoverable
|
|
288
|
+
4. **Scheduled checks**: Runs weekly to catch links that break over time (even if no files changed)
|
|
289
|
+
5. **Issue creation**: On scheduled runs, creates a GitHub Issue with the full broken links report
|
|
290
|
+
|
|
291
|
+
Add regex patterns to `.lycheeignore` to exclude URLs from checks (e.g., local dev URLs, example.com, known rate-limited sites).
|
|
292
|
+
|
|
293
|
+
#### GitHub Pages publishing
|
|
294
|
+
|
|
295
|
+
The `pages.yml` workflow (added in PR #9 / issue #8) builds `dist/pages/` from `js/src/web/` and deploys it to GitHub Pages on every push to `main`. The workflow uses the official `actions/configure-pages`, `actions/upload-pages-artifact`, and `actions/deploy-pages` actions. PRs run a build-only job for early feedback; only `main` and `workflow_dispatch` trigger an actual deploy. See [`docs/case-studies/issue-8/`](docs/case-studies/issue-8/README.md) for the full rationale, and [`js/scripts/build-pages.mjs`](js/scripts/build-pages.mjs) for the build helper.
|
|
296
|
+
|
|
297
|
+
### Configuration
|
|
298
|
+
|
|
299
|
+
#### ESLint Rules
|
|
300
|
+
|
|
301
|
+
Customize ESLint in `js/eslint.config.js`. Current configuration:
|
|
302
|
+
|
|
303
|
+
- ES Modules support
|
|
304
|
+
- Prettier integration
|
|
305
|
+
- No console restrictions (common in CLI tools)
|
|
306
|
+
- Strict equality enforcement
|
|
307
|
+
- Async/await best practices
|
|
308
|
+
- **Strict unused variables rule**: No exceptions - all unused variables, arguments, and caught errors must be removed (no `_` prefix exceptions)
|
|
309
|
+
|
|
310
|
+
#### Prettier Options
|
|
311
|
+
|
|
312
|
+
Configured in `.prettierrc`:
|
|
313
|
+
|
|
314
|
+
- Single quotes
|
|
315
|
+
- Semicolons
|
|
316
|
+
- 2-space indentation
|
|
317
|
+
- 80-character line width
|
|
318
|
+
- ES5 trailing commas
|
|
319
|
+
- LF line endings
|
|
320
|
+
|
|
321
|
+
### Scripts Reference
|
|
322
|
+
|
|
323
|
+
| Script | Description |
|
|
324
|
+
| ---------------------- | ------------------------------------------------ |
|
|
325
|
+
| `bun test` | Run tests with Bun |
|
|
326
|
+
| `bun run lint` | Check code with ESLint |
|
|
327
|
+
| `bun run lint:fix` | Fix ESLint issues automatically |
|
|
328
|
+
| `bun run format` | Format code with Prettier |
|
|
329
|
+
| `bun run format:check` | Check formatting without changing files |
|
|
330
|
+
| `bun run check` | Run all checks (lint + format) |
|
|
331
|
+
| `bun run changeset` | Create a new changeset |
|
|
332
|
+
| `bun run build:web` | Build the production SPA bundle |
|
|
333
|
+
| `bun run build:pages` | Build the GitHub Pages artifact in `dist/pages/` |
|
|
334
|
+
| `bun run build:mobile` | Build the Capacitor mobile bundle |
|
|
335
|
+
|
|
336
|
+
### Contributing
|
|
337
|
+
|
|
338
|
+
See [CONTRIBUTING.md](docs/CONTRIBUTING.md) for detailed contribution guidelines.
|
|
339
|
+
|
|
340
|
+
Quick steps:
|
|
341
|
+
|
|
342
|
+
1. Fork the repository
|
|
343
|
+
2. Create a feature branch: `git checkout -b feature/my-feature`
|
|
344
|
+
3. Make your changes
|
|
345
|
+
4. Create a changeset: `bun run changeset`
|
|
346
|
+
5. Commit your changes (pre-commit hooks will run automatically)
|
|
347
|
+
6. Push and create a Pull Request
|
|
348
|
+
|
|
349
|
+
### Best Practices
|
|
350
|
+
|
|
351
|
+
The CI/CD pipeline inherited from `js-ai-driven-development-pipeline-template` covers the practices documented in [BEST-PRACTICES.md](docs/BEST-PRACTICES.md):
|
|
352
|
+
|
|
353
|
+
- File size limits for AI readability
|
|
354
|
+
- Automated formatting and linting
|
|
355
|
+
- Multi-runtime and cross-platform testing
|
|
356
|
+
- Changeset-based versioning
|
|
357
|
+
- Concurrency control for CI/CD pipelines
|
|
358
|
+
|
|
359
|
+
## License
|
|
360
|
+
|
|
361
|
+
[Unlicense](LICENSE) - Public Domain
|