aimeat 1.16.2 → 1.18.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 (281) hide show
  1. package/dist/.env.example +6 -1
  2. package/dist/locales/en.json +166 -4
  3. package/dist/locales/fi.json +166 -4
  4. package/dist/public/components/Card.js +17 -3
  5. package/dist/public/components/Collapsible.js +39 -0
  6. package/dist/public/components/CopyButton.js +55 -24
  7. package/dist/public/components/DataTable.js +57 -0
  8. package/dist/public/components/EmptyState.js +28 -0
  9. package/dist/public/components/KeyValueRow.js +37 -0
  10. package/dist/public/components/Modal.js +22 -5
  11. package/dist/public/components/Pagination.js +70 -0
  12. package/dist/public/components/SearchBar.js +44 -0
  13. package/dist/public/components/StatusDot.js +29 -0
  14. package/dist/public/components/TagList.js +53 -0
  15. package/dist/public/components/ToggleSwitch.js +28 -0
  16. package/dist/public/components/index.js +41 -1
  17. package/dist/public/css/components/tags.css +24 -0
  18. package/dist/public/css/style-testbed.css +135 -0
  19. package/dist/public/css/theme.css +556 -34
  20. package/dist/public/css/views/admin-agent-integration.css +2 -33
  21. package/dist/public/css/views/admin.css +730 -686
  22. package/dist/public/css/views/agents-detail.css +402 -14
  23. package/dist/public/css/views/help.css +2 -1
  24. package/dist/public/css/views/hobbies.css +53 -33
  25. package/dist/public/css/views/marketplace.css +73 -60
  26. package/dist/public/css/views/openclaw.css +12 -6
  27. package/dist/public/css/views/portal-classic.css +34 -26
  28. package/dist/public/css/views/portal-dev.css +41 -32
  29. package/dist/public/css/views/portal.css +14 -18
  30. package/dist/public/css/views/profile.css +252 -164
  31. package/dist/public/css/views/public-knowledge-viewer.css +18 -6
  32. package/dist/public/css/views/scheduler.css +100 -0
  33. package/dist/public/js/format.js +41 -0
  34. package/dist/public/js/services/agent-tasks.js +14 -1
  35. package/dist/public/js/services/generator-spec-validate.js +5 -1
  36. package/dist/public/js/services/schedules.js +53 -0
  37. package/dist/public/js/style-testbed.js +170 -0
  38. package/dist/public/js/theme.js +114 -0
  39. package/dist/public/spa.html +74 -16
  40. package/dist/public/style-testbed.html +420 -0
  41. package/dist/public/views/admin/agent-integration-tab.js +23 -38
  42. package/dist/public/views/admin/agent-tasks-tab.js +14 -21
  43. package/dist/public/views/admin/chat-instances-tab.js +1 -1
  44. package/dist/public/views/admin/config-tab.js +7 -2
  45. package/dist/public/views/admin/cortex-tab.js +20 -14
  46. package/dist/public/views/admin/csm-tab.js +22 -18
  47. package/dist/public/views/admin/directory-tab.js +3 -3
  48. package/dist/public/views/admin/email-tab.js +23 -28
  49. package/dist/public/views/admin/federation-tab.js +15 -5
  50. package/dist/public/views/admin/generator-debug-tab.js +10 -8
  51. package/dist/public/views/admin/genesis-tab.js +4 -4
  52. package/dist/public/views/admin/ghii-tab.js +3 -3
  53. package/dist/public/views/admin/knowledge-tab.js +15 -5
  54. package/dist/public/views/admin/matching-tab.js +3 -3
  55. package/dist/public/views/admin/memory-tab.js +16 -20
  56. package/dist/public/views/admin/msm-tab.js +30 -17
  57. package/dist/public/views/admin/overview-tab.js +7 -7
  58. package/dist/public/views/admin/packages-tab.js +10 -9
  59. package/dist/public/views/admin/portal-tab.js +14 -4
  60. package/dist/public/views/admin/prompts-tab.js +5 -5
  61. package/dist/public/views/admin/push-tab.js +15 -4
  62. package/dist/public/views/admin/realtime-tab.js +3 -3
  63. package/dist/public/views/admin/services-tab.js +18 -27
  64. package/dist/public/views/admin/shared.js +48 -58
  65. package/dist/public/views/admin/sharing-groups-tab.js +5 -10
  66. package/dist/public/views/admin/stats-tab.js +3 -3
  67. package/dist/public/views/guides.js +9 -13
  68. package/dist/public/views/help.js +3 -24
  69. package/dist/public/views/hobbies.js +47 -41
  70. package/dist/public/views/marketplace.js +42 -34
  71. package/dist/public/views/openclaw.js +0 -1
  72. package/dist/public/views/portal-classic.js +4 -15
  73. package/dist/public/views/portal-dev.js +28 -30
  74. package/dist/public/views/portal.js +16 -21
  75. package/dist/public/views/portfolio.js +11 -12
  76. package/dist/public/views/profile/access-tab.js +250 -1
  77. package/dist/public/views/profile/agents/agent-card.js +75 -4
  78. package/dist/public/views/profile/agents/tab-activity.js +15 -13
  79. package/dist/public/views/profile/agents/tab-agent-config.js +60 -6
  80. package/dist/public/views/profile/agents/tab-integration.js +37 -60
  81. package/dist/public/views/profile/agents/tab-messages.js +10 -1
  82. package/dist/public/views/profile/agents/tab-quality.js +25 -19
  83. package/dist/public/views/profile/agents/tab-schedules.js +110 -0
  84. package/dist/public/views/profile/agents-activity-subtab.js +4 -4
  85. package/dist/public/views/profile/agents-services-subtab.js +5 -4
  86. package/dist/public/views/profile/agents-tab.js +141 -37
  87. package/dist/public/views/profile/agents-tasks-subtab.js +221 -26
  88. package/dist/public/views/profile/calibrator-batch.js +5 -11
  89. package/dist/public/views/profile/calibrator-tab.js +4 -9
  90. package/dist/public/views/profile/chat-sessions-tab.js +9 -5
  91. package/dist/public/views/profile/email-tab.js +2 -2
  92. package/dist/public/views/profile/extensions-tab.js +27 -22
  93. package/dist/public/views/profile/federation-tab.js +4 -1
  94. package/dist/public/views/profile/foundry-detail.js +22 -23
  95. package/dist/public/views/profile/foundry-tab.js +12 -13
  96. package/dist/public/views/profile/generator-dashboard/DebugPanel.js +4 -7
  97. package/dist/public/views/profile/generator-dashboard/use-dashboard-core.js +4 -1
  98. package/dist/public/views/profile/generator-dashboard/use-edit-mode.js +3 -2
  99. package/dist/public/views/profile/generator-detail.js +26 -30
  100. package/dist/public/views/profile/generator-tab.js +5 -5
  101. package/dist/public/views/profile/knowledge-tab.js +12 -12
  102. package/dist/public/views/profile/landing-page.js +100 -149
  103. package/dist/public/views/profile/memory-tab.js +15 -11
  104. package/dist/public/views/profile/node-stats-tab.js +3 -3
  105. package/dist/public/views/profile/nodes-tab.js +10 -3
  106. package/dist/public/views/profile/notifications-tab.js +3 -3
  107. package/dist/public/views/profile/packages-tab.js +14 -14
  108. package/dist/public/views/profile/scheduler-tab.js +340 -0
  109. package/dist/public/views/profile/services-tab.js +1 -1
  110. package/dist/public/views/profile/shared.js +16 -12
  111. package/dist/public/views/profile/wallet-tab.js +27 -50
  112. package/dist/public/views/profile/work-tab.js +29 -31
  113. package/dist/public/views/profile.js +24 -0
  114. package/dist/public/views/public-knowledge-viewer.js +9 -18
  115. package/dist/src/auth/middleware.d.ts +3 -2
  116. package/dist/src/auth/middleware.d.ts.map +1 -1
  117. package/dist/src/auth/middleware.js +78 -3
  118. package/dist/src/auth/middleware.js.map +1 -1
  119. package/dist/src/cli/init-wizard.d.ts.map +1 -1
  120. package/dist/src/cli/init-wizard.js +13 -1
  121. package/dist/src/cli/init-wizard.js.map +1 -1
  122. package/dist/src/config.d.ts +6 -0
  123. package/dist/src/config.d.ts.map +1 -1
  124. package/dist/src/config.js +12 -1
  125. package/dist/src/config.js.map +1 -1
  126. package/dist/src/generated/api-types.d.ts +708 -8
  127. package/dist/src/generated/api-types.d.ts.map +1 -1
  128. package/dist/src/mcp/agent-schedules.d.ts +23 -0
  129. package/dist/src/mcp/agent-schedules.d.ts.map +1 -0
  130. package/dist/src/mcp/agent-schedules.js +175 -0
  131. package/dist/src/mcp/agent-schedules.js.map +1 -0
  132. package/dist/src/mcp/annotations.d.ts.map +1 -1
  133. package/dist/src/mcp/annotations.js +6 -0
  134. package/dist/src/mcp/annotations.js.map +1 -1
  135. package/dist/src/mcp/catalog/definitions.d.ts.map +1 -1
  136. package/dist/src/mcp/catalog/definitions.js +55 -0
  137. package/dist/src/mcp/catalog/definitions.js.map +1 -1
  138. package/dist/src/mcp/catalog/scopes.d.ts.map +1 -1
  139. package/dist/src/mcp/catalog/scopes.js +12 -0
  140. package/dist/src/mcp/catalog/scopes.js.map +1 -1
  141. package/dist/src/mcp/catalog/surfaces.d.ts.map +1 -1
  142. package/dist/src/mcp/catalog/surfaces.js +2 -0
  143. package/dist/src/mcp/catalog/surfaces.js.map +1 -1
  144. package/dist/src/mcp/index.d.ts.map +1 -1
  145. package/dist/src/mcp/index.js +2 -0
  146. package/dist/src/mcp/index.js.map +1 -1
  147. package/dist/src/models/agent-task-schemas.d.ts +6 -0
  148. package/dist/src/models/agent-task-schemas.d.ts.map +1 -1
  149. package/dist/src/models/agent-task-schemas.js +6 -0
  150. package/dist/src/models/agent-task-schemas.js.map +1 -1
  151. package/dist/src/models/schemas.d.ts +1 -0
  152. package/dist/src/models/schemas.d.ts.map +1 -1
  153. package/dist/src/models/schemas.js +4 -0
  154. package/dist/src/models/schemas.js.map +1 -1
  155. package/dist/src/routes/access-tokens.d.ts +17 -0
  156. package/dist/src/routes/access-tokens.d.ts.map +1 -0
  157. package/dist/src/routes/access-tokens.js +164 -0
  158. package/dist/src/routes/access-tokens.js.map +1 -0
  159. package/dist/src/routes/agent-tasks.d.ts +2 -0
  160. package/dist/src/routes/agent-tasks.d.ts.map +1 -1
  161. package/dist/src/routes/agent-tasks.js +118 -23
  162. package/dist/src/routes/agent-tasks.js.map +1 -1
  163. package/dist/src/routes/agents.d.ts.map +1 -1
  164. package/dist/src/routes/agents.js +46 -0
  165. package/dist/src/routes/agents.js.map +1 -1
  166. package/dist/src/routes/ai.d.ts +6 -9
  167. package/dist/src/routes/ai.d.ts.map +1 -1
  168. package/dist/src/routes/ai.js +26 -175
  169. package/dist/src/routes/ai.js.map +1 -1
  170. package/dist/src/routes/apps.d.ts.map +1 -1
  171. package/dist/src/routes/apps.js +104 -34
  172. package/dist/src/routes/apps.js.map +1 -1
  173. package/dist/src/routes/auth.d.ts.map +1 -1
  174. package/dist/src/routes/auth.js +77 -4
  175. package/dist/src/routes/auth.js.map +1 -1
  176. package/dist/src/routes/cortex.d.ts +2 -1
  177. package/dist/src/routes/cortex.d.ts.map +1 -1
  178. package/dist/src/routes/cortex.js +13 -8
  179. package/dist/src/routes/cortex.js.map +1 -1
  180. package/dist/src/routes/extensions.d.ts.map +1 -1
  181. package/dist/src/routes/extensions.js +85 -51
  182. package/dist/src/routes/extensions.js.map +1 -1
  183. package/dist/src/routes/generator.d.ts.map +1 -1
  184. package/dist/src/routes/generator.js +109 -43
  185. package/dist/src/routes/generator.js.map +1 -1
  186. package/dist/src/routes/ghii.d.ts.map +1 -1
  187. package/dist/src/routes/ghii.js +34 -13
  188. package/dist/src/routes/ghii.js.map +1 -1
  189. package/dist/src/routes/libs.d.ts +15 -0
  190. package/dist/src/routes/libs.d.ts.map +1 -1
  191. package/dist/src/routes/libs.js +178 -55
  192. package/dist/src/routes/libs.js.map +1 -1
  193. package/dist/src/routes/portal.d.ts.map +1 -1
  194. package/dist/src/routes/portal.js +1 -0
  195. package/dist/src/routes/portal.js.map +1 -1
  196. package/dist/src/routes/schedules.d.ts +33 -0
  197. package/dist/src/routes/schedules.d.ts.map +1 -0
  198. package/dist/src/routes/schedules.js +380 -0
  199. package/dist/src/routes/schedules.js.map +1 -0
  200. package/dist/src/server-bootstrap/config-init.js +2 -2
  201. package/dist/src/server-bootstrap/config-init.js.map +1 -1
  202. package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
  203. package/dist/src/server-bootstrap/routes-loader.js +7 -0
  204. package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
  205. package/dist/src/server-bootstrap/service-init.d.ts.map +1 -1
  206. package/dist/src/server-bootstrap/service-init.js +2 -1
  207. package/dist/src/server-bootstrap/service-init.js.map +1 -1
  208. package/dist/src/services/access-token.d.ts +28 -0
  209. package/dist/src/services/access-token.d.ts.map +1 -0
  210. package/dist/src/services/access-token.js +37 -0
  211. package/dist/src/services/access-token.js.map +1 -0
  212. package/dist/src/services/ai-completion.d.ts +83 -0
  213. package/dist/src/services/ai-completion.d.ts.map +1 -0
  214. package/dist/src/services/ai-completion.js +187 -0
  215. package/dist/src/services/ai-completion.js.map +1 -0
  216. package/dist/src/services/config-schema.d.ts.map +1 -1
  217. package/dist/src/services/config-schema.js +3 -0
  218. package/dist/src/services/config-schema.js.map +1 -1
  219. package/dist/src/services/generator-prompt-seeds.d.ts.map +1 -1
  220. package/dist/src/services/generator-prompt-seeds.js +6 -3
  221. package/dist/src/services/generator-prompt-seeds.js.map +1 -1
  222. package/dist/src/services/generator-prompts/spec-validate.d.ts.map +1 -1
  223. package/dist/src/services/generator-prompts/spec-validate.js +6 -2
  224. package/dist/src/services/generator-prompts/spec-validate.js.map +1 -1
  225. package/dist/src/services/generator-registration.d.ts +12 -4
  226. package/dist/src/services/generator-registration.d.ts.map +1 -1
  227. package/dist/src/services/generator-registration.js +71 -0
  228. package/dist/src/services/generator-registration.js.map +1 -1
  229. package/dist/src/services/generator-validate.d.ts +10 -0
  230. package/dist/src/services/generator-validate.d.ts.map +1 -1
  231. package/dist/src/services/generator-validate.js +180 -36
  232. package/dist/src/services/generator-validate.js.map +1 -1
  233. package/dist/src/services/owner-session.d.ts +43 -0
  234. package/dist/src/services/owner-session.d.ts.map +1 -0
  235. package/dist/src/services/owner-session.js +175 -0
  236. package/dist/src/services/owner-session.js.map +1 -0
  237. package/dist/src/services/schedule-constraints.d.ts +65 -0
  238. package/dist/src/services/schedule-constraints.d.ts.map +1 -0
  239. package/dist/src/services/schedule-constraints.js +106 -0
  240. package/dist/src/services/schedule-constraints.js.map +1 -0
  241. package/dist/src/services/scheduler.d.ts +34 -0
  242. package/dist/src/services/scheduler.d.ts.map +1 -1
  243. package/dist/src/services/scheduler.js +266 -22
  244. package/dist/src/services/scheduler.js.map +1 -1
  245. package/dist/src/services/skill-bundle/generator.js +19 -0
  246. package/dist/src/services/skill-bundle/generator.js.map +1 -1
  247. package/dist/src/storage/interface.d.ts +48 -4
  248. package/dist/src/storage/interface.d.ts.map +1 -1
  249. package/dist/src/storage/interface.js.map +1 -1
  250. package/dist/src/storage/providers/mongodb/index.d.ts +31 -0
  251. package/dist/src/storage/providers/mongodb/index.d.ts.map +1 -1
  252. package/dist/src/storage/providers/mongodb/index.js +187 -9
  253. package/dist/src/storage/providers/mongodb/index.js.map +1 -1
  254. package/dist/src/storage/providers/sqlite/index.d.ts +31 -0
  255. package/dist/src/storage/providers/sqlite/index.d.ts.map +1 -1
  256. package/dist/src/storage/providers/sqlite/index.js +131 -8
  257. package/dist/src/storage/providers/sqlite/index.js.map +1 -1
  258. package/dist/src/storage/providers/sqlite/repos/agent-task.d.ts.map +1 -1
  259. package/dist/src/storage/providers/sqlite/repos/agent-task.js +6 -4
  260. package/dist/src/storage/providers/sqlite/repos/agent-task.js.map +1 -1
  261. package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
  262. package/dist/src/storage/providers/sqlite/schema.js +79 -8
  263. package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
  264. package/dist/src/storage/repositories/pat.repository.d.ts +40 -0
  265. package/dist/src/storage/repositories/pat.repository.d.ts.map +1 -0
  266. package/dist/src/storage/repositories/pat.repository.js +14 -0
  267. package/dist/src/storage/repositories/pat.repository.js.map +1 -0
  268. package/dist/src/storage/repositories/scheduler.repository.d.ts +2 -0
  269. package/dist/src/storage/repositories/scheduler.repository.d.ts.map +1 -1
  270. package/dist/src/storage/repositories/session.repository.d.ts +51 -0
  271. package/dist/src/storage/repositories/session.repository.d.ts.map +1 -1
  272. package/dist/src/storage/repositories/session.repository.js +12 -0
  273. package/dist/src/storage/repositories/session.repository.js.map +1 -1
  274. package/dist/src/utils/env-config.d.ts.map +1 -1
  275. package/dist/src/utils/env-config.js +25 -1
  276. package/dist/src/utils/env-config.js.map +1 -1
  277. package/dist/src/utils/env-validator.d.ts.map +1 -1
  278. package/dist/src/utils/env-validator.js +4 -0
  279. package/dist/src/utils/env-validator.js.map +1 -1
  280. package/package.json +1 -1
  281. package/prisma/schema.prisma +48 -0
