aimeat 1.36.0 → 1.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/dist/.env.example +6 -0
  2. package/dist/locales/en.json +186 -25
  3. package/dist/locales/fi.json +186 -25
  4. package/dist/public/components/Markdown.js +9 -0
  5. package/dist/public/components/MemoryEmbed.js +151 -0
  6. package/dist/public/components/Mermaid.js +4 -1
  7. package/dist/public/components/NotificationBell.js +45 -19
  8. package/dist/public/css/components/markdown.css +15 -0
  9. package/dist/public/css/views/agents-detail.css +17 -0
  10. package/dist/public/css/views/portfolio.css +51 -0
  11. package/dist/public/css/views/profile.css +31 -0
  12. package/dist/public/js/services/agents.js +9 -0
  13. package/dist/public/js/services/organisms.js +37 -1
  14. package/dist/public/llms-template.txt +278 -0
  15. package/dist/public/spa.html +34 -1
  16. package/dist/public/sw.js +50 -34
  17. package/dist/public/views/portfolio.js +267 -44
  18. package/dist/public/views/profile/agents/agent-card.js +4 -0
  19. package/dist/public/views/profile/agents/tab-contracts.js +112 -0
  20. package/dist/public/views/profile/landing-page.js +10 -1
  21. package/dist/public/views/profile/memory-tab.js +6 -2
  22. package/dist/public/views/profile/notifications-tab.js +9 -1
  23. package/dist/public/views/profile/organisms/home.js +23 -3
  24. package/dist/public/views/profile/organisms/participants-panel.js +89 -17
  25. package/dist/public/views/profile/organisms/workspace-apps.js +130 -0
  26. package/dist/public/views/profile/organisms/workspace.js +5 -0
  27. package/dist/public/views/profile/organisms-tab.js +1 -1
  28. package/dist/src/cli/init-wizard.d.ts.map +1 -1
  29. package/dist/src/cli/init-wizard.js +32 -0
  30. package/dist/src/cli/init-wizard.js.map +1 -1
  31. package/dist/src/config.d.ts +13 -0
  32. package/dist/src/config.d.ts.map +1 -1
  33. package/dist/src/config.js +9 -0
  34. package/dist/src/config.js.map +1 -1
  35. package/dist/src/data/aimeat-iam-package.d.ts +10 -2
  36. package/dist/src/data/aimeat-iam-package.d.ts.map +1 -1
  37. package/dist/src/data/aimeat-iam-package.js +39 -10
  38. package/dist/src/data/aimeat-iam-package.js.map +1 -1
  39. package/dist/src/generated/api-types.d.ts +328 -23
  40. package/dist/src/generated/api-types.d.ts.map +1 -1
  41. package/dist/src/generated/prisma-postgres/edge.js +4 -3
  42. package/dist/src/generated/prisma-postgres/index-browser.js +1 -0
  43. package/dist/src/generated/prisma-postgres/index.d.ts +30 -1
  44. package/dist/src/generated/prisma-postgres/index.js +4 -3
  45. package/dist/src/generated/prisma-postgres/package.json +1 -1
  46. package/dist/src/generated/prisma-postgres/schema.prisma +1 -0
  47. package/dist/src/generated/prisma-postgres/wasm.js +4 -3
  48. package/dist/src/mcp/annotations.d.ts.map +1 -1
  49. package/dist/src/mcp/annotations.js +1 -0
  50. package/dist/src/mcp/annotations.js.map +1 -1
  51. package/dist/src/mcp/catalog/definitions.d.ts +3 -0
  52. package/dist/src/mcp/catalog/definitions.d.ts.map +1 -1
  53. package/dist/src/mcp/catalog/definitions.js +21 -7
  54. package/dist/src/mcp/catalog/definitions.js.map +1 -1
  55. package/dist/src/mcp/catalog/surfaces.js +1 -1
  56. package/dist/src/mcp/catalog/surfaces.js.map +1 -1
  57. package/dist/src/mcp/core.js +1 -1
  58. package/dist/src/mcp/core.js.map +1 -1
  59. package/dist/src/mcp/extensions.d.ts.map +1 -1
  60. package/dist/src/mcp/extensions.js +21 -0
  61. package/dist/src/mcp/extensions.js.map +1 -1
  62. package/dist/src/mcp/memory-extended.js +1 -1
  63. package/dist/src/mcp/memory-extended.js.map +1 -1
  64. package/dist/src/mcp/organisms.d.ts +1 -0
  65. package/dist/src/mcp/organisms.d.ts.map +1 -1
  66. package/dist/src/mcp/organisms.js +23 -6
  67. package/dist/src/mcp/organisms.js.map +1 -1
  68. package/dist/src/mcp/workspaces.d.ts +3 -0
  69. package/dist/src/mcp/workspaces.d.ts.map +1 -1
  70. package/dist/src/mcp/workspaces.js +7 -2
  71. package/dist/src/mcp/workspaces.js.map +1 -1
  72. package/dist/src/middleware/subdomain.d.ts +9 -0
  73. package/dist/src/middleware/subdomain.d.ts.map +1 -1
  74. package/dist/src/middleware/subdomain.js +24 -3
  75. package/dist/src/middleware/subdomain.js.map +1 -1
  76. package/dist/src/models/schemas.d.ts +2 -0
  77. package/dist/src/models/schemas.d.ts.map +1 -1
  78. package/dist/src/models/schemas.js +2 -2
  79. package/dist/src/models/schemas.js.map +1 -1
  80. package/dist/src/routes/admin-features.js +1 -1
  81. package/dist/src/routes/admin-features.js.map +1 -1
  82. package/dist/src/routes/agent-onboarding.d.ts.map +1 -1
  83. package/dist/src/routes/agent-onboarding.js +44 -7
  84. package/dist/src/routes/agent-onboarding.js.map +1 -1
  85. package/dist/src/routes/agents.d.ts +1 -0
  86. package/dist/src/routes/agents.d.ts.map +1 -1
  87. package/dist/src/routes/agents.js +43 -0
  88. package/dist/src/routes/agents.js.map +1 -1
  89. package/dist/src/routes/app-grants.d.ts +5 -0
  90. package/dist/src/routes/app-grants.d.ts.map +1 -1
  91. package/dist/src/routes/app-grants.js +52 -20
  92. package/dist/src/routes/app-grants.js.map +1 -1
  93. package/dist/src/routes/boards.d.ts.map +1 -1
  94. package/dist/src/routes/boards.js +4 -1
  95. package/dist/src/routes/boards.js.map +1 -1
  96. package/dist/src/routes/bootstrap.d.ts +2 -0
  97. package/dist/src/routes/bootstrap.d.ts.map +1 -1
  98. package/dist/src/routes/bootstrap.js +5 -0
  99. package/dist/src/routes/bootstrap.js.map +1 -1
  100. package/dist/src/routes/capabilities.d.ts.map +1 -1
  101. package/dist/src/routes/capabilities.js +4 -1
  102. package/dist/src/routes/capabilities.js.map +1 -1
  103. package/dist/src/routes/catalogue.d.ts.map +1 -1
  104. package/dist/src/routes/catalogue.js +5 -4
  105. package/dist/src/routes/catalogue.js.map +1 -1
  106. package/dist/src/routes/extensions.d.ts.map +1 -1
  107. package/dist/src/routes/extensions.js +11 -0
  108. package/dist/src/routes/extensions.js.map +1 -1
  109. package/dist/src/routes/ghii.d.ts.map +1 -1
  110. package/dist/src/routes/ghii.js +65 -17
  111. package/dist/src/routes/ghii.js.map +1 -1
  112. package/dist/src/routes/lib-editor.d.ts +26 -0
  113. package/dist/src/routes/lib-editor.d.ts.map +1 -0
  114. package/dist/src/routes/lib-editor.js +215 -0
  115. package/dist/src/routes/lib-editor.js.map +1 -0
  116. package/dist/src/routes/lib-markdown.d.ts +16 -1
  117. package/dist/src/routes/lib-markdown.d.ts.map +1 -1
  118. package/dist/src/routes/lib-markdown.js +281 -2
  119. package/dist/src/routes/lib-markdown.js.map +1 -1
  120. package/dist/src/routes/lib-organism.d.ts +28 -0
  121. package/dist/src/routes/lib-organism.d.ts.map +1 -0
  122. package/dist/src/routes/lib-organism.js +298 -0
  123. package/dist/src/routes/lib-organism.js.map +1 -0
  124. package/dist/src/routes/lib-portfolio-standalone.d.ts +22 -0
  125. package/dist/src/routes/lib-portfolio-standalone.d.ts.map +1 -0
  126. package/dist/src/routes/lib-portfolio-standalone.js +68 -0
  127. package/dist/src/routes/lib-portfolio-standalone.js.map +1 -0
  128. package/dist/src/routes/libs.d.ts +4 -0
  129. package/dist/src/routes/libs.d.ts.map +1 -1
  130. package/dist/src/routes/libs.js +60 -1
  131. package/dist/src/routes/libs.js.map +1 -1
  132. package/dist/src/routes/memory.d.ts +3 -0
  133. package/dist/src/routes/memory.d.ts.map +1 -1
  134. package/dist/src/routes/memory.js +58 -4
  135. package/dist/src/routes/memory.js.map +1 -1
  136. package/dist/src/routes/notifications.d.ts +5 -1
  137. package/dist/src/routes/notifications.d.ts.map +1 -1
  138. package/dist/src/routes/notifications.js +68 -3
  139. package/dist/src/routes/notifications.js.map +1 -1
  140. package/dist/src/routes/organisms.d.ts +2 -0
  141. package/dist/src/routes/organisms.d.ts.map +1 -1
  142. package/dist/src/routes/organisms.js +171 -11
  143. package/dist/src/routes/organisms.js.map +1 -1
  144. package/dist/src/routes/owners.d.ts.map +1 -1
  145. package/dist/src/routes/owners.js +12 -8
  146. package/dist/src/routes/owners.js.map +1 -1
  147. package/dist/src/routes/portfolio.d.ts +41 -1
  148. package/dist/src/routes/portfolio.d.ts.map +1 -1
  149. package/dist/src/routes/portfolio.js +94 -30
  150. package/dist/src/routes/portfolio.js.map +1 -1
  151. package/dist/src/routes/push.d.ts +15 -0
  152. package/dist/src/routes/push.d.ts.map +1 -1
  153. package/dist/src/routes/push.js +16 -1
  154. package/dist/src/routes/push.js.map +1 -1
  155. package/dist/src/routes/subdomains.d.ts +5 -0
  156. package/dist/src/routes/subdomains.d.ts.map +1 -1
  157. package/dist/src/routes/subdomains.js +56 -0
  158. package/dist/src/routes/subdomains.js.map +1 -1
  159. package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
  160. package/dist/src/server-bootstrap/routes-loader.js +2 -0
  161. package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
  162. package/dist/src/server-bootstrap/static-files.d.ts.map +1 -1
  163. package/dist/src/server-bootstrap/static-files.js +9 -4
  164. package/dist/src/server-bootstrap/static-files.js.map +1 -1
  165. package/dist/src/services/access-guard.d.ts.map +1 -1
  166. package/dist/src/services/access-guard.js +7 -0
  167. package/dist/src/services/access-guard.js.map +1 -1
  168. package/dist/src/services/ecosystem-access.d.ts +24 -8
  169. package/dist/src/services/ecosystem-access.d.ts.map +1 -1
  170. package/dist/src/services/ecosystem-access.js +27 -5
  171. package/dist/src/services/ecosystem-access.js.map +1 -1
  172. package/dist/src/services/iam/app-commands.d.ts +75 -0
  173. package/dist/src/services/iam/app-commands.d.ts.map +1 -0
  174. package/dist/src/services/iam/app-commands.js +55 -0
  175. package/dist/src/services/iam/app-commands.js.map +1 -0
  176. package/dist/src/services/iam/define-app-iam.d.ts +45 -0
  177. package/dist/src/services/iam/define-app-iam.d.ts.map +1 -0
  178. package/dist/src/services/iam/define-app-iam.js +75 -0
  179. package/dist/src/services/iam/define-app-iam.js.map +1 -0
  180. package/dist/src/services/iam/model.d.ts +113 -0
  181. package/dist/src/services/iam/model.d.ts.map +1 -0
  182. package/dist/src/services/iam/model.js +115 -0
  183. package/dist/src/services/iam/model.js.map +1 -0
  184. package/dist/src/services/mailbox-notification.d.ts +1 -0
  185. package/dist/src/services/mailbox-notification.d.ts.map +1 -1
  186. package/dist/src/services/mailbox-notification.js +3 -0
  187. package/dist/src/services/mailbox-notification.js.map +1 -1
  188. package/dist/src/services/notify.d.ts +11 -1
  189. package/dist/src/services/notify.d.ts.map +1 -1
  190. package/dist/src/services/notify.js +39 -2
  191. package/dist/src/services/notify.js.map +1 -1
  192. package/dist/src/services/organism-privacy.d.ts +46 -0
  193. package/dist/src/services/organism-privacy.d.ts.map +1 -0
  194. package/dist/src/services/organism-privacy.js +42 -0
  195. package/dist/src/services/organism-privacy.js.map +1 -0
  196. package/dist/src/services/prompt-defaults.d.ts +2 -0
  197. package/dist/src/services/prompt-defaults.d.ts.map +1 -1
  198. package/dist/src/services/prompt-defaults.js +5 -0
  199. package/dist/src/services/prompt-defaults.js.map +1 -1
  200. package/dist/src/services/scheduler.d.ts.map +1 -1
  201. package/dist/src/services/scheduler.js +11 -3
  202. package/dist/src/services/scheduler.js.map +1 -1
  203. package/dist/src/services/workspace-access.d.ts +2 -0
  204. package/dist/src/services/workspace-access.d.ts.map +1 -1
  205. package/dist/src/services/workspace-access.js +20 -8
  206. package/dist/src/services/workspace-access.js.map +1 -1
  207. package/dist/src/services/workspace-engagements.d.ts +65 -0
  208. package/dist/src/services/workspace-engagements.d.ts.map +1 -0
  209. package/dist/src/services/workspace-engagements.js +92 -0
  210. package/dist/src/services/workspace-engagements.js.map +1 -0
  211. package/dist/src/services/workspace-meta.d.ts +9 -2
  212. package/dist/src/services/workspace-meta.d.ts.map +1 -1
  213. package/dist/src/services/workspace-meta.js +22 -2
  214. package/dist/src/services/workspace-meta.js.map +1 -1
  215. package/dist/src/storage/interface.d.ts +8 -1
  216. package/dist/src/storage/interface.d.ts.map +1 -1
  217. package/dist/src/storage/interface.js.map +1 -1
  218. package/dist/src/storage/providers/mongodb/index.js +2 -2
  219. package/dist/src/storage/providers/mongodb/index.js.map +1 -1
  220. package/dist/src/storage/providers/sqlite/index.d.ts.map +1 -1
  221. package/dist/src/storage/providers/sqlite/index.js +5 -4
  222. package/dist/src/storage/providers/sqlite/index.js.map +1 -1
  223. package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
  224. package/dist/src/storage/providers/sqlite/schema.js +3 -0
  225. package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
  226. package/dist/src/utils/env-config.d.ts.map +1 -1
  227. package/dist/src/utils/env-config.js +12 -0
  228. package/dist/src/utils/env-config.js.map +1 -1
  229. package/dist/src/utils/env-validator.d.ts.map +1 -1
  230. package/dist/src/utils/env-validator.js +8 -0
  231. package/dist/src/utils/env-validator.js.map +1 -1
  232. package/dist/static/app-catalog.html +8 -2
  233. package/dist/static/icons/badge-96.png +0 -0
  234. package/dist/static/icons/icon-192.png +0 -0
  235. package/dist/static/icons/icon-512.png +0 -0
  236. package/dist/static/manifest.json +19 -17
  237. package/dist/static/sw.js +13 -11
  238. package/package.json +1 -1
  239. package/prisma/schema.postgres.prisma +1 -0
  240. package/prisma/schema.prisma +1 -0
