feat(mcp): WhatsApp connector, archivable catalog, MCP connector config endpoint
This commit is contained in:
+53
-22
@@ -153,6 +153,22 @@ export default {
|
||||
'config.loading': 'Loading…',
|
||||
'config.developer': 'Developer',
|
||||
'config.error_save':'Error saving "{name}": {msg}',
|
||||
'config.enabled': 'Enabled',
|
||||
'config.disabled': 'Disabled',
|
||||
|
||||
'config.set.interface.name': 'Interface',
|
||||
'config.set.interface.desc': 'Look and feel of the web interface.',
|
||||
'config.set.tic_agent.name': 'TIC Agent',
|
||||
'config.set.tic_agent.desc': 'TIC is a background agent that monitors all async events generated by connected MCP servers (new emails, calendar updates, WhatsApp messages, etc.). It reads your notification rules from data/notifications.md and your memory to decide — via an LLM call — which events are worth surfacing. Relevant notifications are forwarded to the home agent set via /sethome.',
|
||||
|
||||
'config.prop.ui_locale.name': 'Language',
|
||||
'config.prop.ui_locale.desc': 'Default interface language for the whole instance. Each user can override it on their profile.',
|
||||
'config.prop.tic__enabled.name': 'Enabled',
|
||||
'config.prop.tic__enabled.desc': 'Enable or disable the TIC agent. When disabled, no MCP events are processed.',
|
||||
'config.prop.tic__security_group.name': 'Security Group',
|
||||
'config.prop.tic__security_group.desc': 'Tool permission group applied to each TIC agent session. Leave empty to use the default group.',
|
||||
'config.prop.tic__interval_minutes.name': 'Check Interval (minutes)',
|
||||
'config.prop.tic__interval_minutes.desc': 'How often TIC runs, in minutes. Leave empty to use the value from config.yml (tic.interval_secs).',
|
||||
|
||||
// ── Projects ────────────────────────────────────────────────────────────────
|
||||
'projects.title': 'Projects',
|
||||
@@ -799,6 +815,16 @@ export default {
|
||||
'connectors.detail.oauth.cancel': 'Cancel',
|
||||
'connectors.detail.oauth.deactivate': 'Deactivate',
|
||||
|
||||
'connectors.detail.qr.title': 'Link your phone',
|
||||
'connectors.detail.qr.desc': 'Scan a QR code with your phone to link this device. The session stays on this box — no password is stored.',
|
||||
'connectors.detail.qr.connected': 'Connected and active.',
|
||||
'connectors.detail.qr.scan': 'Scan this code with your phone:',
|
||||
'connectors.detail.qr.hint': 'WhatsApp → Settings → Linked Devices → Link a Device.',
|
||||
'connectors.detail.qr.connecting': 'Connecting…',
|
||||
'connectors.detail.qr.btn_start': 'Start sign-in',
|
||||
'connectors.detail.qr.btn_starting': 'Preparing… (this can take a minute the first time)',
|
||||
'connectors.detail.qr.btn_relink': 'Re-link (new QR)',
|
||||
|
||||
'connectors.detail.test.running': 'Testing credentials…',
|
||||
'connectors.detail.test.skipped': 'No verification step for this connector.',
|
||||
'connectors.detail.test.ok_label': 'OK',
|
||||
@@ -891,6 +917,9 @@ export default {
|
||||
'marketplace.grid.no_match': 'No connector matches these filters.',
|
||||
|
||||
'marketplace.card.installed': 'installed',
|
||||
'marketplace.card.update_available': 'update available',
|
||||
'marketplace.card.installed_version': 'installed v{v}',
|
||||
'marketplace.card.update': 'Update',
|
||||
'marketplace.card.scope_global': 'global',
|
||||
'marketplace.card.scope_per_user': 'per-user',
|
||||
'marketplace.card.type_script': 'local script',
|
||||
@@ -986,28 +1015,29 @@ export default {
|
||||
|
||||
'catalog.action.remove': 'Remove from catalog',
|
||||
|
||||
'catalog.modal.title': 'Add connector manually',
|
||||
'catalog.modal.script_warn': '<i class="bi bi-exclamation-triangle me-1"></i>A local script runs code on this box. Nothing verifies it — unlike the marketplace path, there is no digest to check.',
|
||||
'catalog.modal.name': 'Name',
|
||||
'catalog.modal.name_hint': 'slug',
|
||||
'catalog.modal.scope': 'Scope',
|
||||
'catalog.modal.type': 'Type',
|
||||
'catalog.modal.transport': 'Transport',
|
||||
'catalog.modal.command': 'Command',
|
||||
'catalog.modal.command_ph': 'python3',
|
||||
'catalog.modal.script_path': 'Script path',
|
||||
'catalog.modal.script_path_hint': 'as <connector>/<file>, under ./connectors',
|
||||
'catalog.modal.url': 'URL',
|
||||
'catalog.modal.args': 'Args',
|
||||
'catalog.modal.args_hint': 'one per line',
|
||||
'catalog.modal.config_schema': 'Required secret/env keys',
|
||||
'catalog.modal.config_schema_hint': 'comma/newline',
|
||||
'catalog.modal.auth': 'Auth',
|
||||
'catalog.modal.friendly': 'Friendly name',
|
||||
'catalog.modal.desc': 'Description',
|
||||
'catalog.modal.desc_hint': 'the LLM reads this when deciding to activate the connector',
|
||||
'catalog.modal.cancel': 'Cancel',
|
||||
'catalog.modal.save': 'Add to catalog',
|
||||
'catalog.new.back': 'Back',
|
||||
'catalog.new.title': 'Add connector manually',
|
||||
'catalog.new.script_warn': '<i class="bi bi-exclamation-triangle me-1"></i>A local script runs code on this box. Nothing verifies it — unlike the marketplace path, there is no digest to check.',
|
||||
'catalog.new.name': 'Name',
|
||||
'catalog.new.name_hint': 'slug',
|
||||
'catalog.new.scope': 'Scope',
|
||||
'catalog.new.type': 'Type',
|
||||
'catalog.new.transport': 'Transport',
|
||||
'catalog.new.command': 'Command',
|
||||
'catalog.new.command_ph': 'python3',
|
||||
'catalog.new.script_path': 'Script path',
|
||||
'catalog.new.script_path_hint': 'as <connector>/<file>, under ./connectors',
|
||||
'catalog.new.url': 'URL',
|
||||
'catalog.new.args': 'Args',
|
||||
'catalog.new.args_hint': 'one per line',
|
||||
'catalog.new.config_schema': 'Required secret/env keys',
|
||||
'catalog.new.config_schema_hint': 'comma/newline',
|
||||
'catalog.new.auth': 'Auth',
|
||||
'catalog.new.friendly': 'Friendly name',
|
||||
'catalog.new.desc': 'Description',
|
||||
'catalog.new.desc_hint': 'the LLM reads this when deciding to activate the connector',
|
||||
'catalog.new.cancel': 'Cancel',
|
||||
'catalog.new.save': 'Add to catalog',
|
||||
|
||||
'catalog.error.name': 'Name is required.',
|
||||
'catalog.confirm.delete': 'Remove "{name}" from the catalog?\n\nAnything already activated from it keeps running.',
|
||||
@@ -1039,6 +1069,7 @@ export default {
|
||||
'common.saving': 'Saving…',
|
||||
'common.cancel': 'Cancel',
|
||||
'common.loading': 'Loading…',
|
||||
'common.saved': 'Saved',
|
||||
|
||||
// ── Shared Folders (blueprint §6) ────────────────────────────────────────────
|
||||
'nav.shared_folders': 'Shared Folders',
|
||||
|
||||
Reference in New Issue
Block a user