@@ -6,12 +6,16 @@
6
6
  * @version-history
7
7
  * v1.0.0 — 2026-03-16 — Initial work tab
8
8
  * v1.1.0 — 2026-03-17 — Replace inline styles with CSS classes; i18n for action labels
9
+ * v1.2.0 — 2026-06-02 — Component unification (#2): Rate + Deliver modals use the
10
+ * canonical <Modal> component (Escape/backdrop close + header ✕) instead of
11
+ * hand-rolled .modal-overlay markup.
9
12
  */
10
13
  import { h } from 'preact';
11
14
  import { useState, useEffect, useRef } from 'preact/hooks';
12
15
  import htm from 'htm';
13
16
  const html = htm.bind(h);
14
17
  import { t } from '/js/i18n.js';
18
+ import { Modal } from '/components/Modal.js';
15
19
  import { escHtml, timeAgo } from '/js/utils.js';
16
20
  import { Spinner } from './shared.js';
17
21
  import { listInbox, listSent, submitRating, acceptWork, rejectWork, deliverWork, updateProgress } from '/js/services/work.js';
@@ -179,42 +183,36 @@ function RateModal({ desc, onSubmit, onCancel }) {
179
183
  const [rating, setRating] = useState(0);
180
184
  const [comment, setComment] = useState('');
181
185
  return html`
182
- <div class="modal-overlay" onClick=${e => { if (e.target.className.includes('modal-overlay')) onCancel(); }}>
183
- <div class="modal">
184
- <h3>${t('profile.work.rateTitle')}</h3>
185
- <p class="text-meta mb-1">${t('profile.work.rateDesc')} ${escHtml(desc || '')}</p>
186
- <div class="star-rating mb-1">
187
- ${[1,2,3,4,5].map(i => html`
188
- <span class="star ${i <= rating ? 'active' : ''}" onClick=${() => setRating(i)}>\u2605</span>
189
- `)}
190
- </div>
191
- <div class="form-row"><label>${t('profile.work.commentLabel')}</label><textarea class="input-field" rows="2" value=${comment} onInput=${e => setComment(e.target.value)}></textarea></div>
192
- <div class="form-actions">
193
- <button class="btn-primary" onClick=${() => onSubmit(rating, comment)}>${t('profile.work.submitRating')}</button>
194
- <button class="btn-outline" onClick=${onCancel}>${t('profile.cancel')}</button>
195
- </div>
186
+ <${Modal} open=${true} onClose=${onCancel} title=${t('profile.work.rateTitle')}>
187
+ <p class="text-meta mb-1">${t('profile.work.rateDesc')} ${escHtml(desc || '')}</p>
188
+ <div class="star-rating mb-1">
189
+ ${[1,2,3,4,5].map(i => html`
190
+ <span class="star ${i <= rating ? 'active' : ''}" onClick=${() => setRating(i)}>\u2605</span>
191
+ `)}
192
+ </div>
193
+ <div class="form-row"><label>${t('profile.work.commentLabel')}</label><textarea class="input-field" rows="2" value=${comment} onInput=${e => setComment(e.target.value)}></textarea></div>
194
+ <div class="form-actions">
195
+ <button class="btn-primary" onClick=${() => onSubmit(rating, comment)}>${t('profile.work.submitRating')}</button>
196
+ <button class="btn-outline" onClick=${onCancel}>${t('profile.cancel')}</button>
196
197
  </div>
197
- </div>`;
198
+ <//>`;
198
199
  }
199
200
 
200
201
  function DeliverModal({ desc, loading, onSubmit, onCancel }) {
201
202
  const [result, setResult] = useState('');
202
203
  return html`
203
- <div class="modal-overlay" onClick=${e => { if (e.target.className.includes('modal-overlay')) onCancel(); }}>
204
- <div class="modal">
205
- <h3>${t('profile.work.deliver')}</h3>
206
- <p class="text-meta mb-1">${t('profile.work.delivering')}: ${escHtml(desc || '')}</p>
207
- <div class="form-row">
208
- <label>${t('profile.work.commentLabel')}</label>
209
- <textarea class="input-field" rows="4" placeholder="Describe the completed work or attach results..."
210
- value=${result} onInput=${e => setResult(e.target.value)}></textarea>
211
- </div>
212
- <div class="form-actions">
213
- <button class="btn-primary" disabled=${loading} onClick=${() => onSubmit(result || undefined)}>
214
- ${loading ? t('profile.work.delivering') : t('profile.work.deliver')}
215
- </button>
216
- <button class="btn-outline" disabled=${loading} onClick=${onCancel}>${t('profile.cancel')}</button>
217
- </div>
204
+ <${Modal} open=${true} onClose=${onCancel} title=${t('profile.work.deliver')}>
205
+ <p class="text-meta mb-1">${t('profile.work.delivering')}: ${escHtml(desc || '')}</p>
206
+ <div class="form-row">
207
+ <label>${t('profile.work.commentLabel')}</label>
208
+ <textarea class="input-field" rows="4" placeholder="Describe the completed work or attach results..."
209
+ value=${result} onInput=${e => setResult(e.target.value)}></textarea>
210
+ </div>
211
+ <div class="form-actions">
212
+ <button class="btn-primary" disabled=${loading} onClick=${() => onSubmit(result || undefined)}>
213
+ ${loading ? t('profile.work.delivering') : t('profile.work.deliver')}
214
+ </button>
215
+ <button class="btn-outline" disabled=${loading} onClick=${onCancel}>${t('profile.cancel')}</button>
218
216
  </div>
219
- </div>`;
217
+ <//>`;
220
218
  }
@@ -1,3 +1,19 @@
1
+ /**
2
+ * @file profile.js
3
+ * @description Profile SPA shell — the authenticated user dashboard. Owns the
4
+ * tab registry (tier-gated), the active-tab/visited-tab state, live-update
5
+ * wiring, stats aggregation, and a local showToast() passed down to every tab
6
+ * as a prop (one of the codebase's toast pathways; see note at its definition).
7
+ * @structure TABS registry, default Profile() component (state, showToast,
8
+ * updateStats, navigate, renderTab) rendering LandingPage + a toast pill.
9
+ * @usage Lazy-loaded route component for /v1/profile.
10
+ * @version-history
11
+ * v1.1.0 — 2026-06-02 — Component unification (#10 toast): tokenized the
12
+ * shared .toast colors in theme.css (--toast-*) and documented this shell's
13
+ * showToast as a distinct, intentionally-not-migrated toast pathway. Added
14
+ * this header (campsite rule — file previously had none).
15
+ * v1.0.0 — prior — Profile SPA shell.
16
+ */
1
17
  import { h } from 'preact';
2
18
  import { useState, useEffect, useCallback, useRef, useMemo } from 'preact/hooks';
3
19
  import htm from 'htm';
@@ -45,6 +61,7 @@ import FoundryTab from './profile/foundry-tab.js';
45
61
  import CalibratorTab from './profile/calibrator-tab.js';
46
62
  import PackagesTab from './profile/packages-tab.js';
47
63
  import CapabilitiesTab from './profile/capabilities-tab.js';
64
+ import SchedulerTab from './profile/scheduler-tab.js';
48
65
 
49
66
  // Each tab has a minTier: 'new' | 'active' | 'experienced'
50
67
  // Tabs with minTier <= current tier are visible in the tab bar.
@@ -52,6 +69,7 @@ import CapabilitiesTab from './profile/capabilities-tab.js';
52
69
  const TABS = [
53
70
  { id: 'portfolio', key: 'portfolio.tabLabel', component: PortfolioTab, minTier: 'active' },
54
71
  { id: 'agents', key: 'profile.tabs.agents', component: AgentsTab, minTier: 'active' },
72
+ { id: 'scheduler', key: 'profile.tabs.scheduler', component: SchedulerTab, minTier: 'active' },
55
73
  { id: 'chatsessions', key: 'profile.tabs.chatSessions', component: ChatSessionsTab, minTier: 'active' },
56
74
  { id: 'mcp', key: 'profile.tabs.mcp', component: McpTab, minTier: 'active' },
57
75
  { id: 'wallet', key: 'profile.tabs.wallet', component: WalletTab, minTier: 'new' },
@@ -99,6 +117,12 @@ export default function Profile({ navigate, locale }) {
99
117
  const [toast, setToast] = useState(null);
100
118
  const toastTimer = useRef(null);
101
119
 
120
+ // NOTE: this is a THIRD toast pathway alongside /components/Toast.js's
121
+ // useToast() and the admin shell's useToast tuple. It renders a distinct
122
+ // <.pf.toast-container> wrapper + <.toast.error> markup (vs Toast.js's bare
123
+ // <.toast.toast-error/.toast-success>), so it is a convergence candidate but
124
+ // is NOT migrated here — adopting Toast.js would change DOM/behavior. The
125
+ // .toast colors are now tokenized in theme.css (--toast-*).
102
126
  const showToast = useCallback((msg, isError) => {
103
127
  if (toastTimer.current) clearTimeout(toastTimer.current);
104
128
  setToast({ msg, isError });
@@ -4,12 +4,18 @@
4
4
  * Browse, search, filter, and read public knowledge packages.
5
5
  * @version-history v1.0.0 — 2026-05-26 — Initial implementation
6
6
  * v1.1.0 — 2026-05-26 — Human-readable entry rendering, Copy as Markdown
7
+ * v1.2.0 — 2026-06-02 — Migrate Copy-as-Markdown button to canonical CopyButton component
8
+ * v1.3.0 — 2026-06-02 — Component unification (#17): migrate the "Load more" button to
9
+ * the canonical LoadMore component (removes an inline style="text-align:center;
10
+ * margin-top:1.5rem;"; identical visual — same .load-more wrapper + .btn-outline).
7
11
  */
8
12
  import { h } from 'preact';
9
13
  import { useState, useEffect, useCallback, useRef } from 'preact/hooks';
10
14
  import htm from 'htm';
11
15
  const html = htm.bind(h);
12
16
  import { t } from '/js/i18n.js';
17
+ import { CopyButton } from '/components/CopyButton.js';
18
+ import { LoadMore } from '/components/Pagination.js';
13
19
 
14
20
  const NODE_URL = typeof window !== 'undefined' ? window.location.origin : '';
15
21
 
@@ -365,9 +371,7 @@ function BrowseView({ onSelect }) {
365
371
  ${loading && html`<div class="pkv-loading">${t('pkv.loading')}</div>`}
366
372
 
367
373
  ${!loading && hasMore && html`
368
- <div style="text-align:center; margin-top:1.5rem;">
369
- <button class="btn-outline" onClick=${loadMore}>${t('pkv.loadMore')}</button>
370
- </div>
374
+ <${LoadMore} onMore=${loadMore} label=${t('pkv.loadMore')} />
371
375
  `}
372
376
  `;
373
377
  }
@@ -453,22 +457,10 @@ function DetailView({ packageId, onBack }) {
453
457
  return () => { cancelled = true; };
454
458
  }, [packageId]);
455
459
 
456
- const [copied, setCopied] = useState(false);
457
-
458
460
  const toggleEntry = useCallback((entryKey) => {
459
461
  setExpandedEntries(prev => ({ ...prev, [entryKey]: !prev[entryKey] }));
460
462
  }, []);
461
463
 
462
- const handleCopyMarkdown = useCallback(() => {
463
- if (!manifest) return;
464
- const publicE = (manifest.entries || []).filter(e => e.visibility === 'public');
465
- const md = buildFullMarkdown(manifest, publicE, entryData);
466
- navigator.clipboard.writeText(md).then(() => {
467
- setCopied(true);
468
- setTimeout(() => setCopied(false), 2000);
469
- });
470
- }, [manifest, entryData]);
471
-
472
464
  const handleExport = useCallback(async () => {
473
465
  try {
474
466
  const result = await exportPackage(packageId);
@@ -640,9 +632,8 @@ function DetailView({ packageId, onBack }) {
640
632
  `}
641
633
 
642
634
  <div class="pkv-actions">
643
- <button class="btn-primary" onClick=${handleCopyMarkdown}>
644
- ${copied ? t('pkv.copied') : t('pkv.copyMarkdown')}
645
- </button>
635
+ <${CopyButton} text=${buildFullMarkdown(manifest, publicEntries, entryData)} className="btn-primary"
636
+ label=${t('pkv.copyMarkdown')} copiedLabel=${t('pkv.copied')} />
646
637
  <button class="btn-outline" onClick=${handleExport}>${t('pkv.exportJson')}</button>
647
638
  </div>
648
639
  </div>
@@ -1,8 +1,9 @@
1
1
  import type { Request, Response, NextFunction } from 'express';
2
2
  import { type VerifiedToken } from './jwt.js';
3
+ import type { AimeatConfig } from '../config.js';
3
4
  import type { Storage } from '../storage/interface.js';
4
5
  /** Initialize session-aware auth middleware. Called once during server startup. */
5
- export declare function initSessionAuth(storage: Storage): void;
6
+ export declare function initSessionAuth(storage: Storage, config?: AimeatConfig): void;
6
7
  /** Called by server.ts after anonymous setup to enable anonymous fallback in auth middleware */
7
8
  export declare function enableAnonymousAuth(gaii: string, owner: string): void;
8
9
  /** Check if anonymous mode is enabled */
@@ -23,7 +24,7 @@ declare global {
23
24
  * Optional auth middleware — parses JWT if present, does not reject if absent.
24
25
  * Use requireAuth() or requireRole() for endpoints that need auth.
25
26
  */
26
- export declare function optionalAuth(): (req: Request, _res: Response, next: NextFunction) => Promise<void>;
27
+ export declare function optionalAuth(): (req: Request, res: Response, next: NextFunction) => Promise<void>;
27
28
  /**
28
29
  * Require authentication. Returns 401 if no valid JWT.
29
30
  * If req.auth is already set (e.g. by optionalAuth() in anonymous mode), skips token check.
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/auth/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAGpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAMvD,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEtD;AAqBD,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAIrE;AAED,yCAAyC;AACzC,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED,2FAA2F;AAC3F,wBAAgB,uBAAuB,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAEzE;AAGD,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,OAAO,CAAC;QAChB,UAAU,OAAO;YACf,IAAI,CAAC,EAAE,aAAa,CAAC;SACtB;KACF;CACF;AAED;;;GAGG;AACH,wBAAgB,YAAY,KACZ,KAAK,OAAO,EAAE,MAAM,QAAQ,EAAE,MAAM,YAAY,mBA0B/D;AAED;;;GAGG;AACH,wBAAgB,WAAW,KACX,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,mBA+D9D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,KAC5B,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,UAQxD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,IAC9B,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,UA6BxD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAkBnD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,KACzB,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,UAOxD;AAOD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,cAAc,EAAE,MAAM,EAAE,IAC9C,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,UAmCxD"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/auth/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAOvD,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CAG7E;AA6DD,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAIrE;AAED,yCAAyC;AACzC,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED,2FAA2F;AAC3F,wBAAgB,uBAAuB,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAEzE;AAGD,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,OAAO,CAAC;QAChB,UAAU,OAAO;YACf,IAAI,CAAC,EAAE,aAAa,CAAC;SACtB;KACF;CACF;AAED;;;GAGG;AACH,wBAAgB,YAAY,KACZ,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,mBAgC9D;AAED;;;GAGG;AACH,wBAAgB,WAAW,KACX,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,mBAkF9D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,KAC5B,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,UAQxD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,IAC9B,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,UA6BxD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAkBnD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,KACzB,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,UAOxD;AAOD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,cAAc,EAAE,MAAM,EAAE,IAC9C,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,UAmCxD"}
@@ -1,12 +1,16 @@
1
1
  import { verifyJWT, isRevoked } from './jwt.js';
2
+ import { setRefreshCookie, readRefreshCookie } from '../services/owner-session.js';
3
+ import { resolvePat, PAT_PREFIX } from '../services/access-token.js';
2
4
  import { getStats } from '../services/stats.js';
3
5
  import { getPromMetrics } from '../services/prometheus.js';
4
6
  import { logger } from '../utils/logger.js';
5
7
  // P3-7: Reference to storage for session revocation checks
6
8
  let _sessionStorage = null;
9
+ let _config = null;
7
10
  /** Initialize session-aware auth middleware. Called once during server startup. */
8
- export function initSessionAuth(storage) {
11
+ export function initSessionAuth(storage, config) {
9
12
  _sessionStorage = storage;
13
+ _config = config ?? null;
10
14
  }
11
15
  const _lastSeenCache = new Map();
12
16
  const LAST_SEEN_THROTTLE_MS = 5 * 60_000;
@@ -23,6 +27,50 @@ function touchAgentLastSeen(auth) {
23
27
  _lastSeenCache.set(gaii, now);
24
28
  _sessionStorage.updateAgent(gaii, { lastSeen: new Date(now).toISOString() }).catch(() => { });
25
29
  }
30
+ // Personal Access Tokens are presented as a Bearer credential (Authorization: Bearer
31
+ // aimeat_pat_...). They are recognised transparently by the auth middleware so an agent
32
+ // is authenticated by the header alone — like a logged-in user — with no app/client changes.
33
+ /**
34
+ * Resolve a Personal Access Token to a verified identity (operator/owner act as the owner
35
+ * GHII; otherwise a scoped agent identity; roles re-derived from the owner's CURRENT roles).
36
+ * Returns null if missing/revoked/expired. Records usage without blocking the request.
37
+ */
38
+ async function resolvePatToken(token) {
39
+ if (!_sessionStorage)
40
+ return null;
41
+ const r = await resolvePat(_sessionStorage, token);
42
+ if (!r)
43
+ return null;
44
+ _sessionStorage.touchPat(r.patId, new Date().toISOString()).catch(() => { });
45
+ return {
46
+ sub: r.sub,
47
+ owner: r.owner,
48
+ node: '',
49
+ roles: r.roles,
50
+ scopes: r.scopes,
51
+ exp: r.expiresAt ? Math.floor(Date.parse(r.expiresAt) / 1000) : Math.floor(Date.now() / 1000) + 3600,
52
+ };
53
+ }
54
+ /**
55
+ * For a BROWSER request carrying an owner/operator PAT, set the httpOnly refresh cookie to the
56
+ * PAT itself (once) so the webapp boots "logged in" via the cookie — like a normal login,
57
+ * without re-sending the header on every request. The refresh endpoint validates the PAT
58
+ * cookie on every refresh, so revoking the token takes effect immediately. Skipped for scoped
59
+ * tokens, non-browsers, /v1/auth/* (which manage their own cookies), and when a cookie exists.
60
+ */
61
+ function maybeSetPatBrowserSession(req, res, rawToken, patAuth) {
62
+ if (!_config)
63
+ return;
64
+ if (!patAuth.roles.includes('owner'))
65
+ return;
66
+ if (req.path.startsWith('/v1/auth/'))
67
+ return;
68
+ if (!String(req.headers['user-agent'] || '').includes('Mozilla'))
69
+ return;
70
+ if (readRefreshCookie(req))
71
+ return;
72
+ setRefreshCookie(req, res, _config, rawToken);
73
+ }
26
74
  // Anonymous mode: when enabled, inject this identity for unauthenticated requests
27
75
  let _anonymousMode = false;
28
76
  let _anonymousGaii = '';
@@ -46,10 +94,17 @@ export function getAnonymousCredentials() {
46
94
  * Use requireAuth() or requireRole() for endpoints that need auth.
47
95
  */
48
96
  export function optionalAuth() {
49
- return async (req, _res, next) => {
97
+ return async (req, res, next) => {
50
98
  const token = extractToken(req);
51
99
  if (token) {
52
- if (await isRevoked(token)) {
100
+ if (token.startsWith(PAT_PREFIX)) {
101
+ const patAuth = await resolvePatToken(token);
102
+ if (patAuth) {
103
+ req.auth = patAuth;
104
+ maybeSetPatBrowserSession(req, res, token, patAuth);
105
+ }
106
+ }
107
+ else if (await isRevoked(token)) {
53
108
  req.auth = undefined;
54
109
  }
55
110
  else {
@@ -108,6 +163,26 @@ export function requireAuth() {
108
163
  res.status(401).json(errorEnvelope('AUTH_REQUIRED', 'Authentication required'));
109
164
  return;
110
165
  }
166
+ // Personal Access Token presented as a Bearer credential — authenticate via the
167
+ // header transparently (no app/client changes; acts like a logged-in user).
168
+ if (token.startsWith(PAT_PREFIX)) {
169
+ const patAuth = await resolvePatToken(token);
170
+ if (!patAuth) {
171
+ const stats = getStats();
172
+ if (stats)
173
+ stats.increment('auth_failures_total');
174
+ const prom = getPromMetrics();
175
+ if (prom)
176
+ prom.authFailuresTotal.inc();
177
+ res.status(401).json(errorEnvelope('AUTH_REQUIRED', 'Invalid or revoked access token'));
178
+ return;
179
+ }
180
+ req.auth = patAuth;
181
+ maybeSetPatBrowserSession(req, res, token, patAuth);
182
+ touchAgentLastSeen(patAuth);
183
+ next();
184
+ return;
185
+ }
111
186
  if (await isRevoked(token)) {
112
187
  const stats = getStats();
113
188
  if (stats)
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/auth/middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/auth/middleware.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init-wizard.d.ts","sourceRoot":"","sources":["../../../src/cli/init-wizard.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAiqDjD,wBAAsB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoSvE"}
1
+ {"version":3,"file":"init-wizard.d.ts","sourceRoot":"","sources":["../../../src/cli/init-wizard.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AA6qDjD,wBAAsB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoSvE"}
@@ -61,6 +61,10 @@ const CONFIG_DEFAULTS = {
61
61
  AIMEAT_EXTENDED_FEATURES: 'true',
62
62
  AIMEAT_KEYED_BROWSE: 'true',
63
63
  AIMEAT_JWT_TTL: '3600',
64
+ AIMEAT_ACCESS_TTL: '900',
65
+ AIMEAT_REFRESH_IDLE_DAYS: '30',
66
+ AIMEAT_REFRESH_ABSOLUTE_DAYS: '90',
67
+ AIMEAT_REFRESH_GRACE_MS: '60000',
64
68
  AIMEAT_WELCOME_BONUS: '100',
65
69
  AIMEAT_DAILY_ALLOWANCE: '50',
66
70
  AIMEAT_DAILY_ALLOWANCE_CAP: '500',
@@ -272,7 +276,11 @@ function generateEnvContent(settings) {
272
276
  {
273
277
  title: 'Auth & Tokens',
274
278
  vars: [
275
- { key: 'AIMEAT_JWT_TTL', comment: 'JWT lifetime in seconds (default: 1h)' },
279
+ { key: 'AIMEAT_JWT_TTL', comment: 'Legacy / agent JWT lifetime in seconds (default: 1h)' },
280
+ { key: 'AIMEAT_ACCESS_TTL', comment: 'Owner access-token lifetime in seconds (default: 15min)' },
281
+ { key: 'AIMEAT_REFRESH_IDLE_DAYS', comment: 'Owner refresh-cookie idle window in days (default: 30)' },
282
+ { key: 'AIMEAT_REFRESH_ABSOLUTE_DAYS', comment: 'Owner refresh-cookie hard cap in days (default: 90)' },
283
+ { key: 'AIMEAT_REFRESH_GRACE_MS', comment: 'Refresh-rotation grace window in ms (default: 60s)' },
276
284
  ],
277
285
  },
278
286
  {
@@ -452,6 +460,10 @@ function generateJsonContent(settings) {
452
460
  AIMEAT_DEV_MODE: 'devMode',
453
461
  AIMEAT_ANONYMOUS: 'anonymousMode',
454
462
  AIMEAT_JWT_TTL: 'jwtTtlSeconds',
463
+ AIMEAT_ACCESS_TTL: 'accessTtlSeconds',
464
+ AIMEAT_REFRESH_IDLE_DAYS: 'refreshIdleDays',
465
+ AIMEAT_REFRESH_ABSOLUTE_DAYS: 'refreshAbsoluteDays',
466
+ AIMEAT_REFRESH_GRACE_MS: 'refreshGraceMs',
455
467
  AIMEAT_WELCOME_BONUS: 'welcomeBonus',
456
468
  AIMEAT_DAILY_ALLOWANCE: 'dailyAllowance',
457
469
  AIMEAT_DAILY_ALLOWANCE_CAP: 'dailyAllowanceCap',