package/dist/.env.example CHANGED
@@ -17,6 +17,12 @@ AIMEAT_PORT=40050
17
17
  # AIMEAT_APP_HOST="apps.your-domain.com" # default: apps.<AIMEAT_BASE_URL host>, empty for localhost/IP
18
18
  # AIMEAT_APP_ORIGIN_ENABLED=false # true → apex inline app HTML 301s to the app origin
19
19
 
20
+ # ── Portfolio Origin ──────────────────────────────────────────
21
+ # Published portfolios served standalone at <username>.portfolio.<host> (same
22
+ # isolation model + infra as the app origin: wildcard DNS + TLS + nginx block).
23
+ # AIMEAT_PORTFOLIO_HOST="portfolio.your-domain.com" # default: portfolio.<AIMEAT_BASE_URL host>, empty for localhost/IP
24
+ # AIMEAT_PORTFOLIO_ORIGIN_ENABLED=false # true → standalone portfolio URLs advertised + served
25
+
20
26
  # ── Storage Backend ───────────────────────────────────────────
21
27
  # Choose storage: memory (default, data lost on restart), sqlite (file-based, zero-config),
22
28
  # mongodb (production), or postgresql (production). `postgres` is accepted as an alias.
@@ -82,7 +82,6 @@
82
82
  "inbox.attachmentOpenRaw": "Open raw",
