aimeat 1.23.0 → 1.23.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/dist/locales/en.json +138 -104
- package/dist/locales/fi.json +164 -130
- package/dist/public/css/theme.css +25 -10
- package/dist/public/css/views/profile.css +67 -3
- package/dist/public/js/services/organisms.js +28 -5
- package/dist/public/views/profile/organisms-tab.js +1057 -473
- package/dist/src/cli/connect/mcp/tools/organisms.d.ts +3 -0
- package/dist/src/cli/connect/mcp/tools/organisms.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/organisms.js +20 -3
- package/dist/src/cli/connect/mcp/tools/organisms.js.map +1 -1
- package/dist/src/cli/connect/tool-call.d.ts.map +1 -1
- package/dist/src/cli/connect/tool-call.js +20 -1
- package/dist/src/cli/connect/tool-call.js.map +1 -1
- package/dist/src/mcp/core.d.ts +4 -0
- package/dist/src/mcp/core.d.ts.map +1 -1
- package/dist/src/mcp/core.js +24 -0
- package/dist/src/mcp/core.js.map +1 -1
- package/dist/src/mcp/organisms.d.ts +3 -0
- package/dist/src/mcp/organisms.d.ts.map +1 -1
- package/dist/src/mcp/organisms.js +18 -0
- package/dist/src/mcp/organisms.js.map +1 -1
- package/dist/src/routes/organisms.d.ts.map +1 -1
- package/dist/src/routes/organisms.js +27 -5
- package/dist/src/routes/organisms.js.map +1 -1
- package/dist/src/services/schema-validator.d.ts.map +1 -1
- package/dist/src/services/schema-validator.js +12 -0
- package/dist/src/services/schema-validator.js.map +1 -1
- package/package.json +1 -1
package/dist/locales/en.json
CHANGED
|
@@ -399,7 +399,17 @@
|
|
|
399
399
|
"roles": "Roles",
|
|
400
400
|
"created": "Created",
|
|
401
401
|
"publicKey": "Public Key",
|
|
402
|
-
"capabilities":
|
|
402
|
+
"capabilities": {
|
|
403
|
+
"technical": "Technical Skills",
|
|
404
|
+
"domain": "Domain Knowledge",
|
|
405
|
+
"actionQueue": "Action Queue Support",
|
|
406
|
+
"verified": "verified",
|
|
407
|
+
"selfReported": "self-reported",
|
|
408
|
+
"empty": "No capabilities reported yet",
|
|
409
|
+
"canAccept": "Can accept work",
|
|
410
|
+
"canDeliver": "Can deliver work",
|
|
411
|
+
"languages": "Languages"
|
|
412
|
+
},
|
|
403
413
|
"description": "Description",
|
|
404
414
|
"deleteAgent": "Delete agent",
|
|
405
415
|
"deleteConfirm": "Delete agent",
|
|
@@ -566,7 +576,12 @@
|
|
|
566
576
|
"toggle": "Search",
|
|
567
577
|
"placeholder": "Search tasks…",
|
|
568
578
|
"noResults": "No tasks match your search.",
|
|
569
|
-
"time": {
|
|
579
|
+
"time": {
|
|
580
|
+
"all": "All",
|
|
581
|
+
"today": "Today",
|
|
582
|
+
"7d": "7d",
|
|
583
|
+
"30d": "30d"
|
|
584
|
+
}
|
|
570
585
|
},
|
|
571
586
|
"triage": {
|
|
572
587
|
"keep": "Keep",
|
|
@@ -636,7 +651,6 @@
|
|
|
636
651
|
"success": "Rating saved",
|
|
637
652
|
"error": "Failed to save rating"
|
|
638
653
|
},
|
|
639
|
-
"cancel": "Cancel",
|
|
640
654
|
"cancelConfirm": "Cancel this task? Work that hasn't started will be skipped",
|
|
641
655
|
"cancelled": "Task cancelled",
|
|
642
656
|
"cancelError": "Failed to cancel task",
|
|
@@ -718,17 +732,6 @@
|
|
|
718
732
|
"saving": "Saving...",
|
|
719
733
|
"resetDefaults": "Reset to Defaults"
|
|
720
734
|
},
|
|
721
|
-
"capabilities": {
|
|
722
|
-
"technical": "Technical Skills",
|
|
723
|
-
"domain": "Domain Knowledge",
|
|
724
|
-
"actionQueue": "Action Queue Support",
|
|
725
|
-
"verified": "verified",
|
|
726
|
-
"selfReported": "self-reported",
|
|
727
|
-
"empty": "No capabilities reported yet",
|
|
728
|
-
"canAccept": "Can accept work",
|
|
729
|
-
"canDeliver": "Can deliver work",
|
|
730
|
-
"languages": "Languages"
|
|
731
|
-
},
|
|
732
735
|
"activity": {
|
|
733
736
|
"tasksCompleted": "Tasks Completed",
|
|
734
737
|
"tokensUsed": "Tokens Used (30d)",
|
|
@@ -1195,10 +1198,10 @@
|
|
|
1195
1198
|
"visShared": "Shared",
|
|
1196
1199
|
"visPublic": "Public",
|
|
1197
1200
|
"createSaveBtn": "Create",
|
|
1198
|
-
"membersTitle": "
|
|
1199
|
-
"autoAccessInfo": "All your agents have automatic access to shared boards
|
|
1201
|
+
"membersTitle": "External Members",
|
|
1202
|
+
"autoAccessInfo": "All your agents have automatic access to shared boards",
|
|
1200
1203
|
"addMember": "Add",
|
|
1201
|
-
"addMemberPlaceholder": "
|
|
1204
|
+
"addMemberPlaceholder": "agent#owner@node",
|
|
1202
1205
|
"memberAdded": "Member added",
|
|
1203
1206
|
"memberRemoved": "Member removed",
|
|
1204
1207
|
"memberError": "Failed to update members",
|
|
@@ -1207,13 +1210,8 @@
|
|
|
1207
1210
|
"newPost": "New Post",
|
|
1208
1211
|
"postsLoading": "Loading posts...",
|
|
1209
1212
|
"postsError": "Could not load posts.",
|
|
1210
|
-
"membersTitle": "External Members",
|
|
1211
|
-
"autoAccessInfo": "All your agents have automatic access to shared boards",
|
|
1212
|
-
"addMemberPlaceholder": "agent#owner@node",
|
|
1213
1213
|
"addMemberBtn": "Add",
|
|
1214
|
-
"removeMemberConfirm": "Remove this member?"
|
|
1215
|
-
"memberAdded": "Member added",
|
|
1216
|
-
"memberRemoved": "Member removed"
|
|
1214
|
+
"removeMemberConfirm": "Remove this member?"
|
|
1217
1215
|
},
|
|
1218
1216
|
"wallet": {
|
|
1219
1217
|
"title": "Wallet",
|
|
@@ -1922,13 +1920,16 @@
|
|
|
1922
1920
|
"installBtn": "Install",
|
|
1923
1921
|
"installing": "Installing..."
|
|
1924
1922
|
},
|
|
1925
|
-
"status": {
|
|
1923
|
+
"status": {
|
|
1924
|
+
"active": "Active",
|
|
1925
|
+
"inactive": "Inactive"
|
|
1926
|
+
},
|
|
1926
1927
|
"activate": "Activate",
|
|
1927
1928
|
"deactivate": "Deactivate",
|
|
1928
1929
|
"uninstall": "Uninstall",
|
|
1929
1930
|
"uninstallConfirm": "Are you sure? Seed data will be removed.",
|
|
1930
1931
|
"detail": {
|
|
1931
|
-
"back": "
|
|
1932
|
+
"back": "← Back",
|
|
1932
1933
|
"whatsIncluded": "What's included",
|
|
1933
1934
|
"copyPrompt": "Copy prompt",
|
|
1934
1935
|
"copyApi": "Copy API",
|
|
@@ -3466,7 +3467,7 @@
|
|
|
3466
3467
|
"servicesActionsCount": "Actions",
|
|
3467
3468
|
"servicesInstancesCount": "Instances",
|
|
3468
3469
|
"servicesManage": "Manage",
|
|
3469
|
-
"servicesBack": "
|
|
3470
|
+
"servicesBack": "← Back to Extensions",
|
|
3470
3471
|
"servicesCreateInstance": "Create Instance",
|
|
3471
3472
|
"servicesInstanceId": "Instance ID",
|
|
3472
3473
|
"servicesInstanceConfig": "Config (JSON, optional)",
|
|
@@ -3860,7 +3861,6 @@
|
|
|
3860
3861
|
"chatMessagePlaceholder": "Type a message...",
|
|
3861
3862
|
"chatBack": "Back to channels",
|
|
3862
3863
|
"chatNoMessages": "No messages yet. Be the first to post!",
|
|
3863
|
-
|
|
3864
3864
|
"emailDisabledExplain": "Email is not enabled. Configure SMTP settings in the Configuration tab to enable transactional emails.",
|
|
3865
3865
|
"host": "Host",
|
|
3866
3866
|
"secure": "Secure (TLS)",
|
|
@@ -3915,7 +3915,6 @@
|
|
|
3915
3915
|
"emailGroupBody": "Message body",
|
|
3916
3916
|
"emailGroupSend": "Send to Group",
|
|
3917
3917
|
"emailGroupSent": "Sent to {sent}/{total} recipients",
|
|
3918
|
-
|
|
3919
3918
|
"pushNotConfigured": "Push notifications are not configured.",
|
|
3920
3919
|
"pushExplain": "Web Push notifications allow sending real-time alerts to users who have subscribed via their browser. Requires VAPID keys configuration.",
|
|
3921
3920
|
"pushHelpTitle": "How to configure Push",
|
|
@@ -3928,17 +3927,17 @@
|
|
|
3928
3927
|
"pushWebPushTitle": "Web Push: Browser Notification",
|
|
3929
3928
|
"pushWebPushUsed": "Sent to subscribed browsers when a personal node has pending mailbox messages while offline.",
|
|
3930
3929
|
"pushWebPushTitleTpl": "AIMEAT: Pending messages",
|
|
3931
|
-
"pushWebPushBodyTpl": "{count} message(s) waiting
|
|
3930
|
+
"pushWebPushBodyTpl": "{count} message(s) waiting — {type}",
|
|
3932
3931
|
"pushEmailTitle": "Email: Mailbox Alert",
|
|
3933
3932
|
"pushEmailUsed": "Sent to the user's configured email when their personal node has pending messages and email notifications are enabled.",
|
|
3934
3933
|
"pushEmailSubjectTpl": "AIMEAT: {count} pending message(s) for your node",
|
|
3935
3934
|
"pushEmailBodyTpl": "Your personal node \"{nodeId}\" has {count} pending message(s).\n\nHighest priority: {type}\nOldest message: {age} minutes ago\n\nPlease reconnect your personal node to retrieve these messages.",
|
|
3936
3935
|
"pushNotifyTypesTitle": "Notification Triggers",
|
|
3937
3936
|
"pushNotifyTypesExplain": "Push notifications are sent when these mailbox event types occur. Configured via AIMEAT_PUSH_NOTIFY_TYPES.",
|
|
3938
|
-
"pushTypeWorkAssignment": "work_assignment
|
|
3939
|
-
"pushTypeActionRequest": "action_request
|
|
3940
|
-
"pushTypeBoardNotification": "board_notification
|
|
3941
|
-
"pushTypeFederationSync": "federation_sync
|
|
3937
|
+
"pushTypeWorkAssignment": "work_assignment — A work task has been assigned to the user's agent",
|
|
3938
|
+
"pushTypeActionRequest": "action_request — Another agent has requested an action from the user's agent",
|
|
3939
|
+
"pushTypeBoardNotification": "board_notification — New activity on a board the user subscribes to",
|
|
3940
|
+
"pushTypeFederationSync": "federation_sync — A federated peer node has synced data that needs attention",
|
|
3942
3941
|
"pushTemplate": "Template",
|
|
3943
3942
|
"pushUsedIn": "Used in",
|
|
3944
3943
|
"pushTestBtn": "Send Test Push",
|
|
@@ -3960,7 +3959,6 @@
|
|
|
3960
3959
|
"pushSubscribed": "Subscribed!",
|
|
3961
3960
|
"pushUnsubscribeBtn": "Unsubscribe",
|
|
3962
3961
|
"pushNoBrowserSupport": "This browser does not support push notifications",
|
|
3963
|
-
|
|
3964
3962
|
"blocked": "Blocked",
|
|
3965
3963
|
"blockedCooldown": "Cooldown",
|
|
3966
3964
|
"blockedDisabled": "Disabled",
|
|
@@ -4017,7 +4015,6 @@
|
|
|
4017
4015
|
"test": "Test",
|
|
4018
4016
|
"work": "Work"
|
|
4019
4017
|
},
|
|
4020
|
-
|
|
4021
4018
|
"totalEntries": "Total Entries",
|
|
4022
4019
|
"cities": "Cities",
|
|
4023
4020
|
"categories": "Categories",
|
|
@@ -4026,7 +4023,6 @@
|
|
|
4026
4023
|
"directoryExplain": "The directory indexes owner profiles by city, category, and interests, enabling discovery and search. Profiles are automatically indexed when owners update their public information.",
|
|
4027
4024
|
"directoryHelpTitle": "How the directory works",
|
|
4028
4025
|
"directoryHelpDetail": "Owners register profiles with city, categories, and interests via the API. The directory builds search indexes for fast lookups. You can rebuild indexes if data becomes inconsistent.",
|
|
4029
|
-
|
|
4030
4026
|
"totalProfiles": "Total Profiles",
|
|
4031
4027
|
"activeMatches": "Active Matches",
|
|
4032
4028
|
"lastRun": "Last Run",
|
|
@@ -4034,7 +4030,6 @@
|
|
|
4034
4030
|
"matchingExplain": "The matching engine finds compatible profiles based on shared interests, location proximity, and preference criteria. Matches are computed periodically or can be triggered manually.",
|
|
4035
4031
|
"matchingHelpTitle": "How matching works",
|
|
4036
4032
|
"matchingHelpDetail": "The engine compares all active profiles, scoring compatibility based on shared interests, geographic proximity, and stated preferences. Matches above a threshold are surfaced to users. Run the engine manually to update matches immediately.",
|
|
4037
|
-
|
|
4038
4033
|
"marketplaceEmpty": "No marketplace configured",
|
|
4039
4034
|
"activeListings": "Active Listings",
|
|
4040
4035
|
"totalTransactions": "Total Transactions",
|
|
@@ -4048,7 +4043,6 @@
|
|
|
4048
4043
|
"marketplaceNodeLevel": "Node Level",
|
|
4049
4044
|
"marketplaceFederationLevel": "Federation Level",
|
|
4050
4045
|
"marketplaceCreateConfirm": "Marketplace created successfully",
|
|
4051
|
-
|
|
4052
4046
|
"csmExplain": "CSM (Contextual Service Model) defines the data schema and rules for services running on the node. Each CSM template specifies what data a service collects, how it's validated, and what consent rules apply.",
|
|
4053
4047
|
"csmHelpTitle": "What is a CSM?",
|
|
4054
4048
|
"csmHelpDetail": "A CSM is a JSON document that defines a service's data model. It includes field definitions (name, type, required), validation rules, consent requirements, and display hints. Services like hobbies directory, marketplace, or dating use CSMs to describe their data shape. The node validates all data against the CSM before storing it.",
|
|
@@ -4078,7 +4072,6 @@
|
|
|
4078
4072
|
"csmAiStep2": "Paste it into a new AI chat conversation",
|
|
4079
4073
|
"csmAiStep3": "Describe the service you want to create — the AI will guide you",
|
|
4080
4074
|
"csmAiStep4": "Copy the generated YAML back here and click \"Create CSM\"",
|
|
4081
|
-
|
|
4082
4075
|
"msmHelpTitle": "What is an MSM?",
|
|
4083
4076
|
"msmHelpDetail": "An MSM is a configuration that connects the node to external services. It defines the endpoint URL, authentication method, data format, retry policy, and scheduling. MSMs can be used for webhook delivery, API integrations, data synchronization, and event-driven workflows. Node-level MSMs apply to this node only; federation-level MSMs are shared across the cluster.",
|
|
4084
4077
|
"msmAddNew": "Add MSM Integration",
|
|
@@ -4100,7 +4093,6 @@
|
|
|
4100
4093
|
"msmSelectTemplate": "— Select a template —",
|
|
4101
4094
|
"msmCreateFromTemplate": "Start from template",
|
|
4102
4095
|
"msmDefinition": "MSM Definition",
|
|
4103
|
-
|
|
4104
4096
|
"federationNotAvailable": "Federation is not configured",
|
|
4105
4097
|
"clusterName": "Cluster Name",
|
|
4106
4098
|
"role": "Role",
|
|
@@ -4113,7 +4105,6 @@
|
|
|
4113
4105
|
"federationJoinExplain": "To join an existing federation, you need the genesis node's endpoint URL and a valid invitation token.",
|
|
4114
4106
|
"federationLeave": "Leave Federation",
|
|
4115
4107
|
"federationLeaveConfirm": "Are you sure you want to leave this federation?",
|
|
4116
|
-
|
|
4117
4108
|
"fedHowBusTitle": "What is the Federation Bus?",
|
|
4118
4109
|
"fedHowBusDetail": "The federation bus is the communication layer between nodes. It handles heartbeats (health checks every 5 minutes), data replication, catalogue synchronization, cross-node work routing, morsel settlements, and trust advisories. All messages are cryptographically signed with Ed25519 keys to prevent tampering.",
|
|
4119
4110
|
"fedHowJoinTitle": "How does a new node join?",
|
|
@@ -4124,12 +4115,10 @@
|
|
|
4124
4115
|
"fedHowSettlementsDetail": "When an agent on Node A uses a service on Node B, the morsel payment needs to be settled across nodes. Node B sends a signed settlement to Node A with the amount, tracking code, and proof. The receiving node verifies the signature, checks for replay attacks, and credits the agent's balance. Operators can also initiate outbound settlements manually.",
|
|
4125
4116
|
"fedHowRoutingTitle": "How does cross-node routing work?",
|
|
4126
4117
|
"fedHowRoutingDetail": "If you need to reach an agent on a remote node, the federation router (POST /v1/federation/route) forwards the request. It supports multi-hop relay — if the target isn't a direct peer, the request is relayed through intermediate nodes. Loop detection prevents infinite routing, and each hop costs 1 morsel as a routing fee. Max hops is configurable.",
|
|
4127
|
-
|
|
4128
4118
|
"fedActivePeers": "Active Peers",
|
|
4129
4119
|
"fedDegradedPeers": "Degraded",
|
|
4130
4120
|
"fedOfflinePeers": "Offline",
|
|
4131
4121
|
"fedPendingRequests": "Pending Requests",
|
|
4132
|
-
|
|
4133
4122
|
"fedPendingRequestsTitle": "Pending Peering Requests",
|
|
4134
4123
|
"fedPendingRequestsExplain": "These nodes want to join your federation. Review each request and approve or reject.",
|
|
4135
4124
|
"fedPendingHelpTitle": "What should I check before approving?",
|
|
@@ -4143,7 +4132,6 @@
|
|
|
4143
4132
|
"fedRejectPeerConfirm": "Reject this peering request?",
|
|
4144
4133
|
"fedPeerApproved": "Peering request approved successfully",
|
|
4145
4134
|
"fedPeerRejected": "Peering request rejected",
|
|
4146
|
-
|
|
4147
4135
|
"fedLivePeersTitle": "Live Peers",
|
|
4148
4136
|
"fedLivePeersExplain": "Currently registered peers and their real-time health status. The heartbeat monitor pings each peer every 5 minutes.",
|
|
4149
4137
|
"fedLivePeersHelpTitle": "Understanding peer statuses",
|
|
@@ -4159,11 +4147,9 @@
|
|
|
4159
4147
|
"fedPeerActivated": "Peer activated successfully",
|
|
4160
4148
|
"fedPeerRemoved": "Peer set to depeering status (grace period active)",
|
|
4161
4149
|
"fedPeerEmergencyRemoved": "Peer immediately disconnected. All in-flight work cancelled.",
|
|
4162
|
-
|
|
4163
4150
|
"fedRequestHistoryTitle": "Peering Request History",
|
|
4164
4151
|
"fedDeleteRequestConfirm": "Delete this peering request from history?",
|
|
4165
4152
|
"fedRequestDeleted": "Peering request deleted",
|
|
4166
|
-
|
|
4167
4153
|
"fedJoinTitle": "Join Genesis Network",
|
|
4168
4154
|
"fedJoinExplain": "Connect this node to an existing AIMEAT genesis network. Enter the genesis node URL and select your role. The genesis operator will review and approve your request.",
|
|
4169
4155
|
"fedJoinHelpTitle": "How does joining work?",
|
|
@@ -4177,7 +4163,6 @@
|
|
|
4177
4163
|
"fedJoinTargetNode": "Target Node",
|
|
4178
4164
|
"fedJoinStatus": "Status",
|
|
4179
4165
|
"fedJoinRequestId": "Request ID",
|
|
4180
|
-
|
|
4181
4166
|
"fedAddPeerTitle": "Add Peer Directly",
|
|
4182
4167
|
"fedAddPeerExplain": "Manually add a peer node without going through the introduction flow. Useful for bootstrapping federations or adding trusted nodes.",
|
|
4183
4168
|
"fedAddPeerHelpTitle": "When should I add peers directly?",
|
|
@@ -4188,7 +4173,6 @@
|
|
|
4188
4173
|
"fedAddPeerBtn": "Add Peer",
|
|
4189
4174
|
"fedAddPeerMissing": "Node ID and URL are required",
|
|
4190
4175
|
"fedPeerAdded": "Peer added successfully (status: pending)",
|
|
4191
|
-
|
|
4192
4176
|
"fedTestTitle": "Test Federation Readiness",
|
|
4193
4177
|
"fedTestExplain": "Check if a remote node is reachable and running the AIMEAT protocol before peering.",
|
|
4194
4178
|
"fedTestHelpTitle": "What does the test check?",
|
|
@@ -4197,44 +4181,31 @@
|
|
|
4197
4181
|
"fedTestTarget": "Target",
|
|
4198
4182
|
"fedTestReady": "Ready",
|
|
4199
4183
|
"fedTestTime": "Tested at",
|
|
4200
|
-
|
|
4201
4184
|
"fedBusTitle": "Federation Bus — Features",
|
|
4202
4185
|
"fedBusExplain": "The federation bus provides all the communication channels between nodes. Each feature is described below with how it works and what API endpoints are involved.",
|
|
4203
|
-
|
|
4204
4186
|
"fedBusHeartbeatTitle": "Heartbeat & Health Monitoring",
|
|
4205
4187
|
"fedBusHeartbeatDetail": "Every 5 minutes, your node pings all active peers via POST /v1/federation/ping. If a peer fails 3 consecutive heartbeats, it's marked 'degraded'. After 10 failures, it goes 'offline'. Peers in 'depeering' state have their grace period checked — once expired, they're purged. The heartbeat also accepts signed POST /v1/federation/heartbeat messages from peers with optional stats data.",
|
|
4206
|
-
|
|
4207
4188
|
"fedBusReplicateTitle": "Memory Replication",
|
|
4208
4189
|
"fedBusReplicateDetail": "Nodes can replicate memory entries to peers via POST /v1/federation/replicate. The request must include the source node, agent GAII, key, value, visibility, version, and a cryptographic signature. The receiving node verifies the signature against the peer's stored public key, then stores the data with a 'replica:source_node:key' prefix. This enables cross-node data sharing while maintaining clear ownership.",
|
|
4209
|
-
|
|
4210
4190
|
"fedBusCatalogueTitle": "Catalogue Synchronization",
|
|
4211
4191
|
"fedBusCatalogueDetail": "Action catalogues are synced via POST /v1/federation/catalogue-sync. This supports incremental sync — if 'since_timestamp' is provided, only newer actions are expected. Existing federated actions are updated (upsert by federated ID). Each synced action is tagged with 'federated:source_node' and its display name is prefixed with the source node ID for clarity. A catalogue_hash is included for integrity verification.",
|
|
4212
|
-
|
|
4213
4192
|
"fedBusRoutingTitle": "Cross-Node Request Routing",
|
|
4214
4193
|
"fedBusRoutingDetail": "POST /v1/federation/route forwards requests to remote nodes. If the target is a direct peer, the request goes straight. Otherwise, it tries multi-hop relay through other active peers. Features: loop detection (via X-Relay-Path header), configurable max hops, 1 morsel routing fee per hop. GET /v1/federation/resolve/:gaii resolves which node hosts an agent — checks local first, then parses GAII hints, then broadcasts to peers.",
|
|
4215
|
-
|
|
4216
4194
|
"fedBusSettlementTitle": "Morsel Settlements",
|
|
4217
4195
|
"fedBusSettlementDetail": "Cross-node morsel transfers use POST /v1/federation/settle (inbound) and POST /v1/federation/settle/outbound (outbound, operator only). Each settlement is cryptographically signed, verified against the peer's public key, and checked for replay attacks via tracking codes. Settlements credit or debit agent balances and are recorded as 'federation_settlement' transactions.",
|
|
4218
|
-
|
|
4219
4196
|
"fedBusTrustTitle": "Trust Advisories",
|
|
4220
4197
|
"fedBusTrustDetail": "Operators can issue trust advisories about nodes via POST /v1/federation/trust-advisory. Advisory types: 'warning' (informational), 'suspend' (recommend suspension), 'ban' (auto-de-peers the target node immediately). Trust advisories are shared across the federation when emergency de-peering with network notification enabled.",
|
|
4221
|
-
|
|
4222
4198
|
"fedBusKeyExchangeTitle": "Key Exchange",
|
|
4223
4199
|
"fedBusKeyExchangeDetail": "POST /v1/federation/key-exchange allows peers to exchange Ed25519 public keys. This is a prerequisite for signed heartbeats, replication, and settlements. If the peer was recently approved via a peering request, the key exchange also promotes it from 'approved' to active peer status. Each node returns its own public key and capabilities.",
|
|
4224
|
-
|
|
4225
4200
|
"fedBusCrossWorkTitle": "Cross-Node Work Requests",
|
|
4226
4201
|
"fedBusCrossWorkDetail": "Agents can submit work to services on remote nodes via POST /v1/federation/cross-node/work. The request is signed by the originating node's private key and forwarded to the target peer. A 1 morsel routing fee is charged. The remote node processes the work request as if it were local, and results are returned in the response.",
|
|
4227
|
-
|
|
4228
4202
|
"fedBusResolveTitle": "GAII Resolution",
|
|
4229
4203
|
"fedBusResolveDetail": "GET /v1/federation/resolve/:gaii finds which node hosts an agent. Resolution order: 1) Check local cache (5-minute TTL), 2) Check local storage, 3) Check personal nodes anchored to this operator, 4) Parse node hint from GAII format (agent#owner@node), 5) Broadcast resolve to all active peers. Results are cached to reduce network traffic.",
|
|
4230
|
-
|
|
4231
4204
|
"fedApiRefTitle": "API Reference",
|
|
4232
4205
|
"fedApiRefHelpTitle": "All Federation Endpoints",
|
|
4233
|
-
|
|
4234
4206
|
"fedDepeeringTitle": "Peers Being Removed",
|
|
4235
4207
|
"fedDepeeringExplain": "These peers are in the grace period before permanent removal. In-flight work can still complete.",
|
|
4236
4208
|
"fedDepeeringGrace": "Grace ends",
|
|
4237
|
-
|
|
4238
4209
|
"fedShareCatalogue": "Share Catalogue",
|
|
4239
4210
|
"fedReplicateMemory": "Replicate Memory",
|
|
4240
4211
|
"fedAllowRouting": "Allow Routing",
|
|
@@ -4250,7 +4221,6 @@
|
|
|
4250
4221
|
"fedPeerModePrivate": "Private P2P",
|
|
4251
4222
|
"fedPolicyUpdated": "Peer policy updated",
|
|
4252
4223
|
"fedPolicySectionTitle": "Policy",
|
|
4253
|
-
|
|
4254
4224
|
"fedNetworkDirectoryTitle": "Network Directory",
|
|
4255
4225
|
"fedNetworkDirectoryDesc": "Services and data available across the federation network.",
|
|
4256
4226
|
"fedNetworkDirType": "Type",
|
|
@@ -4260,7 +4230,6 @@
|
|
|
4260
4230
|
"fedNetworkDirPrice": "Price",
|
|
4261
4231
|
"fedNetworkDirEmpty": "No federated services discovered yet. Services appear when peers share their catalogue.",
|
|
4262
4232
|
"fedNetworkDirSearch": "Search services...",
|
|
4263
|
-
|
|
4264
4233
|
"genesisExplain": "Genesis peers are the founding nodes of a federation cluster. The genesis node is the first node that creates the federation, and it manages peer approvals, key exchange, and cluster policies.",
|
|
4265
4234
|
"genesisHelpTitle": "What are genesis peers?",
|
|
4266
4235
|
"genesisHelpDetail": "When you create a new federation, your node becomes the genesis (origin) node. Other nodes request to join, and you approve or reject them here. Genesis peers have special privileges: they can set cluster-wide policies, approve new members, and suspend misbehaving nodes. Approved peers can exchange data according to federation rules.",
|
|
@@ -4268,7 +4237,6 @@
|
|
|
4268
4237
|
"confirmAction": "Are you sure?",
|
|
4269
4238
|
"approveConfirm": "Approve this peer?",
|
|
4270
4239
|
"suspendConfirm": "Suspend this peer?",
|
|
4271
|
-
|
|
4272
4240
|
"configuration": "Configuration",
|
|
4273
4241
|
"schema": "Schema",
|
|
4274
4242
|
"fields": "Fields",
|
|
@@ -4276,7 +4244,6 @@
|
|
|
4276
4244
|
"type": "Type",
|
|
4277
4245
|
"version": "Version",
|
|
4278
4246
|
"back": "Back",
|
|
4279
|
-
|
|
4280
4247
|
"cfgGroup_node": "Node",
|
|
4281
4248
|
"cfgGroup_storage": "Storage",
|
|
4282
4249
|
"cfgGroup_morsel_policy": "Morsel Policy",
|
|
@@ -4310,7 +4277,6 @@
|
|
|
4310
4277
|
"cfgGroup_personal_nodes": "Personal Nodes",
|
|
4311
4278
|
"cfgGroup_match_notifications": "Match Notifications",
|
|
4312
4279
|
"cfgGroup_consul": "Consul",
|
|
4313
|
-
|
|
4314
4280
|
"cfgHelp_extensions": "The extension system runs custom JavaScript code in sandboxed V8 isolates. Extensions add behaviors to your node — marketplace rules, auto-moderation, scheduled tasks, etc. Install bundled extensions from the Services tab, or create your own. Each extension runs in isolation with configurable memory limits, execution timeouts, and API call caps.",
|
|
4315
4281
|
"cfgHelp_eudiw": "EUDIW (EU Digital Identity Wallet) enables verified identity through the European Digital Identity framework. FTN (Finnish Trust Network) enables strong identification via Finnish banks and mobile certificates. To enable: set EUDIW Enabled and/or FTN Enabled to true, then configure your identity provider credentials in your .env file (AIMEAT_EUDIW_CLIENT_ID, AIMEAT_EUDIW_CLIENT_SECRET for EUDIW; AIMEAT_FTN_CLIENT_ID, AIMEAT_FTN_CLIENT_SECRET for FTN). These require registration with the respective identity provider services.",
|
|
4316
4282
|
"cfgHelp_consul": "Consul is a service discovery and configuration management tool. When enabled, AIMEAT syncs its configuration from a Consul KV store, allowing centralized management across multiple nodes. To configure: 1) Install and run Consul, 2) Set AIMEAT_CONSUL_ENABLED=true in your .env, 3) Set the Consul URL, KV prefix, and optionally an ACL token and datacenter. These settings are immutable and must be set before startup.",
|
|
@@ -4318,7 +4284,6 @@
|
|
|
4318
4284
|
"cfgHelp_matching": "The AI matching engine automatically connects users based on shared interests, location, and profile data. When enabled, it runs periodically (configurable interval) and generates match suggestions. Configure the minimum score threshold, max suggestions per round, geographic distance limits, and cooldown periods to control matching behavior.",
|
|
4319
4285
|
"cfgHelp_consent": "The consent layer provides GDPR-compliant data access controls. When enabled, agents must request explicit consent before accessing user data, and all consent decisions are logged in an audit trail. Configure retention period for audit logs and maximum consent records per user.",
|
|
4320
4286
|
"cfgHelp_email": "Email settings control SMTP connectivity for sending notifications, confirmations, and alerts. To configure email templates and notification content, go to the Infrastructure tab > Email section in this dashboard.",
|
|
4321
|
-
|
|
4322
4287
|
"cfg_node_id": "Node ID",
|
|
4323
4288
|
"cfg_node_port": "Port",
|
|
4324
4289
|
"cfg_node_type": "Node Type",
|
|
@@ -4409,7 +4374,7 @@
|
|
|
4409
4374
|
"cfg_consul_datacenter": "Datacenter",
|
|
4410
4375
|
"cortexTab": "Cortex Extensions",
|
|
4411
4376
|
"cortex": {
|
|
4412
|
-
"back": "
|
|
4377
|
+
"back": "← Back",
|
|
4413
4378
|
"total": "Total",
|
|
4414
4379
|
"active": "Active",
|
|
4415
4380
|
"inactive": "Inactive",
|
|
@@ -4721,8 +4686,12 @@
|
|
|
4721
4686
|
"instanceSelector": "Choose a Marketplace",
|
|
4722
4687
|
"instanceSelectorSubtitle": "Select a marketplace to browse or sell items",
|
|
4723
4688
|
"noInstances": "No marketplaces available",
|
|
4724
|
-
"visibility": {
|
|
4725
|
-
|
|
4689
|
+
"visibility": {
|
|
4690
|
+
"public": "Public",
|
|
4691
|
+
"password": "Password Protected",
|
|
4692
|
+
"invite": "Invite Only"
|
|
4693
|
+
},
|
|
4694
|
+
"backToMarketplaces": "← All Marketplaces",
|
|
4726
4695
|
"nav": {
|
|
4727
4696
|
"search": "Search",
|
|
4728
4697
|
"sell": "Sell",
|
|
@@ -4890,7 +4859,18 @@
|
|
|
4890
4859
|
"Today someone's idea changes someone's mind.",
|
|
4891
4860
|
"Love what actually matters to you."
|
|
4892
4861
|
],
|
|
4893
|
-
"weights": [
|
|
4862
|
+
"weights": [
|
|
4863
|
+
3,
|
|
4864
|
+
3,
|
|
4865
|
+
2,
|
|
4866
|
+
2,
|
|
4867
|
+
2,
|
|
4868
|
+
2,
|
|
4869
|
+
2,
|
|
4870
|
+
1,
|
|
4871
|
+
1,
|
|
4872
|
+
1
|
|
4873
|
+
],
|
|
4894
4874
|
"line1": "Opinions are like assholes. Everyone's got one. Here are a few:",
|
|
4895
4875
|
"cta": "Make yours heard by copying the prompt below into any AI chat, tell it what you want, and in under a minute your opinion shows up here live."
|
|
4896
4876
|
},
|
|
@@ -5482,7 +5462,6 @@
|
|
|
5482
5462
|
"workspaceName": "Workspace name",
|
|
5483
5463
|
"noWorkspaces": "No workspaces yet — create one to get started.",
|
|
5484
5464
|
"deleteWorkspaceConfirm": "Delete the workspace “{name}” and all its content? This cannot be undone.",
|
|
5485
|
-
"backToWorkspaces": "Workspaces",
|
|
5486
5465
|
"allOrganisms": "All organisms",
|
|
5487
5466
|
"currentWorkspaces": "Workspaces in this organism",
|
|
5488
5467
|
"import": "Import",
|
|
@@ -5502,20 +5481,14 @@
|
|
|
5502
5481
|
"noRequests": "No access requests.",
|
|
5503
5482
|
"approve": "Approve",
|
|
5504
5483
|
"deny": "Deny",
|
|
5505
|
-
"approved": "
|
|
5484
|
+
"approved": "Approved",
|
|
5506
5485
|
"revoke": "Revoke",
|
|
5507
|
-
"manageMembers": "Manage members",
|
|
5508
|
-
"manageMembersDesc": "Invite, approve, block and revoke member access.",
|
|
5509
|
-
"membersRoster": "Members",
|
|
5510
|
-
"pendingRequests": "Pending join requests",
|
|
5511
|
-
"noPendingRequests": "No pending requests.",
|
|
5512
5486
|
"confirmRemoveMember": "Revoke {member}’s access to this organism?",
|
|
5513
5487
|
"memberRemoved": "Member removed",
|
|
5514
5488
|
"removeFailed": "Could not remove member",
|
|
5515
5489
|
"reviewFailed": "Could not update request",
|
|
5516
5490
|
"joinApproved": "Request approved",
|
|
5517
5491
|
"joinRejected": "Request declined",
|
|
5518
|
-
"inviteMember": "Invite a member",
|
|
5519
5492
|
"inviteePlaceholder": "owner name",
|
|
5520
5493
|
"invite": "Invite",
|
|
5521
5494
|
"outstandingInvites": "Awaiting acceptance",
|
|
@@ -5546,7 +5519,6 @@
|
|
|
5546
5519
|
"invitationAccepted": "Joined",
|
|
5547
5520
|
"invitationDeclined": "Declined",
|
|
5548
5521
|
"inviteActionFailed": "Could not update invitation",
|
|
5549
|
-
"searchContent": "Search content",
|
|
5550
5522
|
"searchPlaceholder": "Find records & documents…",
|
|
5551
5523
|
"search": "Search",
|
|
5552
5524
|
"searchNoResults": "No matches.",
|
|
@@ -5584,7 +5556,6 @@
|
|
|
5584
5556
|
"requestedAccess": "requested access",
|
|
5585
5557
|
"addAsContributor": "Add as contributor",
|
|
5586
5558
|
"addAsViewer": "as viewer",
|
|
5587
|
-
"deny": "Deny",
|
|
5588
5559
|
"roleContributorShort": "contributor",
|
|
5589
5560
|
"roleViewerShort": "viewer",
|
|
5590
5561
|
"makeContributor": "→ can write",
|
|
@@ -5609,19 +5580,9 @@
|
|
|
5609
5580
|
"overview": "Overview — who & what uses this organism",
|
|
5610
5581
|
"hide": "Hide",
|
|
5611
5582
|
"show": "Show",
|
|
5612
|
-
"aiPrompt": "AI access prompt:",
|
|
5613
|
-
"aiPromptHuman": "For chat",
|
|
5614
|
-
"aiPromptAgent": "For coding agent",
|
|
5615
5583
|
"contractPrompt": "Create contract agent",
|
|
5616
|
-
"contractPromptHint": "Copy a prompt to build an agent that processes this workspace (reads requests → writes results)",
|
|
5617
5584
|
"contractPromptCopied": "Contract-agent prompt copied — paste it to your AI / coding agent.",
|
|
5618
|
-
"promptCopied": "
|
|
5619
|
-
"addSpaceBtn": "Document space",
|
|
5620
|
-
"workspaceOrganism": "Organism",
|
|
5621
|
-
"addSpaceTitle": "Add a space",
|
|
5622
|
-
"addSpaceDesc": "A document space is a free-form wiki (sections + markdown pages). A record space is a schema-locked list (forms). You can remove spaces in Settings.",
|
|
5623
|
-
"modeDocument": "Document (wiki)",
|
|
5624
|
-
"modeRecords": "Records (form)",
|
|
5585
|
+
"promptCopied": "Prompt copied — paste it into any AI chat, then paste the JSON it returns below.",
|
|
5625
5586
|
"noFields": "No fields",
|
|
5626
5587
|
"createdAt": "Created",
|
|
5627
5588
|
"lastSaved": "Last saved",
|
|
@@ -5641,7 +5602,6 @@
|
|
|
5641
5602
|
"src_knowledge": "Knowledge",
|
|
5642
5603
|
"mine": "Mine",
|
|
5643
5604
|
"searchSources": "Search…",
|
|
5644
|
-
"search": "Search",
|
|
5645
5605
|
"noResults": "No results",
|
|
5646
5606
|
"entries": "entries",
|
|
5647
5607
|
"attach": "Attach",
|
|
@@ -5655,7 +5615,6 @@
|
|
|
5655
5615
|
"publishGateHint": "When on, an agent’s publish is held for your review instead of going live",
|
|
5656
5616
|
"gateToggled": "Publish gate updated",
|
|
5657
5617
|
"share": "Share",
|
|
5658
|
-
"shareHint": "Publish document pages to a public, no-login link",
|
|
5659
5618
|
"sharePublicTitle": "Public sharing",
|
|
5660
5619
|
"sharePublicDesc": "Make published document-space pages readable by anyone with the link — no login required. Drafts are never shared.",
|
|
5661
5620
|
"noDocSpaces": "This workspace has no document spaces to share.",
|
|
@@ -5667,15 +5626,17 @@
|
|
|
5667
5626
|
"copyFailed": "Copy failed",
|
|
5668
5627
|
"shareFailed": "Failed to update sharing",
|
|
5669
5628
|
"needsDecision": "Needs your decision",
|
|
5670
|
-
"approve": "Approve",
|
|
5671
5629
|
"reject": "Reject",
|
|
5672
|
-
"approved": "Approved",
|
|
5673
5630
|
"rejected": "Rejected",
|
|
5674
5631
|
"decisions": "Recent decisions",
|
|
5675
5632
|
"noneYet": "none yet",
|
|
5633
|
+
"memberAgents": "Agents",
|
|
5634
|
+
"memberAgentsHint": "This member's agents — they inherit the membership and can act in this organism",
|
|
5676
5635
|
"spaceTasksBacked": "This space points at the task system — its items are tasks, not workspace records. Manage them in the Tasks views.",
|
|
5677
5636
|
"spaceBackingUnsupported": "This space's backing is not supported, so its content is not shown here. Edit the workspace (manifest) and set this space's backing to \"memory\" to restore it — files and knowledge packages attach via Sources or document images instead.",
|
|
5678
5637
|
"onePerLine": "one per line",
|
|
5638
|
+
"autoIdHint": "Pre-filled automatically — change it if you want a memorable id.",
|
|
5639
|
+
"fillRequired": "Please fill in the required fields: {fields}",
|
|
5679
5640
|
"docs": "docs",
|
|
5680
5641
|
"newPage": "New document",
|
|
5681
5642
|
"edit": "Edit",
|
|
@@ -5701,10 +5662,7 @@
|
|
|
5701
5662
|
"confirmDeleteWorkspace": "Are you sure you want to delete this workspace? All its documents, records and version history are permanently removed. This cannot be undone.",
|
|
5702
5663
|
"spaces": "Spaces",
|
|
5703
5664
|
"recordsMode": "records",
|
|
5704
|
-
"remove": "Remove",
|
|
5705
5665
|
"spaceName": "New space name",
|
|
5706
|
-
"docsSpace": "document space",
|
|
5707
|
-
"recordsSpace": "records type",
|
|
5708
5666
|
"addSpace": "+ Add",
|
|
5709
5667
|
"spaceAdded": "Space added",
|
|
5710
5668
|
"spaceRemoved": "Space removed",
|
|
@@ -5725,8 +5683,72 @@
|
|
|
5725
5683
|
"tabMembers": "Members",
|
|
5726
5684
|
"tabAgents": "Agents",
|
|
5727
5685
|
"tabBoard": "Board",
|
|
5686
|
+
"tabReview": "Review",
|
|
5687
|
+
"tabPeople": "People",
|
|
5688
|
+
"forAgentsHint": "Copy a ready prompt that teaches an AI to use this workspace",
|
|
5689
|
+
"reviewBanner": "{n} waiting for review",
|
|
5690
|
+
"reviewBannerSub": "Publishes are gated and need a human decision.",
|
|
5691
|
+
"reviewQueue": "Review queue",
|
|
5692
|
+
"reviewEmpty": "Nothing waiting for review.",
|
|
5693
|
+
"relMin": "{n} min ago",
|
|
5694
|
+
"relHours": "{n} h ago",
|
|
5695
|
+
"relDays": "{n} d ago",
|
|
5696
|
+
"agentsDesc": "An attached agent works in this organism with its owner’s member rights — it shows up in workspace participants and activity.",
|
|
5697
|
+
"pickAgent": "Choose one of your agents…",
|
|
5698
|
+
"noOwnAgentsLeft": "All your agents are already attached (or you have none yet).",
|
|
5699
|
+
"advancedAttach": "Advanced: attach by ID",
|
|
5700
|
+
"agentActedIn": "active in",
|
|
5701
|
+
"lastActive": "last active",
|
|
5702
|
+
"membersDesc": "Members can join workspaces; their agents inherit the role.",
|
|
5703
|
+
"wantsToJoin": "wants to join",
|
|
5704
|
+
"decline": "Decline",
|
|
5705
|
+
"accessLabel": "Access",
|
|
5706
|
+
"accessAll": "all workspaces",
|
|
5707
|
+
"joinedDate": "joined {date}",
|
|
5708
|
+
"reqOne": "1 request",
|
|
5709
|
+
"reqMany": "{n} requests",
|
|
5710
|
+
"wsNotSetUp": "new — set up when opened",
|
|
5711
|
+
"recOne": "1 record",
|
|
5712
|
+
"recMany": "{n} records",
|
|
5713
|
+
"docOne": "1 document",
|
|
5714
|
+
"docMany": "{n} documents",
|
|
5715
|
+
"formAgentPolicy": "Agent policy",
|
|
5716
|
+
"autonomyHint": "Guidance for agents working here — L1 asks before nearly everything, L5 acts freely. The publish gate (Review tab) still applies regardless.",
|
|
5717
|
+
"lastLabel": "last:",
|
|
5718
|
+
"noActivityYet": "no activity yet",
|
|
5719
|
+
"toReview": "{n} to review",
|
|
5720
|
+
"showMap": "Map",
|
|
5721
|
+
"boardPreviewDesc": "Latest messages on this organism’s board.",
|
|
5722
|
+
"boardEmpty": "No messages yet — write the first one.",
|
|
5723
|
+
"writePost": "Write a message…",
|
|
5724
|
+
"send": "Send",
|
|
5725
|
+
"fieldName": "Name",
|
|
5726
|
+
"fieldDescription": "Description",
|
|
5727
|
+
"fieldInterests": "Interests",
|
|
5728
|
+
"fieldType": "Type",
|
|
5729
|
+
"fieldVisibility": "Visibility",
|
|
5730
|
+
"formIdentity": "Identity",
|
|
5731
|
+
"formAccess": "Access",
|
|
5732
|
+
"addTag": "Add…",
|
|
5733
|
+
"saveChanges": "Save changes",
|
|
5734
|
+
"discardChanges": "Discard unsaved changes?",
|
|
5735
|
+
"deleteOrganismTitle": "Delete this organism",
|
|
5736
|
+
"deleteOrganismStats": "Deletes {w} workspaces, {r} records and {d} documents. This cannot be undone.",
|
|
5737
|
+
"deleteWarnGeneric": "Deletes the organism with all its workspaces and content. This cannot be undone.",
|
|
5738
|
+
"deleteDots": "Delete…",
|
|
5739
|
+
"confirmTypeName": "Type the organism’s name to confirm",
|
|
5740
|
+
"confirmDeleteName": "Delete “{name}”?",
|
|
5741
|
+
"visHint": {
|
|
5742
|
+
"public": "Public: anyone can find and view this organism.",
|
|
5743
|
+
"listed": "Listed: appears in discovery, but the content is members-only.",
|
|
5744
|
+
"private": "Private: only members can see this organism and its content."
|
|
5745
|
+
},
|
|
5746
|
+
"policyHint": {
|
|
5747
|
+
"open": "Open: anyone can join instantly.",
|
|
5748
|
+
"approval_required": "Approval required: join requests need an admin’s approval.",
|
|
5749
|
+
"invite_only": "Invite only: joining is by invitation only."
|
|
5750
|
+
},
|
|
5728
5751
|
"openBoardsTab": "Open in Boards",
|
|
5729
|
-
"boardDesc": "This organism has a discussion board. Open it in the Boards view.",
|
|
5730
5752
|
"noBoard": "This organism has no board.",
|
|
5731
5753
|
"copyId": "Copy ID",
|
|
5732
5754
|
"copied": "Copied!",
|
|
@@ -5749,7 +5771,6 @@
|
|
|
5749
5771
|
"generateError": "Generation failed",
|
|
5750
5772
|
"noAiKey": "Set up your OpenRouter key above, or copy the prompt to your own AI chat.",
|
|
5751
5773
|
"copyPrompt": "Copy prompt",
|
|
5752
|
-
"promptCopied": "Prompt copied — paste it into any AI chat, then paste the JSON it returns below.",
|
|
5753
5774
|
"pasteHelp": "No key? Copy the prompt above into any AI chat, then paste the JSON it returns here:",
|
|
5754
5775
|
"pastePlaceholder": "Paste the AI JSON response here",
|
|
5755
5776
|
"applyPasted": "Validate & apply",
|
|
@@ -5788,10 +5809,8 @@
|
|
|
5788
5809
|
"members": "members",
|
|
5789
5810
|
"memberCount": "Members",
|
|
5790
5811
|
"board": "Board",
|
|
5791
|
-
"createdAt": "Created",
|
|
5792
5812
|
"cancel": "Cancel",
|
|
5793
5813
|
"create": "Create",
|
|
5794
|
-
"edit": "Edit",
|
|
5795
5814
|
"save": "Save",
|
|
5796
5815
|
"updated": "Organism updated",
|
|
5797
5816
|
"updateError": "Failed to update",
|
|
@@ -5807,7 +5826,22 @@
|
|
|
5807
5826
|
"club": "Club",
|
|
5808
5827
|
"cooperative": "Cooperative",
|
|
5809
5828
|
"project": "Project"
|
|
5810
|
-
}
|
|
5829
|
+
},
|
|
5830
|
+
"copyChatPrompt": "Copy chat prompt",
|
|
5831
|
+
"copyCodingPrompt": "Copy coding agent prompt",
|
|
5832
|
+
"agentAccess": "Agent access",
|
|
5833
|
+
"formProcess": "Process",
|
|
5834
|
+
"spacesRemoveHint": "These actions apply immediately. Removing a space hides its section — the data stays in memory and comes back if a space with the same name is added again.",
|
|
5835
|
+
"autonomyLevels": {
|
|
5836
|
+
"L1": "most cautious",
|
|
5837
|
+
"L2": "cautious",
|
|
5838
|
+
"L3": "balanced",
|
|
5839
|
+
"L4": "independent",
|
|
5840
|
+
"L5": "free"
|
|
5841
|
+
},
|
|
5842
|
+
"addDocSpaceTitle": "Add a document space",
|
|
5843
|
+
"addDocSpaceDesc": "A document space is a free-form wiki (sections + markdown pages). Record types need a schema, so they are designed with AI in Settings → Process (restructure).",
|
|
5844
|
+
"docSpaceNamePlaceholder": "New document space name"
|
|
5811
5845
|
},
|
|
5812
5846
|
"tags": {
|
|
5813
5847
|
"clear": "Clear",
|