83
83
  "inbox.attachmentDownload": "Download",
84
84
  "inbox.attachmentLoadError": "Could not load this attachment.",
85
- "inbox.close": "Close",
86
85
  "inbox.directThread": "Direct",
87
86
  "inbox.subjectPlaceholder": "Subject (optional — starts a new thread)",
88
87
  "admin.messages.title": "Direct messages",
@@ -666,9 +665,24 @@
666
665
  "needPrefix": "Enter a memory prefix to watch",
667
666
  "created": "Trigger created",
668
667
  "error": "Trigger failed",
669
- "kind": { "time": "On a date", "recurring": "Recurring", "completion": "When something completes", "condition": "When a condition is met" },
670
- "cad": { "none": "Don't repeat", "daily": "Daily", "weekly": "Weekly", "monthly": "Monthly" },
671
- "ct": { "memory_count": "Item count reaches", "workspace_count": "Workspace items reach", "no_activity": "No activity for N days", "memory_exists": "Something appears" },
668
+ "kind": {
669
+ "time": "On a date",
670
+ "recurring": "Recurring",
671
+ "completion": "When something completes",
672
+ "condition": "When a condition is met"
673
+ },
674
+ "cad": {
675
+ "none": "Don't repeat",
676
+ "daily": "Daily",
677
+ "weekly": "Weekly",
678
+ "monthly": "Monthly"
679
+ },
680
+ "ct": {
681
+ "memory_count": "Item count reaches",
682
+ "workspace_count": "Workspace items reach",
683
+ "no_activity": "No activity for N days",
684
+ "memory_exists": "Something appears"
685
+ },
672
686
  "act": {
673
687
  "label": "When it fires",
674
688
  "remind": "Remind me",
@@ -710,7 +724,11 @@
710
724
  "replanApply": "Apply",
711
725
  "replanErr": "Re-plan failed",
712
726
  "targetChanged": "The target state changed — adjust the milestones and the rest of the plan to fit.",
713
- "status": { "not-started": "Not started", "in-progress": "In progress", "reached": "Reached" }
727
+ "status": {
728
+ "not-started": "Not started",
729
+ "in-progress": "In progress",
730
+ "reached": "Reached"
731
+ }
714
732
  },
715
733
  "reset": {
716
734
  "title": "Reset Secretary",
@@ -791,7 +809,12 @@
791
809
  "dailyBudgetHint": "Cap on what autonomous actions may spend per day.",
792
810
  "noLimit": "No limit",
793
811
  "bandsNote": "These set what the Secretary may do on its own. Each takes effect as that capability ships.",
794
- "band": { "act": "Act", "draft": "Draft", "ask": "Ask", "off": "Off" },
812
+ "band": {
813
+ "act": "Act",
814
+ "draft": "Draft",
815
+ "ask": "Ask",
816
+ "off": "Off"
817
+ },
795
818
  "locked": "always on",
796
819
  "enterprise": "Enterprise",
797
820
  "capCosts": "costs / outbound",
@@ -1095,7 +1118,6 @@
1095
1118
  "running": "Running…",
1096
1119
  "queued": "queued",
1097
1120
  "startNew": "Start a new routine",
1098
- "discard": "Discard",
1099
1121
  "decisionChosen": "Approved this routine step",
1100
1122
  "routinesTitle": "Routines",
1101
1123
  "last": "Last",
@@ -1124,7 +1146,11 @@
1124
1146
  "checkResult": "Check result",
1125
1147
  "repeats": "Repeats",
1126
1148
  "nextRun": "Next run",
1127
- "cadence": { "none": "Once (no repeat)", "daily": "Daily", "weekly": "Weekly" },
1149
+ "cadence": {
1150
+ "none": "Once (no repeat)",
1151
+ "daily": "Daily",
1152
+ "weekly": "Weekly"
1153
+ },
1128
1154
  "status": {
1129
1155
  "done": "done",
1130
1156
  "skipped": "skipped",
@@ -1153,12 +1179,18 @@
1153
1179
  "suggestEmpty": "No new shortcuts to suggest",
1154
1180
  "error": "Shortcuts failed",
1155
1181
  "composeTarget": "focuses",
1156
- "kind": { "prompt": "message", "compose": "open" }
1182
+ "kind": {
1183
+ "prompt": "message",
1184
+ "compose": "open"
1185
+ }
1157
1186
  },
1158
1187
  "items": {
1159
1188
  "title": "Action items",
1160
1189
  "dismiss": "Dismiss",
1161
- "handle": { "advance": "Open", "check-delegate": "Check result" },
1190
+ "handle": {
1191
+ "advance": "Open",
1192
+ "check-delegate": "Check result"
1193
+ },
1162
1194
  "text": {
1163
1195
  "approve": "Approve: {summary}",
1164
1196
  "ready": "Ready to run: {summary}",
@@ -1717,11 +1749,43 @@
1717
1749
  "autoSection": "⏱ Runs automatically",
1718
1750
  "manualSection": "On demand",
1719
1751
  "ungrouped": "Other",
1720
- "axis": { "need": "By need", "agent": "By agent", "auto": "By automation", "tag": "By tag", "capability": "By capability" },
1721
- "sort": { "standing": "Most valuable", "cost": "Cheapest", "speed": "Fastest", "name": "A–Z" },
1722
- "facet": { "cost": "Price", "latency": "Speed", "verification": "Trust", "dataHandling": "Privacy", "format": "Output" },
1723
- "format": { "document": "document", "record": "record", "board-post": "board post", "file": "file", "app": "app", "image": "image", "json": "data (JSON)" },
1724
- "need": { "create": "Create", "analyze": "Analyze & decide", "communicate": "Communicate & translate", "build": "Build & automate", "inspect": "Inspect & report", "other": "Other" },
1752
+ "axis": {
1753
+ "need": "By need",
1754
+ "agent": "By agent",
1755
+ "auto": "By automation",
1756
+ "tag": "By tag",
1757
+ "capability": "By capability"
1758
+ },
1759
+ "sort": {
1760
+ "standing": "Most valuable",
1761
+ "cost": "Cheapest",
1762
+ "speed": "Fastest",
1763
+ "name": "A–Z"
1764
+ },
1765
+ "facet": {
1766
+ "cost": "Price",
1767
+ "latency": "Speed",
1768
+ "verification": "Trust",
1769
+ "dataHandling": "Privacy",
1770
+ "format": "Output"
1771
+ },
1772
+ "format": {
1773
+ "document": "document",
1774
+ "record": "record",
1775
+ "board-post": "board post",
1776
+ "file": "file",
1777
+ "app": "app",
1778
+ "image": "image",
1779
+ "json": "data (JSON)"
1780
+ },
1781
+ "need": {
1782
+ "create": "Create",
1783
+ "analyze": "Analyze & decide",
1784
+ "communicate": "Communicate & translate",
1785
+ "build": "Build & automate",
1786
+ "inspect": "Inspect & report",
1787
+ "other": "Other"
1788
+ },
1725
1789
  "aiSearch": "Find by need",
1726
1790
  "aiThinking": "Matching your need…",
1727
1791
  "aiResultsTitle": "Best matches for your need",
@@ -1733,12 +1797,41 @@
1733
1797
  "buildForNeed": "Build an agent for this →",
1734
1798
  "buildRequested": "Asked {agent} to build an agent for this.",
1735
1799
  "noBuilder": "No agent-builder available. Connect crew-forge first.",
1736
- "visibility": { "private": "Private (only me)", "unlisted": "Unlisted (by link)", "public": "Public (listed)" },
1737
- "status": { "done": "done", "failed": "failed", "active": "in progress", "paused": "paused", "stalled": "stalled", "queued": "queued", "revision_requested": "revision requested", "draft": "draft" },
1738
- "verification": { "deterministic": "deterministic", "gated": "verified", "ungated": "unverified" },
1739
- "dataHandling": { "local-only": "local-only", "llm-provider": "via LLM", "third-party": "third-party" },
1740
- "cost": { "free": "free", "cheap": "cheap", "expensive": "$$$" },
1741
- "latency": { "seconds": "seconds", "minutes": "minutes", "long-running": "long-running" },
1800
+ "visibility": {
1801
+ "private": "Private (only me)",
1802
+ "unlisted": "Unlisted (by link)",
1803
+ "public": "Public (listed)"
1804
+ },
1805
+ "status": {
1806
+ "done": "done",
1807
+ "failed": "failed",
1808
+ "active": "in progress",
1809
+ "paused": "paused",
1810
+ "stalled": "stalled",
1811
+ "queued": "queued",
1812
+ "revision_requested": "revision requested",
1813
+ "draft": "draft"
1814
+ },
1815
+ "verification": {
1816
+ "deterministic": "deterministic",
1817
+ "gated": "verified",
1818
+ "ungated": "unverified"
1819
+ },
1820
+ "dataHandling": {
1821
+ "local-only": "local-only",
1822
+ "llm-provider": "via LLM",
1823
+ "third-party": "third-party"
1824
+ },
1825
+ "cost": {
1826
+ "free": "free",
1827
+ "cheap": "cheap",
1828
+ "expensive": "$$$"
1829
+ },
1830
+ "latency": {
1831
+ "seconds": "seconds",
1832
+ "minutes": "minutes",
1833
+ "long-running": "long-running"
1834
+ },
1742
1835
  "consequence": {
1743
1836
  "creates-agent": "creates an agent",
1744
1837
  "creates-schedule": "creates a schedule",
@@ -2423,6 +2516,7 @@
2423
2516
  "tasks": "Tasks",
2424
2517
  "messages": "Chat",
2425
2518
  "data_access": "Memory",
2519
+ "contracts": "Contracts",
2426
2520
  "directives": "Directives",
2427
2521
  "agent_config": "Agent Config",
2428
2522
  "activity": "Activity",
@@ -2575,6 +2669,18 @@
2575
2669
  "sendError": "Failed to send message",
2576
2670
  "command": "command"
2577
2671
  },
2672
+ "contracts": {
2673
+ "offersTitle": "Contracts this agent offers",
2674
+ "offersDesc": "The workspace contracts this agent advertises. Owners see these when choosing an agent for a workspace.",
2675
+ "noOffers": "This agent advertises no workspace contract (add a workspace-contract + contract.<id> tag in Memory).",
2676
+ "activeTitle": "Active in these workspaces",
2677
+ "noneActive": "Not active in any workspace yet. Owners adopt this agent from a workspace’s People panel.",
2678
+ "retiredTitle": "Retired (history)",
2679
+ "since": "since {d}",
2680
+ "until": "used here until {d}",
2681
+ "retiredToast": "Retired — the agent will skip this workspace",
2682
+ "readoptedToast": "Re-adopted — the agent will pick this workspace back up"
2683
+ },
2578
2684
  "data_access": {
2579
2685
  "sharedTagsTitle": "Shared Tags",
2580
2686
  "addTag": "Add tag",
@@ -3523,6 +3629,7 @@
3523
3629
  "testBtn": "Send Test",
3524
3630
  "subscribeSuccess": "Push notifications enabled!",
3525
3631
  "subscribeFailed": "Failed to enable push notifications. Please allow notifications in your browser.",
3632
+ "permissionDenied": "Notifications are blocked for this site. Allow notifications in your browser's site settings, then try again.",
3526
3633
  "unsubscribeSuccess": "Push notifications disabled.",
3527
3634
  "unsubscribeFailed": "Failed to disable push notifications.",
3528
3635
  "testSent": "Test notification sent!",
@@ -4442,6 +4549,8 @@
4442
4549
  "profileBtn": "Profile",
4443
4550
  "editLocaleHint": "Your preferred language. Used for the portal UI; agents can read it from your profile to answer in it.",
4444
4551
  "editEmailLink": "Change in the Email tab →",
4552
+ "editDirectoryListed": "List me in the member directory",
4553
+ "editDirectoryHint": "Off by default. When on, other signed-in members can find you (name, bio, avatar) in the directory. Anonymous visitors never see it.",
4445
4554
  "pwMin": "At least 8 characters",
4446
4555
  "pwUpper": "An uppercase letter",
4447
4556
  "pwLower": "A lowercase letter",
@@ -4864,7 +4973,10 @@
4864
4973
  "appOrigin": "Serve user apps from a separate app origin (*.apps.<domain>) to isolate them from your session? Requires DNS + a wildcard TLS cert (see docs/internal/app-origin-deployment.md). Defaults to off.",
4865
4974
  "appHost": "App origin host (e.g. apps.example.com)",
4866
4975
  "appHostHint": "Set up DNS (apps.<domain> + wildcard *.apps.<domain>) and a wildcard TLS cert first, see docs/internal/app-origin-deployment.md",
4867
- "appHostRequired": "App host is required when app origin isolation is enabled"
4976
+ "appHostRequired": "App host is required when app origin isolation is enabled",
4977
+ "portfolioOrigin": "Serve published portfolios standalone at <username>.portfolio.<domain>? Requires DNS + a wildcard TLS cert (same setup as the app origin). Defaults to off.",
4978
+ "portfolioHost": "Portfolio origin host (e.g. portfolio.example.com)",
4979
+ "portfolioHostRequired": "Portfolio host is required when the portfolio origin is enabled"
4868
4980
  },
4869
4981
  "join": {
4870
4982
  "title": "Join AIMEAT Federation",
@@ -7104,6 +7216,9 @@
7104
7216
  "unpublish": "Unpublish",
7105
7217
  "unpublished": "Portfolio unpublished",
7106
7218
  "unpublishConfirm": "Unpublish your portfolio? The public page stops working until you publish again.",
7219
+ "viewStandalone": "Own address",
7220
+ "standaloneTarget": "Also served standalone at:",
7221
+ "showBadge": "Show the aimeat.io badge on the standalone page",
7107
7222
  "customTypePlaceholder": "Describe what kind of portfolio you want…",
7108
7223
  "customGatePlaceholder": "Describe the custom auth-gated sections…",
7109
7224
  "backToProfile": "Profile",
@@ -7117,7 +7232,9 @@
7117
7232
  "notFound": "Portfolio not found",
7118
7233
  "notFoundDesc": "This user hasn't published a portfolio yet.",
7119
7234
  "loginToSeeMore": "Log in to see more content",
7120
- "backToPortal": "Home"
7235
+ "backToPortal": "Home",
7236
+ "fullscreen": "Fullscreen",
7237
+ "standalone": "Own address"
7121
7238
  }
7122
7239
  },
7123
7240
  "cli": {
@@ -7257,7 +7374,8 @@
7257
7374
  "private": "Private",
7258
7375
  "owner": "My Agents",
7259
7376
  "shared": "My Agents",
7260
- "group": "Group"
7377
+ "group": "Group",
7378
+ "members": "Members (logged-in users)"
7261
7379
  },
7262
7380
  "federate": "Federate",
7263
7381
  "federated": "Federated",
@@ -7574,6 +7692,14 @@
7574
7692
  "adoptFailed": "Could not queue the adoption task",
7575
7693
  "contractActive": "active here",
7576
7694
  "contractActiveHint": "This agent already works in this workspace",
7695
+ "retire": "Retire",
7696
+ "retireHint": "Stop this agent from working in THIS workspace — its loop skips it and the chip becomes “retired”. Its past work stays as history.",
7697
+ "retireFailed": "Could not retire the contract",
7698
+ "retired": "{agent} retired from this workspace",
7699
+ "retiredTag": "retired",
7700
+ "retiredUntilHint": "Retired — this agent served here until this date. Its past work stays visible.",
7701
+ "reAdopt": "Re-adopt",
7702
+ "bareContract": "contract",
7577
7703
  "spaceTasksBacked": "This space points at the task system: its items are tasks, not workspace records. Manage them in the Tasks views.",
7578
7704
  "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.",
7579
7705
  "onePerLine": "one per line",
@@ -7694,6 +7820,14 @@
7694
7820
  "fieldInterests": "Interests",
7695
7821
  "fieldType": "Type",
7696
7822
  "fieldVisibility": "Visibility",
7823
+ "memberVisLabel": "Member list",
7824
+ "memberVisHint": "Who can see who belongs here. Hides the member LIST only — content authorship (comments, records, activity) stays visible, and the creator/admins are always shown.",
7825
+ "memberVis": {
7826
+ "authenticated": "Signed-in users",
7827
+ "members": "Members only",
7828
+ "admins": "Admins only",
7829
+ "public": "Public (anyone)"
7830
+ },
7697
7831
  "formIdentity": "Identity",
7698
7832
  "formAccess": "Access",
7699
7833
  "addTag": "Add…",
@@ -7821,6 +7955,24 @@
7821
7955
  "copyChatPrompt": "Copy chat prompt",
7822
7956
  "copyCodingPrompt": "Copy coding agent prompt",
7823
7957
  "agentAccess": "Agent access",
7958
+ "apps": {
7959
+ "title": "Apps",
7960
+ "hint": "Pinned to this workspace — they open with it as context.",
7961
+ "manage": "Manage",
7962
+ "done": "Done",
7963
+ "open": "Open",
7964
+ "none": "No apps pinned yet.",
7965
+ "noneHint": "Pin a published app so members can launch it from here.",
7966
+ "pickerDesc": "Pick published apps to show in this workspace. Pinning only adds a launch card — data access follows workspace access.",
7967
+ "search": "Search apps…",
7968
+ "noMatch": "No apps match.",
7969
+ "catalogEmpty": "No published apps on this node yet.",
7970
+ "pin": "Pin",
7971
+ "unpin": "Unpin",
7972
+ "saved": "Workspace apps updated",
7973
+ "saveError": "Could not update apps",
7974
+ "missing": "Not in the catalog (removed?)"
7975
+ },
7824
7976
  "formProcess": "Process",
7825
7977
  "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.",
7826
7978
  "autonomyLevels": {
@@ -8761,5 +8913,14 @@
8761
8913
  "ctaDemo": "Book a demo →",
8762
8914
  "ctaPricing": "See pricing →",
8763
8915
  "writtenToday": "written today at"
8764
- }
8916
+ },
8917
+ "markdown.embed.loading": "Loading…",
8918
+ "markdown.embed.notFound": "Key not found",
8919
+ "markdown.embed.signIn": "Sign in to view this data",
8920
+ "markdown.embed.noAccess": "No permission to read this key",
8921
+ "markdown.embed.error": "Could not load",
8922
+ "markdown.embed.empty": "(empty)",
8923
+ "markdown.embed.refresh": "Refresh",
8924
+ "markdown.embed.moreRows": "more rows",
8925
+ "markdown.embed.missingKey": "The block declares no key"
8765
8926
  }