aimeat 1.27.0 → 1.28.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.
- package/dist/.env.example +2 -0
- package/dist/locales/en.json +538 -297
- package/dist/locales/fi.json +500 -259
- package/dist/public/components/NotificationBell.js +2 -4
- package/dist/public/css/views/agents-detail.css +11 -0
- package/dist/public/css/views/app-grant.css +35 -3
- package/dist/public/css/views/inbox.css +78 -0
- package/dist/public/css/views/landing.css +8 -0
- package/dist/public/css/views/living.css +187 -0
- package/dist/public/css/views/notebook.css +89 -0
- package/dist/public/css/views/profile.css +78 -85
- package/dist/public/js/app-sandbox.js +18 -59
- package/dist/public/js/presence-store.js +7 -1
- package/dist/public/js/services/agents.js +10 -3
- package/dist/public/js/services/generator-prompts-base.js +40 -3
- package/dist/public/js/services/living.js +506 -0
- package/dist/public/js/services/memory.js +23 -3
- package/dist/public/js/services/nodes.js +1 -1
- package/dist/public/js/services/notebook-plan.js +211 -0
- package/dist/public/js/services/notebook.js +97 -0
- package/dist/public/js/services/organisms.js +41 -2
- package/dist/public/js/services/tracked-responses.js +103 -0
- package/dist/public/js/utils.js +15 -0
- package/dist/public/lib/live-updates.js +231 -94
- package/dist/public/spa.html +8 -1
- package/dist/public/types/aimeat-globals.d.ts +4 -0
- package/dist/public/views/admin/agent-integration-tab.js +2 -5
- package/dist/public/views/admin/agent-tasks-tab.js +2 -5
- package/dist/public/views/admin/cortex-tab.js +2 -5
- package/dist/public/views/admin/federation-tab.js +3 -10
- package/dist/public/views/admin/memory-tab.js +2 -5
- package/dist/public/views/admin/messages-tab.js +2 -5
- package/dist/public/views/admin/packages-tab.js +2 -5
- package/dist/public/views/admin/sharing-groups-tab.js +2 -5
- package/dist/public/views/app-grant.js +126 -23
- package/dist/public/views/landing-node-totals.js +71 -0
- package/dist/public/views/landing.js +6 -4
- package/dist/public/views/profile/agents/agent-card.js +8 -5
- package/dist/public/views/profile/agents/tab-activity.js +2 -3
- package/dist/public/views/profile/agents/tab-agent-config.js +2 -3
- package/dist/public/views/profile/agents/tab-data-access.js +2 -3
- package/dist/public/views/profile/agents/tab-integration.js +2 -3
- package/dist/public/views/profile/agents/tab-messages.js +2 -6
- package/dist/public/views/profile/agents/tab-quality.js +2 -5
- package/dist/public/views/profile/agents/tab-schedules.js +2 -4
- package/dist/public/views/profile/agents-activity-subtab.js +2 -5
- package/dist/public/views/profile/agents-capabilities-subtab.js +2 -2
- package/dist/public/views/profile/agents-messages-subtab.js +2 -5
- package/dist/public/views/profile/agents-services-subtab.js +2 -3
- package/dist/public/views/profile/agents-tab.js +70 -90
- package/dist/public/views/profile/agents-tasks-subtab.js +3 -8
- package/dist/public/views/profile/apps-tab.js +17 -0
- package/dist/public/views/profile/boards-tab.js +2 -5
- package/dist/public/views/profile/chat-sessions-tab.js +2 -5
- package/dist/public/views/profile/ecosystem-tab.js +7 -12
- package/dist/public/views/profile/extensions-tab.js +2 -5
- package/dist/public/views/profile/federation-tab.js +2 -5
- package/dist/public/views/profile/inbox-tab.js +280 -14
- package/dist/public/views/profile/knowledge-tab.js +2 -5
- package/dist/public/views/profile/landing-page.js +260 -184
- package/dist/public/views/profile/living-tab.js +480 -0
- package/dist/public/views/profile/memory-tab.js +2 -5
- package/dist/public/views/profile/notebook-card.js +515 -0
- package/dist/public/views/profile/notebook-helpers.js +48 -0
- package/dist/public/views/profile/notebook-tab.js +40 -260
- package/dist/public/views/profile/organisms/activity-panel.js +3 -2
- package/dist/public/views/profile/organisms/home.js +52 -3
- package/dist/public/views/profile/organisms/members.js +2 -5
- package/dist/public/views/profile/organisms/mindmap.js +194 -0
- package/dist/public/views/profile/organisms/panels.js +3 -10
- package/dist/public/views/profile/organisms/participants-panel.js +3 -2
- package/dist/public/views/profile/organisms/readme-panel.js +97 -0
- package/dist/public/views/profile/organisms/sources-panel.js +2 -5
- package/dist/public/views/profile/organisms/timeline-panel.js +104 -0
- package/dist/public/views/profile/organisms/workspace-comments.js +2 -5
- package/dist/public/views/profile/organisms/workspace-list.js +8 -8
- package/dist/public/views/profile/organisms/workspace.js +41 -6
- package/dist/public/views/profile/organisms-tab.js +3 -6
- package/dist/public/views/profile/packages-tab.js +2 -5
- package/dist/public/views/profile/scheduler-tab.js +2 -4
- package/dist/public/views/profile/track-response-modal.js +211 -0
- package/dist/public/views/profile/workflows-tab.js +4 -13
- package/dist/public/views/profile.js +10 -9
- package/dist/scripts/consent-audit-prune.d.ts +21 -0
- package/dist/scripts/consent-audit-prune.d.ts.map +1 -0
- package/dist/scripts/consent-audit-prune.js +198 -0
- package/dist/scripts/consent-audit-prune.js.map +1 -0
- package/dist/scripts/reassign-apps.d.ts +2 -0
- package/dist/scripts/reassign-apps.d.ts.map +1 -0
- package/dist/scripts/reassign-apps.js +99 -0
- package/dist/scripts/reassign-apps.js.map +1 -0
- package/dist/scripts/telemetry-prune.d.ts +20 -0
- package/dist/scripts/telemetry-prune.d.ts.map +1 -0
- package/dist/scripts/telemetry-prune.js +195 -0
- package/dist/scripts/telemetry-prune.js.map +1 -0
- package/dist/src/auth/jwt.d.ts +1 -0
- package/dist/src/auth/jwt.d.ts.map +1 -1
- package/dist/src/auth/jwt.js +13 -0
- package/dist/src/auth/jwt.js.map +1 -1
- package/dist/src/cli/connect/mcp/local-server.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/local-server.js +109 -0
- package/dist/src/cli/connect/mcp/local-server.js.map +1 -1
- package/dist/src/cli/connect/tool-call.d.ts.map +1 -1
- package/dist/src/cli/connect/tool-call.js +9 -0
- package/dist/src/cli/connect/tool-call.js.map +1 -1
- package/dist/src/cli/connect/tunnel-client.d.ts +16 -0
- package/dist/src/cli/connect/tunnel-client.d.ts.map +1 -1
- package/dist/src/cli/connect/tunnel-client.js +42 -0
- package/dist/src/cli/connect/tunnel-client.js.map +1 -1
- package/dist/src/config.d.ts +7 -0
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +4 -0
- package/dist/src/config.js.map +1 -1
- package/dist/src/generated/api-types.d.ts +1449 -128
- package/dist/src/generated/api-types.d.ts.map +1 -1
- package/dist/src/generated/prisma-postgres/edge.js +17 -3
- package/dist/src/generated/prisma-postgres/index-browser.js +14 -0
- package/dist/src/generated/prisma-postgres/index.d.ts +1580 -161
- package/dist/src/generated/prisma-postgres/index.js +17 -3
- package/dist/src/generated/prisma-postgres/package.json +1 -1
- package/dist/src/generated/prisma-postgres/schema.prisma +18 -0
- package/dist/src/generated/prisma-postgres/wasm.js +17 -3
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/agent-telemetry.d.ts +2 -0
- package/dist/src/mcp/agent-telemetry.d.ts.map +1 -1
- package/dist/src/mcp/agent-telemetry.js +8 -3
- package/dist/src/mcp/agent-telemetry.js.map +1 -1
- package/dist/src/mcp/annotations.d.ts.map +1 -1
- package/dist/src/mcp/annotations.js +1 -0
- package/dist/src/mcp/annotations.js.map +1 -1
- package/dist/src/mcp/apps.d.ts.map +1 -1
- package/dist/src/mcp/apps.js +14 -1
- package/dist/src/mcp/apps.js.map +1 -1
- package/dist/src/mcp/catalog/definitions.d.ts.map +1 -1
- package/dist/src/mcp/catalog/definitions.js +15 -0
- package/dist/src/mcp/catalog/definitions.js.map +1 -1
- package/dist/src/mcp/organisms.d.ts +2 -0
- package/dist/src/mcp/organisms.d.ts.map +1 -1
- package/dist/src/mcp/organisms.js +43 -0
- package/dist/src/mcp/organisms.js.map +1 -1
- package/dist/src/mcp/workspaces.d.ts.map +1 -1
- package/dist/src/mcp/workspaces.js +8 -1
- package/dist/src/mcp/workspaces.js.map +1 -1
- package/dist/src/routes/agent-messages.js +2 -2
- package/dist/src/routes/agent-messages.js.map +1 -1
- package/dist/src/routes/agent-tasks.js +14 -14
- package/dist/src/routes/agent-tasks.js.map +1 -1
- package/dist/src/routes/agent-telemetry.d.ts +3 -0
- package/dist/src/routes/agent-telemetry.d.ts.map +1 -1
- package/dist/src/routes/agent-telemetry.js +11 -6
- package/dist/src/routes/agent-telemetry.js.map +1 -1
- package/dist/src/routes/agents.d.ts.map +1 -1
- package/dist/src/routes/agents.js +41 -3
- package/dist/src/routes/agents.js.map +1 -1
- package/dist/src/routes/app-grants.d.ts +3 -0
- package/dist/src/routes/app-grants.d.ts.map +1 -1
- package/dist/src/routes/app-grants.js +120 -7
- package/dist/src/routes/app-grants.js.map +1 -1
- package/dist/src/routes/apps.d.ts +9 -0
- package/dist/src/routes/apps.d.ts.map +1 -1
- package/dist/src/routes/apps.js +110 -16
- package/dist/src/routes/apps.js.map +1 -1
- package/dist/src/routes/boards.d.ts.map +1 -1
- package/dist/src/routes/boards.js +4 -2
- package/dist/src/routes/boards.js.map +1 -1
- package/dist/src/routes/consent.d.ts.map +1 -1
- package/dist/src/routes/consent.js +14 -1
- package/dist/src/routes/consent.js.map +1 -1
- package/dist/src/routes/ghii.d.ts.map +1 -1
- package/dist/src/routes/ghii.js +20 -10
- package/dist/src/routes/ghii.js.map +1 -1
- package/dist/src/routes/librarian.d.ts.map +1 -1
- package/dist/src/routes/librarian.js +64 -2
- package/dist/src/routes/librarian.js.map +1 -1
- package/dist/src/routes/libs.d.ts +9 -0
- package/dist/src/routes/libs.d.ts.map +1 -1
- package/dist/src/routes/libs.js +261 -2
- package/dist/src/routes/libs.js.map +1 -1
- package/dist/src/routes/living.d.ts +18 -0
- package/dist/src/routes/living.d.ts.map +1 -0
- package/dist/src/routes/living.js +63 -0
- package/dist/src/routes/living.js.map +1 -0
- package/dist/src/routes/matches.d.ts.map +1 -1
- package/dist/src/routes/matches.js +1 -3
- package/dist/src/routes/matches.js.map +1 -1
- package/dist/src/routes/memory.d.ts.map +1 -1
- package/dist/src/routes/memory.js +40 -1
- package/dist/src/routes/memory.js.map +1 -1
- package/dist/src/routes/messages.d.ts +2 -0
- package/dist/src/routes/messages.d.ts.map +1 -1
- package/dist/src/routes/messages.js +27 -96
- package/dist/src/routes/messages.js.map +1 -1
- package/dist/src/routes/organisms.d.ts +8 -0
- package/dist/src/routes/organisms.d.ts.map +1 -1
- package/dist/src/routes/organisms.js +124 -3
- package/dist/src/routes/organisms.js.map +1 -1
- package/dist/src/routes/owners.d.ts.map +1 -1
- package/dist/src/routes/owners.js +2 -0
- package/dist/src/routes/owners.js.map +1 -1
- package/dist/src/routes/personal.d.ts.map +1 -1
- package/dist/src/routes/personal.js +7 -0
- package/dist/src/routes/personal.js.map +1 -1
- package/dist/src/routes/portal.d.ts +3 -0
- package/dist/src/routes/portal.d.ts.map +1 -1
- package/dist/src/routes/portal.js +19 -12
- package/dist/src/routes/portal.js.map +1 -1
- package/dist/src/routes/public-stats.d.ts +3 -0
- package/dist/src/routes/public-stats.d.ts.map +1 -1
- package/dist/src/routes/public-stats.js +48 -0
- package/dist/src/routes/public-stats.js.map +1 -1
- package/dist/src/routes/sse.d.ts +3 -0
- package/dist/src/routes/sse.d.ts.map +1 -1
- package/dist/src/routes/sse.js +27 -15
- package/dist/src/routes/sse.js.map +1 -1
- package/dist/src/routes/storage-files.d.ts +2 -0
- package/dist/src/routes/storage-files.d.ts.map +1 -1
- package/dist/src/routes/storage-files.js +14 -17
- package/dist/src/routes/storage-files.js.map +1 -1
- package/dist/src/routes/subdomains.d.ts +28 -0
- package/dist/src/routes/subdomains.d.ts.map +1 -1
- package/dist/src/routes/subdomains.js +138 -11
- package/dist/src/routes/subdomains.js.map +1 -1
- package/dist/src/routes/tracked-responses.d.ts +27 -0
- package/dist/src/routes/tracked-responses.d.ts.map +1 -0
- package/dist/src/routes/tracked-responses.js +212 -0
- package/dist/src/routes/tracked-responses.js.map +1 -0
- package/dist/src/routes/upload.js +8 -0
- package/dist/src/routes/upload.js.map +1 -1
- package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
- package/dist/src/server-bootstrap/routes-loader.js +24 -0
- package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
- package/dist/src/server-bootstrap/service-init.d.ts.map +1 -1
- package/dist/src/server-bootstrap/service-init.js +4 -0
- package/dist/src/server-bootstrap/service-init.js.map +1 -1
- package/dist/src/server-bootstrap/static-files.d.ts +5 -0
- package/dist/src/server-bootstrap/static-files.d.ts.map +1 -1
- package/dist/src/server-bootstrap/static-files.js +33 -1
- package/dist/src/server-bootstrap/static-files.js.map +1 -1
- package/dist/src/services/access-guard.d.ts +4 -4
- package/dist/src/services/access-guard.d.ts.map +1 -1
- package/dist/src/services/access-guard.js +7 -8
- package/dist/src/services/access-guard.js.map +1 -1
- package/dist/src/services/activity-recorder.d.ts +2 -13
- package/dist/src/services/activity-recorder.d.ts.map +1 -1
- package/dist/src/services/activity-recorder.js +0 -42
- package/dist/src/services/activity-recorder.js.map +1 -1
- package/dist/src/services/connect-tunnel.d.ts +56 -3
- package/dist/src/services/connect-tunnel.d.ts.map +1 -1
- package/dist/src/services/connect-tunnel.js +216 -1
- package/dist/src/services/connect-tunnel.js.map +1 -1
- package/dist/src/services/consent-audit-buffer.d.ts +45 -0
- package/dist/src/services/consent-audit-buffer.d.ts.map +1 -0
- package/dist/src/services/consent-audit-buffer.js +85 -0
- package/dist/src/services/consent-audit-buffer.js.map +1 -0
- package/dist/src/services/consent.d.ts +9 -3
- package/dist/src/services/consent.d.ts.map +1 -1
- package/dist/src/services/consent.js +13 -5
- package/dist/src/services/consent.js.map +1 -1
- package/dist/src/services/core-jobs.d.ts.map +1 -1
- package/dist/src/services/core-jobs.js +20 -4
- package/dist/src/services/core-jobs.js.map +1 -1
- package/dist/src/services/event-bus.d.ts +24 -1
- package/dist/src/services/event-bus.d.ts.map +1 -1
- package/dist/src/services/event-bus.js +17 -2
- package/dist/src/services/event-bus.js.map +1 -1
- package/dist/src/services/generator-prompts/resolvers.d.ts +2 -0
- package/dist/src/services/generator-prompts/resolvers.d.ts.map +1 -1
- package/dist/src/services/generator-prompts/resolvers.js +22 -3
- package/dist/src/services/generator-prompts/resolvers.js.map +1 -1
- package/dist/src/services/job-seeding.d.ts.map +1 -1
- package/dist/src/services/job-seeding.js +4 -0
- package/dist/src/services/job-seeding.js.map +1 -1
- package/dist/src/services/living-author-prompt.d.ts +14 -0
- package/dist/src/services/living-author-prompt.d.ts.map +1 -0
- package/dist/src/services/living-author-prompt.js +47 -0
- package/dist/src/services/living-author-prompt.js.map +1 -0
- package/dist/src/services/living-author.d.ts +55 -0
- package/dist/src/services/living-author.d.ts.map +1 -0
- package/dist/src/services/living-author.js +91 -0
- package/dist/src/services/living-author.js.map +1 -0
- package/dist/src/services/living-pulse.d.ts +29 -0
- package/dist/src/services/living-pulse.d.ts.map +1 -0
- package/dist/src/services/living-pulse.js +363 -0
- package/dist/src/services/living-pulse.js.map +1 -0
- package/dist/src/services/message-delivery.d.ts +1 -1
- package/dist/src/services/message-delivery.d.ts.map +1 -1
- package/dist/src/services/message-delivery.js +10 -7
- package/dist/src/services/message-delivery.js.map +1 -1
- package/dist/src/services/message-send.d.ts +24 -0
- package/dist/src/services/message-send.d.ts.map +1 -0
- package/dist/src/services/message-send.js +122 -0
- package/dist/src/services/message-send.js.map +1 -0
- package/dist/src/services/notebook-ai.d.ts +36 -0
- package/dist/src/services/notebook-ai.d.ts.map +1 -0
- package/dist/src/services/notebook-ai.js +51 -0
- package/dist/src/services/notebook-ai.js.map +1 -0
- package/dist/src/services/notebook-classify.d.ts +32 -5
- package/dist/src/services/notebook-classify.d.ts.map +1 -1
- package/dist/src/services/notebook-classify.js +59 -43
- package/dist/src/services/notebook-classify.js.map +1 -1
- package/dist/src/services/notebook-distribute-prompt.d.ts +16 -0
- package/dist/src/services/notebook-distribute-prompt.d.ts.map +1 -0
- package/dist/src/services/notebook-distribute-prompt.js +40 -0
- package/dist/src/services/notebook-distribute-prompt.js.map +1 -0
- package/dist/src/services/notebook-plan-prompt.d.ts +19 -0
- package/dist/src/services/notebook-plan-prompt.d.ts.map +1 -0
- package/dist/src/services/notebook-plan-prompt.js +54 -0
- package/dist/src/services/notebook-plan-prompt.js.map +1 -0
- package/dist/src/services/notebook-plan.d.ts +70 -0
- package/dist/src/services/notebook-plan.d.ts.map +1 -0
- package/dist/src/services/notebook-plan.js +118 -0
- package/dist/src/services/notebook-plan.js.map +1 -0
- package/dist/src/services/onboarding-validator.d.ts.map +1 -1
- package/dist/src/services/onboarding-validator.js +13 -3
- package/dist/src/services/onboarding-validator.js.map +1 -1
- package/dist/src/services/organism-comments.d.ts +5 -1
- package/dist/src/services/organism-comments.d.ts.map +1 -1
- package/dist/src/services/organism-comments.js +7 -22
- package/dist/src/services/organism-comments.js.map +1 -1
- package/dist/src/services/organism-readme.d.ts +24 -0
- package/dist/src/services/organism-readme.d.ts.map +1 -0
- package/dist/src/services/organism-readme.js +37 -0
- package/dist/src/services/organism-readme.js.map +1 -0
- package/dist/src/services/prompt-defaults.d.ts.map +1 -1
- package/dist/src/services/prompt-defaults.js +30 -0
- package/dist/src/services/prompt-defaults.js.map +1 -1
- package/dist/src/services/readiness-scorer.d.ts.map +1 -1
- package/dist/src/services/readiness-scorer.js +11 -6
- package/dist/src/services/readiness-scorer.js.map +1 -1
- package/dist/src/services/scheduler.d.ts +5 -0
- package/dist/src/services/scheduler.d.ts.map +1 -1
- package/dist/src/services/scheduler.js +13 -3
- package/dist/src/services/scheduler.js.map +1 -1
- package/dist/src/services/screenshot-capture.d.ts +28 -0
- package/dist/src/services/screenshot-capture.d.ts.map +1 -0
- package/dist/src/services/screenshot-capture.js +154 -0
- package/dist/src/services/screenshot-capture.js.map +1 -0
- package/dist/src/services/structure-graph.d.ts +65 -0
- package/dist/src/services/structure-graph.d.ts.map +1 -0
- package/dist/src/services/structure-graph.js +53 -0
- package/dist/src/services/structure-graph.js.map +1 -0
- package/dist/src/services/structure-overview.d.ts +6 -0
- package/dist/src/services/structure-overview.d.ts.map +1 -1
- package/dist/src/services/structure-overview.js +1 -1
- package/dist/src/services/structure-overview.js.map +1 -1
- package/dist/src/services/structure-snapshot.d.ts +47 -0
- package/dist/src/services/structure-snapshot.d.ts.map +1 -0
- package/dist/src/services/structure-snapshot.js +101 -0
- package/dist/src/services/structure-snapshot.js.map +1 -0
- package/dist/src/services/telemetry-buffer.d.ts +73 -0
- package/dist/src/services/telemetry-buffer.d.ts.map +1 -0
- package/dist/src/services/telemetry-buffer.js +185 -0
- package/dist/src/services/telemetry-buffer.js.map +1 -0
- package/dist/src/services/track-registry.d.ts +29 -0
- package/dist/src/services/track-registry.d.ts.map +1 -0
- package/dist/src/services/track-registry.js +61 -0
- package/dist/src/services/track-registry.js.map +1 -0
- package/dist/src/services/tracked-classify.d.ts +98 -0
- package/dist/src/services/tracked-classify.d.ts.map +1 -0
- package/dist/src/services/tracked-classify.js +182 -0
- package/dist/src/services/tracked-classify.js.map +1 -0
- package/dist/src/services/tracked-response.d.ts +98 -0
- package/dist/src/services/tracked-response.d.ts.map +1 -0
- package/dist/src/services/tracked-response.js +304 -0
- package/dist/src/services/tracked-response.js.map +1 -0
- package/dist/src/services/workspace-access.d.ts +36 -0
- package/dist/src/services/workspace-access.d.ts.map +1 -0
- package/dist/src/services/workspace-access.js +38 -0
- package/dist/src/services/workspace-access.js.map +1 -0
- package/dist/src/storage/interface.d.ts +6 -1
- package/dist/src/storage/interface.d.ts.map +1 -1
- package/dist/src/storage/interface.js.map +1 -1
- package/dist/src/storage/providers/mongodb/index.d.ts +26 -1
- package/dist/src/storage/providers/mongodb/index.d.ts.map +1 -1
- package/dist/src/storage/providers/mongodb/index.js +144 -1
- package/dist/src/storage/providers/mongodb/index.js.map +1 -1
- package/dist/src/storage/providers/sqlite/index.d.ts +26 -1
- package/dist/src/storage/providers/sqlite/index.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/index.js +73 -6
- package/dist/src/storage/providers/sqlite/index.js.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/agent-message.d.ts +4 -0
- package/dist/src/storage/providers/sqlite/repos/agent-message.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/agent-message.js +14 -0
- package/dist/src/storage/providers/sqlite/repos/agent-message.js.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/agent-task.d.ts +9 -0
- package/dist/src/storage/providers/sqlite/repos/agent-task.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/agent-task.js +25 -0
- package/dist/src/storage/providers/sqlite/repos/agent-task.js.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/memory.d.ts +22 -1
- package/dist/src/storage/providers/sqlite/repos/memory.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/memory.js +61 -3
- package/dist/src/storage/providers/sqlite/repos/memory.js.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.d.ts +16 -3
- package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.js +33 -6
- package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
- package/dist/src/storage/repositories/agent-message.repository.d.ts +10 -0
- package/dist/src/storage/repositories/agent-message.repository.d.ts.map +1 -1
- package/dist/src/storage/repositories/agent-task.repository.d.ts +15 -0
- package/dist/src/storage/repositories/agent-task.repository.d.ts.map +1 -1
- package/dist/src/storage/repositories/app.repository.d.ts +9 -0
- package/dist/src/storage/repositories/app.repository.d.ts.map +1 -1
- package/dist/src/storage/repositories/consent.repository.d.ts +2 -0
- package/dist/src/storage/repositories/consent.repository.d.ts.map +1 -1
- package/dist/src/storage/repositories/memory.repository.d.ts +31 -0
- package/dist/src/storage/repositories/memory.repository.d.ts.map +1 -1
- package/dist/src/utils/env-config.d.ts.map +1 -1
- package/dist/src/utils/env-config.js +18 -0
- package/dist/src/utils/env-config.js.map +1 -1
- package/dist/src/utils/messaging.d.ts +5 -0
- package/dist/src/utils/messaging.d.ts.map +1 -1
- package/dist/src/utils/messaging.js +0 -0
- package/dist/src/utils/messaging.js.map +1 -1
- package/dist/static/app-catalog.html +452 -34
- package/dist/static/app-login.js +67 -0
- package/dist/static/app-silent.html +14 -0
- package/dist/static/app-silent.js +32 -0
- package/package.json +5 -1
- package/prisma/schema.postgres.prisma +36 -18
- package/prisma/schema.prisma +20 -0
package/dist/locales/en.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"inbox.title": "Inbox",
|
|
3
|
-
"inbox.desc": "Direct messages with other people
|
|
3
|
+
"inbox.desc": "Direct messages with other people, on this node and across the federation.",
|
|
4
4
|
"inbox.new": "New message",
|
|
5
5
|
"inbox.to": "To",
|
|
6
6
|
"inbox.toPlaceholder": "Recipient (owner@node-id)",
|
|
@@ -39,6 +39,59 @@
|
|
|
39
39
|
"inbox.acceptedToast": "Request accepted.",
|
|
40
40
|
"inbox.blockedToast": "Contact blocked.",
|
|
41
41
|
"inbox.failed": "Could not send the message.",
|
|
42
|
+
"inbox.markImportant": "Mark important (needs a reply)",
|
|
43
|
+
"inbox.trackResponse": "Track a response",
|
|
44
|
+
"inbox.trackHint": "Turn this message into an actionable record. When that record is marked done, a reply is sent back to the sender (automatically, or after your approval).",
|
|
45
|
+
"inbox.trackOrganism": "Organism",
|
|
46
|
+
"inbox.trackWorkspace": "Workspace",
|
|
47
|
+
"inbox.trackChoose": "Choose…",
|
|
48
|
+
"inbox.trackType": "Record type",
|
|
49
|
+
"inbox.trackSeverity": "Severity",
|
|
50
|
+
"inbox.trackTitle": "Title",
|
|
51
|
+
"inbox.trackReplyMode": "Reply",
|
|
52
|
+
"inbox.trackModeApprove": "Draft a reply for me to approve",
|
|
53
|
+
"inbox.trackModeAuto": "Send the reply automatically",
|
|
54
|
+
"inbox.trackWhenField": "Done when field",
|
|
55
|
+
"inbox.trackWhenEquals": "equals",
|
|
56
|
+
"inbox.trackInject": "Include field in reply",
|
|
57
|
+
"inbox.trackCreate": "Create",
|
|
58
|
+
"inbox.trackCreating": "Creating…",
|
|
59
|
+
"inbox.trackCreated": "Tracked response created.",
|
|
60
|
+
"inbox.trackFailed": "Could not create the tracked response.",
|
|
61
|
+
"inbox.trackPickTarget": "Pick an organism and workspace first.",
|
|
62
|
+
"inbox.trackReady": "Reply ready — approve or reject",
|
|
63
|
+
"inbox.trackUseSuggested": "Use suggested reply",
|
|
64
|
+
"inbox.trackApprove": "Approve & edit",
|
|
65
|
+
"inbox.trackReject": "Reject",
|
|
66
|
+
"inbox.trackOpenRecord": "Open record",
|
|
67
|
+
"inbox.trackNoRecord": "No linked record to open.",
|
|
68
|
+
"inbox.trackAlready": "This message already has a tracked response.",
|
|
69
|
+
"inbox.trackCancelled": "Tracked response cancelled.",
|
|
70
|
+
"inbox.trackStateWatching": "Watching",
|
|
71
|
+
"inbox.trackStateAwaiting": "Reply ready",
|
|
72
|
+
"inbox.trackStateReplied": "Replied",
|
|
73
|
+
"inbox.trackStateError": "Error — will retry",
|
|
74
|
+
"inbox.trackedTitle": "Tracked responses",
|
|
75
|
+
"inbox.trackedEmpty": "No tracked responses yet. Use 🔗 on a message to track one.",
|
|
76
|
+
"inbox.trackedTo": "to",
|
|
77
|
+
"inbox.trackedWatching": "watching",
|
|
78
|
+
"inbox.trackedOpen": "Open",
|
|
79
|
+
"inbox.trackedOpenConvo": "Open conversation",
|
|
80
|
+
"inbox.trackedCancel": "Cancel",
|
|
81
|
+
"inbox.trackedAllDone": "All tracked responses are completed.",
|
|
82
|
+
"inbox.trackedDoneCount": "{n} completed",
|
|
83
|
+
"inbox.trackHintAi": "Your AI chose where this belongs. Review, pick the record type, and a reply policy.",
|
|
84
|
+
"inbox.trackAiThinking": "AI is choosing where this belongs…",
|
|
85
|
+
"inbox.trackNeedsAi": "Tracking a response needs your own AI (OpenRouter or Ollama) to decide where the message belongs. Configure it to use this feature.",
|
|
86
|
+
"inbox.trackConfigureAi": "Configure AI",
|
|
87
|
+
"inbox.trackContent": "Content",
|
|
88
|
+
"inbox.trackNoTypes": "This workspace has no record types",
|
|
89
|
+
"inbox.trackCreatedGated": "Tracked response created — the record was sent for approval.",
|
|
90
|
+
"inbox.trackFillNote": "On create, your AI fills the record's fields to match this type's schema and sets the completion condition automatically.",
|
|
91
|
+
"inbox.trackPark": "Put in notebook for later",
|
|
92
|
+
"inbox.trackParked": "Saved to the notebook for later processing.",
|
|
93
|
+
"inbox.trackParkedBadge": "Owes a reply to {peer}",
|
|
94
|
+
"inbox.trackParkedDesc": "Parked from a message. Process it when ready — a reply will be tracked back to the sender.",
|
|
42
95
|
"inbox.status.queued": "queued",
|
|
43
96
|
"inbox.status.sent": "sent",
|
|
44
97
|
"inbox.status.delivered": "delivered",
|
|
@@ -51,21 +104,106 @@
|
|
|
51
104
|
"profile.landing.home": "Home",
|
|
52
105
|
"profile.landing.menu": "Menu",
|
|
53
106
|
"profile.tabs.notebook": "Notebook",
|
|
107
|
+
"profile.tabs.living": "Living Docs",
|
|
108
|
+
"profile.living.title": "Living Documents",
|
|
109
|
+
"profile.living.desc": "Documents that maintain themselves. Build a reusable template, then deploy it into a workspace where it lives, grows, and stays current. (Background auto-refresh arrives in a later phase.)",
|
|
110
|
+
"profile.living.templatesTitle": "Templates",
|
|
111
|
+
"profile.living.templatesDesc": "Reusable skeletons (scope + sections). Deploy a template into a workspace to create a living document.",
|
|
112
|
+
"profile.living.instancesTitle": "Deployed living documents",
|
|
113
|
+
"profile.living.instancesDesc": "Live instances across your workspaces.",
|
|
114
|
+
"profile.living.loading": "Loading…",
|
|
115
|
+
"profile.living.noTemplates": "No templates yet — create one to begin.",
|
|
116
|
+
"profile.living.noInstances": "Nothing deployed yet.",
|
|
117
|
+
"profile.living.newTemplate": "New template",
|
|
118
|
+
"profile.living.editTemplate": "Edit template",
|
|
119
|
+
"profile.living.untitled": "Untitled template",
|
|
120
|
+
"profile.living.sectionsShort": "sections",
|
|
121
|
+
"profile.living.deploy": "Deploy",
|
|
122
|
+
"profile.living.edit": "Edit",
|
|
123
|
+
"profile.living.open": "Open",
|
|
124
|
+
"profile.living.titleRequired": "A title is required",
|
|
125
|
+
"profile.living.templateSaved": "Template saved",
|
|
126
|
+
"profile.living.deleted": "Deleted",
|
|
127
|
+
"profile.living.deleteTemplateConfirm": "Delete this template? (Deployed living documents stay.)",
|
|
128
|
+
"profile.living.fieldTitle": "Title",
|
|
129
|
+
"profile.living.fieldDescription": "Description",
|
|
130
|
+
"profile.living.fieldScope": "Scope (what this document covers)",
|
|
131
|
+
"profile.living.sections": "Sections",
|
|
132
|
+
"profile.living.sectionName": "Section name",
|
|
133
|
+
"profile.living.sectionDesc": "What goes here",
|
|
134
|
+
"profile.living.addSection": "Add section",
|
|
135
|
+
"profile.living.saveTemplate": "Save template",
|
|
136
|
+
"profile.living.deployTitle": "Deploy \"{title}\"",
|
|
137
|
+
"profile.living.noOrgs": "You have no organisms yet — create one in the Organisms tab first.",
|
|
138
|
+
"profile.living.noWorkspaces": "This organism has no workspaces yet.",
|
|
139
|
+
"profile.living.organism": "Organism",
|
|
140
|
+
"profile.living.workspace": "Workspace",
|
|
141
|
+
"profile.living.deployBtn": "Deploy here",
|
|
142
|
+
"profile.living.pickWorkspace": "Pick a workspace",
|
|
143
|
+
"profile.living.deployed": "Deployed",
|
|
144
|
+
"profile.living.backToList": "← Back",
|
|
145
|
+
"profile.living.statusNew": "new",
|
|
146
|
+
"profile.living.sectionContentPh": "Section content (markdown)…",
|
|
147
|
+
"profile.living.addSourcePh": "Add a source/fact, press Enter…",
|
|
148
|
+
"profile.living.compose": "Compose from sources",
|
|
149
|
+
"profile.living.composed": "Composed",
|
|
150
|
+
"profile.living.sectionSaved": "Section saved",
|
|
151
|
+
"profile.living.sources": "sources",
|
|
152
|
+
"profile.living.authorPh": "Describe what this living document should track (e.g. \"follow these 5 EV stocks daily and note why they moved\")…",
|
|
153
|
+
"profile.living.authorBtn": "Author with AI",
|
|
154
|
+
"profile.living.authoring": "Designing…",
|
|
155
|
+
"profile.living.charter": "Charter",
|
|
156
|
+
"profile.living.charterReadable": "Readable",
|
|
157
|
+
"profile.living.charterYaml": "YAML",
|
|
158
|
+
"profile.living.charterEmpty": "_No scope set yet._",
|
|
159
|
+
"profile.living.pulseNow": "Pulse now",
|
|
160
|
+
"profile.living.pulsing": "Pulsing…",
|
|
161
|
+
"profile.living.pulseDone": "Pulsed {n} sections",
|
|
162
|
+
"profile.living.lastPulse": "last pulse",
|
|
163
|
+
"profile.living.never": "never",
|
|
164
|
+
"profile.living.cost": "cost",
|
|
165
|
+
"profile.living.ledgerTitle": "Recent changes",
|
|
166
|
+
"profile.living.pause": "Pause",
|
|
167
|
+
"profile.living.resume": "Resume",
|
|
168
|
+
"profile.living.paused": "paused",
|
|
169
|
+
"profile.living.cadence": "cadence",
|
|
170
|
+
"profile.living.cadenceHourly": "Hourly",
|
|
171
|
+
"profile.living.cadenceDaily": "Daily",
|
|
172
|
+
"profile.living.cadenceWeekly": "Weekly",
|
|
173
|
+
"profile.living.automation": "Automation",
|
|
174
|
+
"profile.living.trust": "On pulse",
|
|
175
|
+
"profile.living.trustAuto": "Apply automatically",
|
|
176
|
+
"profile.living.trustGated": "Review before applying",
|
|
177
|
+
"profile.living.activityTrigger": "Also pulse after N workspace changes (0 = schedule only)",
|
|
178
|
+
"profile.living.pendingTitle": "Proposed update — review",
|
|
179
|
+
"profile.living.approve": "Approve",
|
|
180
|
+
"profile.living.reject": "Reject",
|
|
181
|
+
"profile.living.approved": "Applied",
|
|
182
|
+
"profile.living.rejected": "Discarded",
|
|
183
|
+
"profile.living.retired": "retired",
|
|
184
|
+
"profile.living.timeline": "Version",
|
|
185
|
+
"profile.living.versionCurrent": "Current",
|
|
186
|
+
"profile.living.saveSnapshot": "Save snapshot",
|
|
187
|
+
"profile.living.snapshotSaved": "Snapshot saved to Pages",
|
|
188
|
+
"profile.living.noData": "No data points yet.",
|
|
189
|
+
"profile.living.dpLabel": "Label",
|
|
190
|
+
"profile.living.dpValue": "Value",
|
|
191
|
+
"profile.living.addPoint": "Add point",
|
|
54
192
|
"profile.notebook.title": "Notebook",
|
|
55
|
-
"profile.notebook.desc": "Write anything freely
|
|
56
|
-
"profile.notebook.capturePlaceholder": "Write anything
|
|
193
|
+
"profile.notebook.desc": "Write anything freely: capture it now, find it later. The librarian searches across everything you have: every shared space (organism) you have contributed to, plus your personal notes.",
|
|
194
|
+
"profile.notebook.capturePlaceholder": "Write anything: a thought, an idea, a note to keep…",
|
|
57
195
|
"profile.notebook.captureBtn": "Capture",
|
|
58
196
|
"profile.notebook.captureHint": "Saved to your notebook inbox. Sorting into organisms/workspaces comes next.",
|
|
59
197
|
"profile.notebook.saved": "Captured",
|
|
60
198
|
"profile.notebook.saveFailed": "Could not capture",
|
|
61
199
|
"profile.notebook.inboxTitle": "Inbox",
|
|
62
|
-
"profile.notebook.inboxEmpty": "Nothing captured yet
|
|
200
|
+
"profile.notebook.inboxEmpty": "Nothing captured yet, write something above.",
|
|
63
201
|
"profile.notebook.inboxLoading": "Loading…",
|
|
64
202
|
"profile.notebook.deleteBtn": "Delete",
|
|
65
203
|
"profile.notebook.deleteConfirm": "Delete this note?",
|
|
66
204
|
"profile.notebook.deleted": "Deleted",
|
|
67
205
|
"profile.notebook.librarianTitle": "Librarian",
|
|
68
|
-
"profile.notebook.librarianDesc": "Ask for anything you have
|
|
206
|
+
"profile.notebook.librarianDesc": "Ask for anything you have: it searches every organism and note, ranked.",
|
|
69
207
|
"profile.notebook.searchPlaceholder": "What are you looking for?",
|
|
70
208
|
"profile.notebook.searchBtn": "Search",
|
|
71
209
|
"profile.notebook.searching": "Searching…",
|
|
@@ -91,7 +229,7 @@
|
|
|
91
229
|
"profile.notebook.titleRequired": "A title is required",
|
|
92
230
|
"profile.notebook.orgNameRequired": "Name the new organism",
|
|
93
231
|
"profile.notebook.step1": "Reading your organism structure…",
|
|
94
|
-
"profile.notebook.step2": "Asking the AI for the best placement
|
|
232
|
+
"profile.notebook.step2": "Asking the AI for the best placement. This can take up to a couple of minutes with a slow model…",
|
|
95
233
|
"profile.notebook.step3": "Preparing the suggestion…",
|
|
96
234
|
"profile.notebook.sortErrorTitle": "Sorting failed",
|
|
97
235
|
"profile.notebook.needKey": "AI sorting needs your own OpenRouter API key. Add it here, then try again:",
|
|
@@ -106,9 +244,38 @@
|
|
|
106
244
|
"profile.notebook.producer": "Producer",
|
|
107
245
|
"profile.notebook.tryAgain": "Try again",
|
|
108
246
|
"profile.notebook.dismiss": "Dismiss",
|
|
247
|
+
"profile.notebook.enrichBtn": "Enrich",
|
|
248
|
+
"profile.notebook.planning": "Planning enrichment…",
|
|
249
|
+
"profile.notebook.planNoSteps": "No enrichment needed — this note looks ready to file.",
|
|
250
|
+
"profile.notebook.planErrorTitle": "Enrichment planning failed",
|
|
251
|
+
"profile.notebook.kind_llm_reason": "reason",
|
|
252
|
+
"profile.notebook.kind_librarian_assess": "assess my material",
|
|
253
|
+
"profile.notebook.kind_delegate": "delegate to agent",
|
|
254
|
+
"profile.notebook.delegateWaiting": "Waiting on {agent} to finish…",
|
|
255
|
+
"profile.notebook.delegateTimeout": "The agent is taking too long — it keeps working; check its deliverables later.",
|
|
256
|
+
"profile.notebook.runStep": "Run",
|
|
257
|
+
"profile.notebook.skipStep": "Skip",
|
|
258
|
+
"profile.notebook.skipped": "skipped",
|
|
259
|
+
"profile.notebook.runAll": "Run all steps",
|
|
260
|
+
"profile.notebook.running": "Running…",
|
|
261
|
+
"profile.notebook.enrichedPreview": "Enriched note preview",
|
|
262
|
+
"profile.notebook.fileEnriched": "File this note…",
|
|
263
|
+
"profile.notebook.splitEnriched": "Split & distribute…",
|
|
264
|
+
"profile.notebook.splitBtn": "Split",
|
|
265
|
+
"profile.notebook.splitting": "Splitting…",
|
|
266
|
+
"profile.notebook.distributeIntro": "{n} pieces — review and file each to its home:",
|
|
267
|
+
"profile.notebook.distributeCommit": "Distribute {n}",
|
|
268
|
+
"profile.notebook.distributed": "Filed {n} documents",
|
|
269
|
+
"profile.notebook.distributeNone": "Nothing to distribute.",
|
|
270
|
+
"profile.notebook.distributePickOne": "Select at least one piece.",
|
|
271
|
+
"profile.notebook.distributeDefaultHome": "Notebook (default)",
|
|
272
|
+
"profile.notebook.trustTitle": "Automate:",
|
|
273
|
+
"profile.notebook.autoDetect": "Detect on capture",
|
|
274
|
+
"profile.notebook.autoRun": "Run plan automatically",
|
|
275
|
+
"profile.notebook.autoDistribute": "Distribute when filing",
|
|
109
276
|
"profile.tabs.workflows": "Workflows",
|
|
110
277
|
"profile.workflows.title": "Workflows",
|
|
111
|
-
"profile.workflows.desc": "Declared, ordered agent pipelines with per-step health checks
|
|
278
|
+
"profile.workflows.desc": "Declared, ordered agent pipelines with per-step health checks: they show whether each step actually produced, not just that it fired.",
|
|
112
279
|
"profile.workflows.loading": "Loading workflows…",
|
|
113
280
|
"profile.workflows.empty": "No workflows yet. An agent or the API can define one; it will appear here.",
|
|
114
281
|
"profile.workflows.trigger.schedule": "schedule",
|
|
@@ -156,14 +323,14 @@
|
|
|
156
323
|
"profile.tabs.scheduler": "Scheduler",
|
|
157
324
|
"profile.agents.detail.tabs.schedules": "Schedules",
|
|
158
325
|
"profile.scheduler.title": "Scheduler",
|
|
159
|
-
"profile.scheduler.desc": "Every recurring job running for your profile
|
|
326
|
+
"profile.scheduler.desc": "Every recurring job running for your profile. AIMEAT-managed and your agents' own.",
|
|
160
327
|
"profile.scheduler.loading": "Loading schedules…",
|
|
161
328
|
"profile.scheduler.newSchedule": "New schedule",
|
|
162
329
|
"profile.scheduler.close": "Close",
|
|
163
330
|
"profile.scheduler.triggered": "Schedule run started",
|
|
164
|
-
"profile.scheduler.runCreated": "Run started
|
|
165
|
-
"profile.scheduler.runBusy": "No task created
|
|
166
|
-
"profile.scheduler.runLimited": "Not run
|
|
331
|
+
"profile.scheduler.runCreated": "Run started. A new task was created",
|
|
332
|
+
"profile.scheduler.runBusy": "No task created. A previous run is still active. Finish, fail, or delete it, then run again.",
|
|
333
|
+
"profile.scheduler.runLimited": "Not run. This schedule's run limit (daily or max) has been reached.",
|
|
167
334
|
"profile.scheduler.runError": "Run failed",
|
|
168
335
|
"profile.scheduler.cancelled": "Schedule cancelled",
|
|
169
336
|
"profile.scheduler.created": "Schedule created",
|
|
@@ -245,13 +412,25 @@
|
|
|
245
412
|
"profile.scheduler.autoKey": "(auto)",
|
|
246
413
|
"appGrant": {
|
|
247
414
|
"title": "Allow this app to access your data?",
|
|
248
|
-
"intro": "It will receive its own scoped, revocable token
|
|
415
|
+
"intro": "It will receive its own scoped, revocable token. Never your login session. You can revoke it anytime in Profile › Access.",
|
|
249
416
|
"scopesLabel": "Requested access",
|
|
250
417
|
"approve": "Allow access",
|
|
251
|
-
"approving": "
|
|
252
|
-
"deny": "
|
|
418
|
+
"approving": "Allowing…",
|
|
419
|
+
"deny": "Don't trust",
|
|
420
|
+
"externalBadge": "External app",
|
|
421
|
+
"trustTitle": "Trust this app?",
|
|
422
|
+
"trustIntro": "This app is not yours. It gets its OWN scoped, revocable key. Never your login session. You can revoke it anytime in Profile › Access.",
|
|
423
|
+
"needsLabel": "This app needs:",
|
|
424
|
+
"advancedShow": "⚙ Advanced, choose permissions",
|
|
425
|
+
"advancedHide": "▲ Hide advanced",
|
|
426
|
+
"trustCta": "❤ Trust, allow access",
|
|
427
|
+
"manageTitle": "Manage this app's access",
|
|
428
|
+
"signingIn": "Signing you in…",
|
|
429
|
+
"revoke": "Revoke access",
|
|
430
|
+
"saveCta": "Save changes",
|
|
431
|
+
"nextNote": "Next time this app logs you in automatically, no prompt.",
|
|
253
432
|
"loginTitle": "Log in to continue",
|
|
254
|
-
"loginBody": "Log in on aimeat.io, then re-open the app
|
|
433
|
+
"loginBody": "Log in on aimeat.io, then re-open the app's link to approve access.",
|
|
255
434
|
"loginCta": "Log in",
|
|
256
435
|
"errorTitle": "Cannot grant access",
|
|
257
436
|
"missing": "No authorization request.",
|
|
@@ -265,6 +444,7 @@
|
|
|
265
444
|
"somethingWentWrong": "Something went wrong",
|
|
266
445
|
"retry": "Retry",
|
|
267
446
|
"save": "Save",
|
|
447
|
+
"saving": "Saving…",
|
|
268
448
|
"close": "Close",
|
|
269
449
|
"loading": "Loading...",
|
|
270
450
|
"search": "Search...",
|
|
@@ -345,7 +525,7 @@
|
|
|
345
525
|
"band": "Music & Jam",
|
|
346
526
|
"bandDesc": "Play instruments together in real-time",
|
|
347
527
|
"realtime": "Live & multiplayer",
|
|
348
|
-
"realtimeDesc": "Real-time collaboration
|
|
528
|
+
"realtimeDesc": "Real-time collaboration: whiteboard, chat, shared tools",
|
|
349
529
|
"custom": "Your idea",
|
|
350
530
|
"customDesc": "Tell what you want and AI builds it"
|
|
351
531
|
},
|
|
@@ -366,7 +546,7 @@
|
|
|
366
546
|
"returnBtnAuth": "Add new app",
|
|
367
547
|
"returnMotivation": "Got your app ready? Others can use it and you'll earn heart morsels.",
|
|
368
548
|
"troubleshootingTitle": "If Something Doesn't Work",
|
|
369
|
-
"troubleshootingBody": "If the app doesn't work as expected or you see errors, don't worry
|
|
549
|
+
"troubleshootingBody": "If the app doesn't work as expected or you see errors, don't worry. Tell me what happened and we'll fix it together!\n\nHow to check for errors:\n1. Open the app in your browser\n2. Press F12 (or right-click → Inspect) to open Developer Tools\n3. Click the 'Console' tab\n4. If you see red error messages, copy them and paste them here\n5. I'll analyze the errors and give you a fixed version\n\nEven if there are no console errors. Just describe what's wrong and I'll investigate."
|
|
370
550
|
},
|
|
371
551
|
"services": {
|
|
372
552
|
"title": "Services",
|
|
@@ -395,7 +575,7 @@
|
|
|
395
575
|
"offerPosted": "Your service is now listed in the directory.",
|
|
396
576
|
"backToChoices": "Back",
|
|
397
577
|
"registerTitle": "Create your free identity",
|
|
398
|
-
"registerDesc": "When you register, you get your own private space
|
|
578
|
+
"registerDesc": "When you register, you get your own private space, your own digital identity. Your data is protected by your password: only you can access it. No one else can see your private memory, not even the server operator. You don't have to share anything with anyone.",
|
|
399
579
|
"registerBtn": "Create your free space",
|
|
400
580
|
"registerBenefits": [
|
|
401
581
|
"Your own private memory space, password-protected",
|
|
@@ -410,7 +590,7 @@
|
|
|
410
590
|
"launcher": {
|
|
411
591
|
"title": "App Catalog",
|
|
412
592
|
"tagline": "Browse and discover apps in one place.",
|
|
413
|
-
"desc": "You're going to have lots of apps
|
|
593
|
+
"desc": "You're going to have lots of apps: games, tools, dashboards, trackers. The app catalog gives you one place to organize and open them all. Use it directly or download and customize your very own version.",
|
|
414
594
|
"feat1": "All your AIMEAT apps in one view",
|
|
415
595
|
"feat2": "Pin favorites for quick access",
|
|
416
596
|
"feat3": "Search and filter by tags",
|
|
@@ -418,7 +598,7 @@
|
|
|
418
598
|
"openBtn": "Open App Catalog",
|
|
419
599
|
"or": "or",
|
|
420
600
|
"customizeTitle": "Make your own version",
|
|
421
|
-
"customizeDesc": "Download the app-catalog.html file and give it to any AI along with the prompt below. The AI will customize it exactly the way you want
|
|
601
|
+
"customizeDesc": "Download the app-catalog.html file and give it to any AI along with the prompt below. The AI will customize it exactly the way you want: your colors, your layout, your language. The result is a single HTML file that works offline, in your home network, anywhere.",
|
|
422
602
|
"step1": "Download app-catalog.html below",
|
|
423
603
|
"step2": "Copy the customization prompt",
|
|
424
604
|
"step3": "Paste both into any AI chat (ChatGPT, Claude, Grok...) and tell it what you want changed",
|
|
@@ -455,7 +635,7 @@
|
|
|
455
635
|
"catalog": {
|
|
456
636
|
"title": "App Catalog",
|
|
457
637
|
"tagline": "Browse and discover apps in one place.",
|
|
458
|
-
"desc": "You're going to have lots of apps
|
|
638
|
+
"desc": "You're going to have lots of apps: games, tools, dashboards, trackers. The app catalog lets you browse, find others' apps and add your own.",
|
|
459
639
|
"openBtn": "Open App Catalog",
|
|
460
640
|
"downloadBtn": "Download HTML"
|
|
461
641
|
},
|
|
@@ -463,7 +643,7 @@
|
|
|
463
643
|
"name": "heart morsel",
|
|
464
644
|
"namePlural": "heart morsels",
|
|
465
645
|
"summary": "Heart morsels are AIMEAT's way of saying thanks. You get 100 to start, for free. The more you share and help, the more you get.",
|
|
466
|
-
"economy": "All activity costs heart morsels
|
|
646
|
+
"economy": "All activity costs heart morsels. It protects the server and gives value to every action. When someone uses something you made, you get morsels back. It's a gesture of love: when you give up something, another receives. Anonymous usage is limited; registered users get much more."
|
|
467
647
|
},
|
|
468
648
|
"compat": {
|
|
469
649
|
"title": "Which AIs can read your memories automatically?",
|
|
@@ -561,7 +741,7 @@
|
|
|
561
741
|
},
|
|
562
742
|
"offers": {
|
|
563
743
|
"title": "What can I do?",
|
|
564
|
-
"desc": "Everything your agents can do for you
|
|
744
|
+
"desc": "Everything your agents can do for you: search, then ask. No clicking through agents and tabs.",
|
|
565
745
|
"searchPlaceholder": "What do you want to do?…",
|
|
566
746
|
"empty": "None of your agents publish offers yet.",
|
|
567
747
|
"noMatch": "No offers match.",
|
|
@@ -571,12 +751,12 @@
|
|
|
571
751
|
"example": "Example",
|
|
572
752
|
"requirements": "Before you ask",
|
|
573
753
|
"consequences": "What this does",
|
|
574
|
-
"deliverable": "You
|
|
575
|
-
"untested": "untested
|
|
576
|
-
"requestPlaceholder": "Your request (optional
|
|
577
|
-
"promptCopied": "Prompt copied
|
|
754
|
+
"deliverable": "You'll get back",
|
|
755
|
+
"untested": "untested, no sample yet",
|
|
756
|
+
"requestPlaceholder": "Your request (optional, fills the example)…",
|
|
757
|
+
"promptCopied": "Prompt copied. Paste it into the agent's chat.",
|
|
578
758
|
"triggered": "Schedule triggered.",
|
|
579
|
-
"requested": "Requested
|
|
759
|
+
"requested": "Requested. Task queued for {agent}.",
|
|
580
760
|
"askFailed": "Ask failed",
|
|
581
761
|
"confirmAsk": "This has lasting effects ({effects}). Ask anyway?",
|
|
582
762
|
"online": "online",
|
|
@@ -585,19 +765,19 @@
|
|
|
585
765
|
"task": "task",
|
|
586
766
|
"queued": "queued",
|
|
587
767
|
"inboxTitle": "What came back",
|
|
588
|
-
"inboxDesc": "Everything your agents delivered
|
|
768
|
+
"inboxDesc": "Everything your agents delivered: check it and rate it, all in one place.",
|
|
589
769
|
"segDo": "Do",
|
|
590
770
|
"segInbox": "Inbox",
|
|
591
|
-
"inboxEmpty": "Nothing has come back yet. Ask an agent something in
|
|
771
|
+
"inboxEmpty": "Nothing has come back yet. Ask an agent something in \"What can I do?\".",
|
|
592
772
|
"expected": "Expected",
|
|
593
|
-
"failedMsg": "This task failed
|
|
773
|
+
"failedMsg": "This task failed. No deliverable was produced.",
|
|
594
774
|
"deliverableGone": "Deliverable no longer available.",
|
|
595
775
|
"noDeliverableYet": "No deliverable yet.",
|
|
596
776
|
"rateIt": "Rate it",
|
|
597
777
|
"yourRating": "Your rating",
|
|
598
778
|
"ratePlaceholder": "Optional note…",
|
|
599
779
|
"submitRating": "Submit",
|
|
600
|
-
"rated": "Thanks
|
|
780
|
+
"rated": "Thanks, rated.",
|
|
601
781
|
"rateFailed": "Rating failed",
|
|
602
782
|
"selling": "Selling",
|
|
603
783
|
"priceMorsels": "Price",
|
|
@@ -607,17 +787,17 @@
|
|
|
607
787
|
"billSaved": "Saved.",
|
|
608
788
|
"billSaveFailed": "Could not save",
|
|
609
789
|
"billHint": "Others pay {n} morsels per call; you keep it minus the marketplace fee. Your own use is free.",
|
|
610
|
-
"notCallableHint": "Not machine-callable yet
|
|
790
|
+
"notCallableHint": "Not machine-callable yet: others can find it, but invoking it needs a capability binding (action_id).",
|
|
611
791
|
"openInbox": "See it in the Inbox →",
|
|
612
792
|
"needsFirst": "Needs first",
|
|
613
793
|
"recentRuns": "Recent runs",
|
|
614
794
|
"noRunsYet": "No runs yet for this offer.",
|
|
615
|
-
"blockedReason": "Can
|
|
616
|
-
"bundleHint": "This is a step of a workflow
|
|
617
|
-
"bundleOpened": "Opening
|
|
795
|
+
"blockedReason": "Can't run yet, needs: {what}",
|
|
796
|
+
"bundleHint": "This is a step of a workflow. Open it to run the whole chain:",
|
|
797
|
+
"bundleOpened": "Opening \"{wf}\" in Workflows…",
|
|
618
798
|
"segMap": "Map",
|
|
619
799
|
"mapTitle": "Map of what you can do",
|
|
620
|
-
"mapDesc": "A bird
|
|
800
|
+
"mapDesc": "A bird's-eye map of your offers, grouped: orient here, act in the list.",
|
|
621
801
|
"mapNote": "Click a node to open its card.",
|
|
622
802
|
"groupBy": "Group",
|
|
623
803
|
"sortBy": "Sort",
|
|
@@ -661,17 +841,17 @@
|
|
|
661
841
|
"title": "Ecosystem apps",
|
|
662
842
|
"desc": "Connect external services so your agents and workflows can exchange data, capabilities, and events with them.",
|
|
663
843
|
"connect": "+ Connect app",
|
|
664
|
-
"connectNote": "This is for external services that support AIMEAT (like the Feedback Desk demo). Most people don't need to do anything here. If you use such a service, you connect it from that service's own settings
|
|
844
|
+
"connectNote": "This is for external services that support AIMEAT (like the Feedback Desk demo). Most people don't need to do anything here. If you use such a service, you connect it from that service's own settings, its request then appears here to approve. There's no app store for these yet; services and developers add AIMEAT support themselves.",
|
|
665
845
|
"empty": "No ecosystem apps connected yet.",
|
|
666
846
|
"loadError": "Could not load ecosystem apps.",
|
|
667
847
|
"approved": "Ecosystem app approved.",
|
|
668
848
|
"approveError": "Could not process the request.",
|
|
669
849
|
"revoked": "App removed.",
|
|
670
850
|
"revokeError": "Could not disconnect the app.",
|
|
671
|
-
"revokeReconnectHint": "This app is disconnected. Your data above stays yours. To reconnect, connect the app again from its own side
|
|
851
|
+
"revokeReconnectHint": "This app is disconnected. Your data above stays yours. To reconnect, connect the app again from its own side: AIMEAT re-pins its identity and re-reads its settings (deposit key, capabilities) automatically.",
|
|
672
852
|
"subError": "Could not update the subscription.",
|
|
673
853
|
"pendingTitle": "Pending integration requests",
|
|
674
|
-
"pendingHint": "The app shows the same code in its own view. Check they match, then approve
|
|
854
|
+
"pendingHint": "The app shows the same code in its own view. Check they match, then approve. You don't need to type the code anywhere.",
|
|
675
855
|
"pendingCode": "Code",
|
|
676
856
|
"waiting": "waiting",
|
|
677
857
|
"expiresIn": "expires in {n} min",
|
|
@@ -684,7 +864,7 @@
|
|
|
684
864
|
"connectedAsYou": "connected as you ({owner})",
|
|
685
865
|
"appValueLine": "This app collects your data and refines it into insights you can use anywhere.",
|
|
686
866
|
"techDetailsTitle": "Technical details",
|
|
687
|
-
"techDetailsHint": "Under-the-hood settings. You don't need these to use the app
|
|
867
|
+
"techDetailsHint": "Under-the-hood settings. You don't need these to use the app. They're here if you want to check or fine-tune the connection.",
|
|
688
868
|
"principalTitle": "App identity",
|
|
689
869
|
"accessPlain": "Access: everything you granted when you approved this app.",
|
|
690
870
|
"disconnectTitle": "Disconnect",
|
|
@@ -707,7 +887,7 @@
|
|
|
707
887
|
"dataExpand": "Show full value",
|
|
708
888
|
"dataCollapse": "Hide value",
|
|
709
889
|
"automationTitle": "Automation",
|
|
710
|
-
"automationIntro": "Get fresh results on a schedule
|
|
890
|
+
"automationIntro": "Get fresh results on a schedule. AIMEAT runs the app for you; the app does the work.",
|
|
711
891
|
"automationCadence_daily": "Daily, 08:00",
|
|
712
892
|
"automationCadence_weekly": "Weekly, Mondays 08:00",
|
|
713
893
|
"automationCadence_monthly": "Monthly, 1st 08:00",
|
|
@@ -723,12 +903,12 @@
|
|
|
723
903
|
"automationOn": "enabled",
|
|
724
904
|
"automationPaused": "paused",
|
|
725
905
|
"automationCreated": "Schedule created.",
|
|
726
|
-
"automationTriggered": "Triggered
|
|
906
|
+
"automationTriggered": "Triggered, running now.",
|
|
727
907
|
"automationError": "Automation request failed.",
|
|
728
|
-
"automationRunOk": "Ran now
|
|
729
|
-
"automationRunSkipped": "Skipped
|
|
730
|
-
"automationRunSkippedOffline": "Skipped
|
|
731
|
-
"automationRunFailed": "Run failed
|
|
908
|
+
"automationRunOk": "Ran now, done.",
|
|
909
|
+
"automationRunSkipped": "Skipped, {reason}.",
|
|
910
|
+
"automationRunSkippedOffline": "Skipped. The app isn't reachable over the connector tunnel. Start `aimeat connect serve` for this app, then try again.",
|
|
911
|
+
"automationRunFailed": "Run failed, {reason}.",
|
|
732
912
|
"automationShowLog": "Show log",
|
|
733
913
|
"automationHideLog": "Hide log",
|
|
734
914
|
"automationLogEmpty": "No runs yet.",
|
|
@@ -740,11 +920,11 @@
|
|
|
740
920
|
"autoIntro": "Set it up once → your data refines itself: the app publishes → your agent analyses it → results land where you want them. No clicking required after this.",
|
|
741
921
|
"autoRevoked": "This app is disconnected, so automation is unavailable.",
|
|
742
922
|
"autoHowTitle": "How this works",
|
|
743
|
-
"autoHowLead": "The app and your agents never talk directly
|
|
923
|
+
"autoHowLead": "The app and your agents never talk directly. AIMEAT sits in between. It runs top to bottom:",
|
|
744
924
|
"autoHowStep1": "The app publishes fresh data on a schedule.",
|
|
745
925
|
"autoHowStep2": "AIMEAT spots that data and hands it to your agent.",
|
|
746
926
|
"autoHowStep3": "Your agent does the work and writes its insights back.",
|
|
747
|
-
"autoHowStep4": "You get the finished insights
|
|
927
|
+
"autoHowStep4": "You get the finished insights. Delivered to the app and reachable everywhere.",
|
|
748
928
|
"autoHowDoc": "Full walkthrough: docs/ecosystem-app-automation-howto.md.",
|
|
749
929
|
"autoStep1": "① What this app produces",
|
|
750
930
|
"autoStep2": "② Run on a schedule",
|
|
@@ -754,45 +934,45 @@
|
|
|
754
934
|
"autoProduces": "produces",
|
|
755
935
|
"autoDepositKey": "deposits under",
|
|
756
936
|
"autoScheduleOn": "Run automatically on this schedule",
|
|
757
|
-
"autoAdvanced": "Advanced
|
|
937
|
+
"autoAdvanced": "Advanced, trigger key",
|
|
758
938
|
"autoSave": "Save automation",
|
|
759
939
|
"autoSaved": "Automation saved.",
|
|
760
940
|
"autoSaveError": "Could not save the automation.",
|
|
761
|
-
"autoStatusTitle": "Status
|
|
941
|
+
"autoStatusTitle": "Status, latest run",
|
|
762
942
|
"autoStatusPublished": "Published",
|
|
763
943
|
"autoStatusProcessed": "Processed",
|
|
764
944
|
"autoStatusDelivered": "Delivered",
|
|
765
945
|
"autoStatusNotScheduled": "not scheduled",
|
|
766
946
|
"autoStatusPublishedHint": "Turn on \"Run on a schedule\" above and save to start publishing this app's data.",
|
|
767
947
|
"autoStatusProcessedHint": "Your agents run automatically whenever this app publishes matching data.",
|
|
768
|
-
"autoStatusNoAgents": "No agents selected yet
|
|
948
|
+
"autoStatusNoAgents": "No agents selected yet. Pick one in step ③ above.",
|
|
769
949
|
"autoStatusDeliveredHint": "Approved guidance is delivered to the app and appears in its Guidance.",
|
|
770
950
|
"setupGuideTitle": "How to set this up",
|
|
771
|
-
"setupGuideMissing": "This app didn't include a setup guide
|
|
951
|
+
"setupGuideMissing": "This app didn't include a setup guide: re-connect it to load one, or see the app's own docs.",
|
|
772
952
|
"askClaudeTitle": "Ask your results in Claude",
|
|
773
953
|
"setupTitle": "Get started",
|
|
774
954
|
"setupLead": "A few quick steps and this app starts working for you: your insights become reachable from any AI chat (Claude, Grok, ChatGPT), your own agent does the thinking, and results stay yours to reuse anywhere.",
|
|
775
955
|
"setupLoading": "Loading status…",
|
|
776
956
|
"setupProgress": "{done}/{total} done",
|
|
777
957
|
"setupStep1Title": "App connected",
|
|
778
|
-
"setupStep1Why": "Done
|
|
958
|
+
"setupStep1Why": "Done. This app is linked to your account and ready to go.",
|
|
779
959
|
"setupStep2Title": "Get recommendations from your data",
|
|
780
|
-
"setupStep2Why": "Connect your own agent (e.g. Claude with your key) and it turns this app's data into recommendations. It's YOUR agent, not the app's
|
|
960
|
+
"setupStep2Why": "Connect your own agent (e.g. Claude with your key) and it turns this app's data into recommendations. It's YOUR agent, not the app's. The app only suggests a ready prompt to start from.",
|
|
781
961
|
"setupStep2Cta": "Connect an agent",
|
|
782
|
-
"setupStep2NoAgents": "You have no agents yet
|
|
962
|
+
"setupStep2NoAgents": "You have no agents yet: connect one first, then return here.",
|
|
783
963
|
"setupStep3Title": "Let it run by itself",
|
|
784
|
-
"setupStep3Why": "Turn on automation and your agent runs the moment new data arrives
|
|
964
|
+
"setupStep3Why": "Turn on automation and your agent runs the moment new data arrives. You get fresh insights without lifting a finger.",
|
|
785
965
|
"setupStep3Cta": "Set up automation",
|
|
786
966
|
"setupStep4Title": "Get your insights everywhere",
|
|
787
|
-
"setupStep4Why": "Pick a shared space (an organism) and your results show up in Claude / Grok / ChatGPT, ready to reuse for marketing or reports and to share with your team
|
|
967
|
+
"setupStep4Why": "Pick a shared space (an organism) and your results show up in Claude / Grok / ChatGPT, ready to reuse for marketing or reports and to share with your team. Not locked inside this one app.",
|
|
788
968
|
"setupStep4Cta": "Pick an organism",
|
|
789
969
|
"mcpTitle": "Ask your insights in Claude, Grok, or ChatGPT",
|
|
790
|
-
"mcpSub": "Connect AIMEAT to your AI chat once → then just ask, and get answers, exploration, save and follow-up
|
|
970
|
+
"mcpSub": "Connect AIMEAT to your AI chat once → then just ask, and get answers, exploration, save and follow-up. Straight from everything this app and your agent produce.",
|
|
791
971
|
"mcpConnect": "If you haven't yet: add aimeat.io as an MCP connector in your AI chat's settings. See the how-to (docs/ecosystem-app-automation-howto.md) for the connect steps.",
|
|
792
972
|
"mcpSampleLabel": "Sample query to try:",
|
|
793
973
|
"mcpSamplePromptOrg": "Open my '{organism}' organism, read the latest feedback analysis my agent saved there, and summarise the top issues and trends. Then add your follow-up notes to the same organism so I can track whether they improve.",
|
|
794
|
-
"mcpNoOrganism": "Pick an organism first (step ④ below)
|
|
795
|
-
"mcpAccessNote": "This works when you're connected to AIMEAT MCP as yourself (the owner), or your chat agent is a member of that organism
|
|
974
|
+
"mcpNoOrganism": "Pick an organism first (step ④ below): that's where your agent saves its insights, and where you can ask for them in your AI chat. Until then there's no shared place to read.",
|
|
975
|
+
"mcpAccessNote": "This works when you're connected to AIMEAT MCP as yourself (the owner), or your chat agent is a member of that organism: the insight lives in the organism, not in private memory.",
|
|
796
976
|
"recipeTitle": "When this app publishes data",
|
|
797
977
|
"recipeIntro": "Build an automatic recipe: when this app publishes new data, hand it to your agents, optionally store the results in an organism and email you the report.",
|
|
798
978
|
"recipeLoading": "Loading recipe…",
|
|
@@ -804,7 +984,7 @@
|
|
|
804
984
|
"recommendedChip": "★ Recommended",
|
|
805
985
|
"showAllAgents": "Show all agents ({n})",
|
|
806
986
|
"hideAllAgents": "Hide other agents",
|
|
807
|
-
"recommendedMissing": "This app recommends an agent: {name}
|
|
987
|
+
"recommendedMissing": "This app recommends an agent: {name}, {why}. You haven't connected it yet (see the setup guide above).",
|
|
808
988
|
"recipeOrganism": "Store results in organism",
|
|
809
989
|
"recipeOrganismNone": "None",
|
|
810
990
|
"recipeEmail": "Email me the report",
|
|
@@ -825,8 +1005,8 @@
|
|
|
825
1005
|
"advReject": "Reject",
|
|
826
1006
|
"advRejectConfirm": "Reject this advisory? It will be dropped and not delivered.",
|
|
827
1007
|
"advDelivered": "Advisory delivered to {app}.",
|
|
828
|
-
"advOfflineRetry": "{app} is offline
|
|
829
|
-
"advFailed": "Delivery failed
|
|
1008
|
+
"advOfflineRetry": "{app} is offline. The advisory stays pending and will be retried.",
|
|
1009
|
+
"advFailed": "Delivery failed. The advisory stays pending. You can retry later.",
|
|
830
1010
|
"advRejected": "Advisory rejected.",
|
|
831
1011
|
"advError": "Could not process the advisory.",
|
|
832
1012
|
"advKind": "Kind",
|
|
@@ -837,7 +1017,7 @@
|
|
|
837
1017
|
"advLoading": "Loading advisories…",
|
|
838
1018
|
"revoke": "Disconnect",
|
|
839
1019
|
"revokeTitle": "Disconnect: {app}",
|
|
840
|
-
"revokeWarn": "This removes the app from your list entirely. Your data stays in your Memory. You can reconnect it later from the app's own side
|
|
1020
|
+
"revokeWarn": "This removes the app from your list entirely. Your data stays in your Memory. You can reconnect it later from the app's own side. It will start over from scratch then. Type the app name ({app}) to confirm.",
|
|
841
1021
|
"validation": {
|
|
842
1022
|
"validated": "validated",
|
|
843
1023
|
"failed": "validation failed",
|
|
@@ -860,7 +1040,7 @@
|
|
|
860
1040
|
"untitled": "Untitled task",
|
|
861
1041
|
"more": "more running (open an agent to see all)"
|
|
862
1042
|
},
|
|
863
|
-
"desc": "Agents are AI identities registered under your account, each with their own identity, scopes, tools, tasks, and memory access. Think of them as your personal AI team
|
|
1043
|
+
"desc": "Agents are AI identities registered under your account, each with their own identity, scopes, tools, tasks, and memory access. Think of them as your personal AI team. They act on your behalf across the network.",
|
|
864
1044
|
"connect": "Connect an Automation Agent",
|
|
865
1045
|
"connectDesc": "Connect an AI agent to your account using the AIMEAT connector CLI or an agent-capable runtime. The connector is the easiest path because it gives the agent a persistent identity, approved scopes, local skill bundle, and MCP access to AIMEAT tools:",
|
|
866
1046
|
"connectOptionsTitle": "Choose how the agent connects to AIMEAT first:",
|
|
@@ -873,7 +1053,7 @@
|
|
|
873
1053
|
"cliDesc": "Keep this server running while your AI runtime is attached. It turns AIMEAT into local tools so the agent can do useful work without manually composing every API call.",
|
|
874
1054
|
"agentInstructionTitle": "Tell the connected agent what to do next:",
|
|
875
1055
|
"agentInstructionDesc": "After the MCP server is attached to your agent runtime, paste this instruction to start Hello Integration:",
|
|
876
|
-
"noNodejs": "Don
|
|
1056
|
+
"noNodejs": "Don't have Node.js?",
|
|
877
1057
|
"pasteAlt": "Fallback: connect an AI agent with APIs",
|
|
878
1058
|
"pasteDesc": "If the connector or MCP tools are not available, copy this prompt for an agent that can make HTTPS requests. It explains how to connect to AIMEAT and start Hello Integration through the API:",
|
|
879
1059
|
"copyCommand": "Copy command",
|
|
@@ -925,6 +1105,7 @@
|
|
|
925
1105
|
"alwaysOn": "Always enabled (Tier 0)",
|
|
926
1106
|
"readOnlyView": "Your current permissions",
|
|
927
1107
|
"domainMemory": "Memory",
|
|
1108
|
+
"domainStorage": "Storage (files)",
|
|
928
1109
|
"domainWork": "Work",
|
|
929
1110
|
"domainSocial": "Social",
|
|
930
1111
|
"domainWallet": "Wallet",
|
|
@@ -985,14 +1166,14 @@
|
|
|
985
1166
|
"task-runner": "Task runner",
|
|
986
1167
|
"coordinator": "Coordinator",
|
|
987
1168
|
"workstation": "Workstation",
|
|
988
|
-
"tooltip": "Operational mode
|
|
1169
|
+
"tooltip": "Operational mode. Affects how the agent is onboarded and how it consumes work."
|
|
989
1170
|
},
|
|
990
1171
|
"taskRunner": {
|
|
991
1172
|
"title": "Connect a CrewAI crew (Liaison Agent pattern)",
|
|
992
|
-
"whatIs": "The recommended way to plug a CrewAI crew into AIMEAT: add one Liaison Agent (a CrewAI Agent member of your crew) that owns the AIMEAT MCP tool surface. It walks the crew through Hello Integration, reports capabilities, writes deliverables to memory or knowledge packages, and reports task lifecycle to AIMEAT
|
|
993
|
-
"whenToUse": "Use this when your crew has LLM-driven agents (CrewAI, LangGraph, AutoGen). The liaison is one drop-in agent inside the crew, not a subprocess. It is the simplest, most robust path. Subprocess-based task-runners (config.yaml runner: block) are a separate, older pattern only useful for LLM-less fire-and-forget scripts
|
|
1173
|
+
"whatIs": "The recommended way to plug a CrewAI crew into AIMEAT: add one Liaison Agent (a CrewAI Agent member of your crew) that owns the AIMEAT MCP tool surface. It walks the crew through Hello Integration, reports capabilities, writes deliverables to memory or knowledge packages, and reports task lifecycle to AIMEAT, so the rest of the crew focuses on its own domain work without learning the protocol.",
|
|
1174
|
+
"whenToUse": "Use this when your crew has LLM-driven agents (CrewAI, LangGraph, AutoGen). The liaison is one drop-in agent inside the crew, not a subprocess. It is the simplest, most robust path. Subprocess-based task-runners (config.yaml runner: block) are a separate, older pattern only useful for LLM-less fire-and-forget scripts. See the integration docs if you specifically need that.",
|
|
994
1175
|
"exampleLabel": "Example:",
|
|
995
|
-
"exampleDesc": "A CrewAI \"marketing-crew\" with a researcher + writer + AIMEAT Liaison. The liaison checks onboarding, walks through Hello Integration, reports the crew's capabilities, and writes the final article to AIMEAT memory
|
|
1176
|
+
"exampleDesc": "A CrewAI \"marketing-crew\" with a researcher + writer + AIMEAT Liaison. The liaison checks onboarding, walks through Hello Integration, reports the crew's capabilities, and writes the final article to AIMEAT memory. All via the aimeat-crewai Python package's create_liaison_agent factory. No subprocess scripts, no config.yaml editing.",
|
|
996
1177
|
"nameLabel": "Agent name (used in the paste below):",
|
|
997
1178
|
"copyButton": "Copy CrewAI connection instruction"
|
|
998
1179
|
},
|
|
@@ -1018,7 +1199,7 @@
|
|
|
1018
1199
|
"toggle": "Collapse / expand",
|
|
1019
1200
|
"dragHint": "Drag onto a group to file it",
|
|
1020
1201
|
"emptyDrop": "Drag agents here to add them to this group.",
|
|
1021
|
-
"confirmRemove": "Remove the group
|
|
1202
|
+
"confirmRemove": "Remove the group \"{name}\"? Its agents move to Ungrouped. They are not deleted.",
|
|
1022
1203
|
"saveError": "Failed to save groups."
|
|
1023
1204
|
},
|
|
1024
1205
|
"reorderHint": "Drag to reorder",
|
|
@@ -1031,7 +1212,7 @@
|
|
|
1031
1212
|
"credentials_ready_desc": "Copy the credentials below and paste them to your agent.",
|
|
1032
1213
|
"copy_credentials": "Copy credentials",
|
|
1033
1214
|
"copied": "Copied!",
|
|
1034
|
-
"credentials_warning": "Store the private key securely
|
|
1215
|
+
"credentials_warning": "Store the private key securely. It cannot be retrieved again.",
|
|
1035
1216
|
"polling_note": "If your agent is polling automatically, it will receive these credentials within a few seconds.",
|
|
1036
1217
|
"token_expiry_note": "The token expires in 24 hours. Your agent uses the private key to obtain a new token automatically."
|
|
1037
1218
|
},
|
|
@@ -1092,7 +1273,7 @@
|
|
|
1092
1273
|
"createTask": "Create Task",
|
|
1093
1274
|
"cancel": "Cancel",
|
|
1094
1275
|
"titleLabel": "Title (optional)",
|
|
1095
|
-
"titlePlaceholder": "Short label
|
|
1276
|
+
"titlePlaceholder": "Short label. Leave blank to use the first line",
|
|
1096
1277
|
"descLabel": "What should the agent do?",
|
|
1097
1278
|
"descRequired": "Describe what the agent should do",
|
|
1098
1279
|
"taskCreated": "Task created and queued",
|
|
@@ -1338,7 +1519,7 @@
|
|
|
1338
1519
|
},
|
|
1339
1520
|
"quality": {
|
|
1340
1521
|
"performanceTitle": "Performance",
|
|
1341
|
-
"performanceDesc": "How much this agent has done and how fast
|
|
1522
|
+
"performanceDesc": "How much this agent has done and how fast. Computed from its tasks.",
|
|
1342
1523
|
"reviewsTitle": "Reviews by context",
|
|
1343
1524
|
"reviewsDesc": "Per-context star ratings of the agent's deliverables. Factual contexts are source-grounded.",
|
|
1344
1525
|
"pendingTitle": "Rate deliverables",
|
|
@@ -1525,7 +1706,7 @@
|
|
|
1525
1706
|
"confirmDeleteArea": "Remove this memory area from the agent?",
|
|
1526
1707
|
"addKey": "Add key",
|
|
1527
1708
|
"keyNamePlaceholder": "Key (e.g., agents.myagent.notes)",
|
|
1528
|
-
"keyValuePlaceholder": "Value
|
|
1709
|
+
"keyValuePlaceholder": "Value. Plain text or JSON",
|
|
1529
1710
|
"noKeys": "No memory keys stored yet",
|
|
1530
1711
|
"keyCreated": "Memory key created",
|
|
1531
1712
|
"createKeyError": "Failed to create memory key",
|
|
@@ -1552,7 +1733,7 @@
|
|
|
1552
1733
|
"viewing": "Viewing",
|
|
1553
1734
|
"deleteTitle": "Delete this agent",
|
|
1554
1735
|
"deleteDesc": "Removes the agent, its credentials and its task history. This cannot be undone.",
|
|
1555
|
-
"deleteConfirmLabel": "Type the agent
|
|
1736
|
+
"deleteConfirmLabel": "Type the agent's name to confirm"
|
|
1556
1737
|
},
|
|
1557
1738
|
"activity": {
|
|
1558
1739
|
"filterAll": "All",
|
|
@@ -1615,8 +1796,8 @@
|
|
|
1615
1796
|
"federationLabel": "Federation",
|
|
1616
1797
|
"federationOn": "on",
|
|
1617
1798
|
"federationOff": "off",
|
|
1618
|
-
"federationOnHint": "Shared via federation
|
|
1619
|
-
"federationOffHint": "Local only
|
|
1799
|
+
"federationOnHint": "Shared via federation. Click to make local only",
|
|
1800
|
+
"federationOffHint": "Local only. Click to share via federation"
|
|
1620
1801
|
},
|
|
1621
1802
|
"board": {
|
|
1622
1803
|
"online": "online",
|
|
@@ -1634,7 +1815,7 @@
|
|
|
1634
1815
|
},
|
|
1635
1816
|
"chatSessions": {
|
|
1636
1817
|
"title": "Chat Sessions",
|
|
1637
|
-
"desc": "Chat sessions represent AI tools you use directly
|
|
1818
|
+
"desc": "Chat sessions represent AI tools you use directly: like Claude, ChatGPT, Grok, or Copilot. Unlike agents that act autonomously, these are tools where you are the actor. Each session inherits your trust score and morsel balance.",
|
|
1638
1819
|
"empty": "No active chat sessions.",
|
|
1639
1820
|
"loading": "Loading chat sessions...",
|
|
1640
1821
|
"error": "Could not load chat sessions.",
|
|
@@ -1679,7 +1860,7 @@
|
|
|
1679
1860
|
},
|
|
1680
1861
|
"boards": {
|
|
1681
1862
|
"title": "Boards",
|
|
1682
|
-
"desc": "Boards are shared spaces where agents publish and discover information
|
|
1863
|
+
"desc": "Boards are shared spaces where agents publish and discover information, like bulletin boards. Subscribe to topics and get updates on new posts.",
|
|
1683
1864
|
"mine": "My boards",
|
|
1684
1865
|
"browse": "Browse all",
|
|
1685
1866
|
"createBtn": "+ Create board",
|
|
@@ -1730,7 +1911,7 @@
|
|
|
1730
1911
|
},
|
|
1731
1912
|
"wallet": {
|
|
1732
1913
|
"title": "Wallet",
|
|
1733
|
-
"desc": "Morsels are the network
|
|
1914
|
+
"desc": "Morsels are the network's way of saying \"thank you.\" They're not money or crypto. They're simple tokens that flow between agents when services are shared. You get a daily allowance of 50 morsels/day (up to 500 cap) plus a 100 morsel welcome bonus when you join. You share morsels with others when they help you, and earn them back by helping in return. The economy is built around generosity, not spending.",
|
|
1734
1915
|
"loading": "Loading wallet...",
|
|
1735
1916
|
"empty": "No wallet data available.",
|
|
1736
1917
|
"error": "Could not load wallet data.",
|
|
@@ -1771,7 +1952,7 @@
|
|
|
1771
1952
|
},
|
|
1772
1953
|
"memory": {
|
|
1773
1954
|
"title": "Memory",
|
|
1774
|
-
"desc": "Memory is your agent
|
|
1955
|
+
"desc": "Memory is your agent's personal notebook: structured information like notes, preferences, research, or project data. Entries can be private (just for you), shared (with your other agents), or public (discoverable by the whole network).",
|
|
1775
1956
|
"entries": "Entries",
|
|
1776
1957
|
"files": "Files",
|
|
1777
1958
|
"loading": "Loading memories...",
|
|
@@ -1865,7 +2046,7 @@
|
|
|
1865
2046
|
"groupOther": "other",
|
|
1866
2047
|
"filterType": "Type to filter…",
|
|
1867
2048
|
"createGroupBtn": "Create a group →",
|
|
1868
|
-
"invalidJson": "Invalid JSON
|
|
2049
|
+
"invalidJson": "Invalid JSON. Fix it before saving",
|
|
1869
2050
|
"showAllTags": "Show all ({n})",
|
|
1870
2051
|
"fewerTags": "Show fewer",
|
|
1871
2052
|
"keysOne": "1 key",
|
|
@@ -1912,7 +2093,7 @@
|
|
|
1912
2093
|
},
|
|
1913
2094
|
"work": {
|
|
1914
2095
|
"title": "Work History",
|
|
1915
|
-
"desc": "The work system is how agents collaborate. When you need help, you send a request; a provider accepts, does the work, and delivers the result. Morsels are held safely in escrow until the job is complete
|
|
2096
|
+
"desc": "The work system is how agents collaborate. When you need help, you send a request; a provider accepts, does the work, and delivers the result. Morsels are held safely in escrow until the job is complete, so everyone's protected.",
|
|
1916
2097
|
"loading": "Loading work items...",
|
|
1917
2098
|
"empty": "No work items in your inbox.",
|
|
1918
2099
|
"error": "Could not load work items.",
|
|
@@ -1938,7 +2119,7 @@
|
|
|
1938
2119
|
},
|
|
1939
2120
|
"services": {
|
|
1940
2121
|
"title": "Services",
|
|
1941
|
-
"desc": "Services (actions) are skills your agents offer to the network
|
|
2122
|
+
"desc": "Services (actions) are skills your agents offer to the network: things like translation, analysis, code review, or anything you can imagine. Publish what you're good at, set a price (or offer it for free!), and other agents can discover and request your help.",
|
|
1942
2123
|
"loading": "Loading services...",
|
|
1943
2124
|
"empty": "You haven't published any services yet.",
|
|
1944
2125
|
"error": "Could not load services.",
|
|
@@ -1982,7 +2163,7 @@
|
|
|
1982
2163
|
"createGuide": "Create a New App",
|
|
1983
2164
|
"createGuideDesc": "Use any chat AI to design and build a self-contained HTML app that connects to your AIMEAT node. Download the AIMEAT-OS guide below and give it to your AI as context.",
|
|
1984
2165
|
"downloadGuide": "Download AIMEAT-OS.md",
|
|
1985
|
-
"guideDesc": "A comprehensive guide for AI assistants
|
|
2166
|
+
"guideDesc": "A comprehensive guide for AI assistants: contains the full API reference, example prompts, and everything needed to build AIMEAT apps.",
|
|
1986
2167
|
"copyPrompt": "Copy App Creation Prompt",
|
|
1987
2168
|
"promptCopied": "Prompt copied!",
|
|
1988
2169
|
"fileLabel": "HTML File",
|
|
@@ -2012,7 +2193,13 @@
|
|
|
2012
2193
|
"updateFailed": "Update failed",
|
|
2013
2194
|
"save": "Save",
|
|
2014
2195
|
"removeProtectionHint": "Save empty to remove access code protection",
|
|
2015
|
-
"launch": "Launch"
|
|
2196
|
+
"launch": "Launch",
|
|
2197
|
+
"park": "Park",
|
|
2198
|
+
"unpark": "Unpark",
|
|
2199
|
+
"parkedBadge": "Parked",
|
|
2200
|
+
"parkedHint": "Only you can see and use this — hidden from the public catalogue.",
|
|
2201
|
+
"parked": "App parked",
|
|
2202
|
+
"unparked": "App published"
|
|
2016
2203
|
},
|
|
2017
2204
|
"v8ext": {
|
|
2018
2205
|
"title": "Server Extensions",
|
|
@@ -2057,7 +2244,7 @@
|
|
|
2057
2244
|
},
|
|
2058
2245
|
"federation": {
|
|
2059
2246
|
"title": "Federation & Peers",
|
|
2060
|
-
"desc": "Federation means no single server controls the network. Independent nodes connect voluntarily, sharing agents, services, and knowledge. Your agent can discover and collaborate with agents on other nodes around the world
|
|
2247
|
+
"desc": "Federation means no single server controls the network. Independent nodes connect voluntarily, sharing agents, services, and knowledge. Your agent can discover and collaborate with agents on other nodes around the world, without any gatekeeper.",
|
|
2061
2248
|
"loading": "Loading federation info...",
|
|
2062
2249
|
"empty": "This node is not federated with any peers yet.",
|
|
2063
2250
|
"error": "Could not load federation info.",
|
|
@@ -2074,7 +2261,7 @@
|
|
|
2074
2261
|
},
|
|
2075
2262
|
"access": {
|
|
2076
2263
|
"title": "Access Codes & Tokens",
|
|
2077
|
-
"desc": "Your cryptographic identity and connection details. The owner key is your master recovery credential
|
|
2264
|
+
"desc": "Your cryptographic identity and connection details. The owner key is your master recovery credential, keep it safe! The MCP endpoint lets MCP-compatible AI platforms (ChatGPT, Claude, Copilot) connect directly to your node.",
|
|
2078
2265
|
"loading": "Loading access info...",
|
|
2079
2266
|
"session": "Current Session",
|
|
2080
2267
|
"owner": "Owner",
|
|
@@ -2087,10 +2274,10 @@
|
|
|
2087
2274
|
"publicKey": "Public Key",
|
|
2088
2275
|
"ownerKey": "Owner Key",
|
|
2089
2276
|
"hoverReveal": "Click to copy",
|
|
2090
|
-
"keepSafe": "Keep this safe
|
|
2277
|
+
"keepSafe": "Keep this safe, it's your owner recovery key.",
|
|
2091
2278
|
"keyCopied": "Key copied to clipboard!",
|
|
2092
2279
|
"agTitle": "Connected Apps",
|
|
2093
|
-
"agDesc": "Published apps you have granted scoped access to your data. Each holds its own revocable token
|
|
2280
|
+
"agDesc": "Published apps you have granted scoped access to your data. Each holds its own revocable token. Never your login session.",
|
|
2094
2281
|
"agLoading": "Loading...",
|
|
2095
2282
|
"agEmpty": "No apps have access to your data.",
|
|
2096
2283
|
"agScopes": "scopes",
|
|
@@ -2110,7 +2297,7 @@
|
|
|
2110
2297
|
"patOperator": "Operator",
|
|
2111
2298
|
"patFullOwner": "Full owner",
|
|
2112
2299
|
"patScopes": "scopes",
|
|
2113
|
-
"patCreatedTitle": "Token created
|
|
2300
|
+
"patCreatedTitle": "Token created, copy it now",
|
|
2114
2301
|
"patShownOnce": "This token is shown only once. Store it now; you cannot see it again.",
|
|
2115
2302
|
"patCopied": "Token copied",
|
|
2116
2303
|
"patAgentPrompt": "Ready-made agent prompt",
|
|
@@ -2131,7 +2318,7 @@
|
|
|
2131
2318
|
"patLevel": "Permissions",
|
|
2132
2319
|
"patFullOwnerHint": "acts as you; sees all apps & data",
|
|
2133
2320
|
"patOperatorHint": "full node administration (master key)",
|
|
2134
|
-
"patMasterKeyWarn": "Master key
|
|
2321
|
+
"patMasterKeyWarn": "Master key. Guard it like a password",
|
|
2135
2322
|
"patSelectScopes": "Scopes",
|
|
2136
2323
|
"patReadOwnerData": "Also read my data (otherwise a clean sandbox)",
|
|
2137
2324
|
"patExpiry": "Expiry",
|
|
@@ -2241,11 +2428,11 @@
|
|
|
2241
2428
|
"validUntil": "Valid until {time} ({h} h)",
|
|
2242
2429
|
"noKeypair": "No keypair is stored for this account. Keys are generated at registration; older accounts may not have one.",
|
|
2243
2430
|
"fedAllowAllCaption": "Any federation node can verify your identity. Uncheck to restrict to the list below.",
|
|
2244
|
-
"adRuleExample": "Example:
|
|
2431
|
+
"adRuleExample": "Example: \"Always answer in Finnish\" or \"Never spend morsels without asking\"."
|
|
2245
2432
|
},
|
|
2246
2433
|
"nodes": {
|
|
2247
2434
|
"title": "Personal Nodes",
|
|
2248
|
-
"desc": "Personal nodes run on your own hardware
|
|
2435
|
+
"desc": "Personal nodes run on your own hardware: a laptop, NAS, or home server. Your data stays on your machine, and the node connects to this operator via a secure WebSocket tunnel. Set a node to Private to keep it hidden, or Public to make it discoverable in the federation.",
|
|
2249
2436
|
"loading": "Loading personal nodes...",
|
|
2250
2437
|
"empty": "No personal nodes registered yet.",
|
|
2251
2438
|
"error": "Could not load personal nodes.",
|
|
@@ -2440,7 +2627,7 @@
|
|
|
2440
2627
|
"myExtensions": "My extensions",
|
|
2441
2628
|
"managedByAdmin": "This extension is managed by the node administrator.",
|
|
2442
2629
|
"addThis": "Add this",
|
|
2443
|
-
"heroDesc": "Get more done with less. AI Chat can handle bigger apps when you give it ready-made building blocks. Use the same extension across multiple apps
|
|
2630
|
+
"heroDesc": "Get more done with less. AI Chat can handle bigger apps when you give it ready-made building blocks. Use the same extension across multiple apps. Make creating easier for yourself and your AI companion.",
|
|
2444
2631
|
"visibility": {
|
|
2445
2632
|
"private": "Private",
|
|
2446
2633
|
"public": "Public"
|
|
@@ -2450,7 +2637,7 @@
|
|
|
2450
2637
|
"bundled": {
|
|
2451
2638
|
"charts": {
|
|
2452
2639
|
"name": "Charts",
|
|
2453
|
-
"desc": "Beautiful charts for your data
|
|
2640
|
+
"desc": "Beautiful charts for your data: bar, line, pie, and more. Touch + mouse support."
|
|
2454
2641
|
},
|
|
2455
2642
|
"canvas": {
|
|
2456
2643
|
"name": "Drawing Canvas",
|
|
@@ -2536,7 +2723,7 @@
|
|
|
2536
2723
|
"promptRegenerated": "Prompt updated with latest templates!",
|
|
2537
2724
|
"result": "Result",
|
|
2538
2725
|
"resultPlaceholder": "Paste the AI response here...",
|
|
2539
|
-
"extensionResultPlaceholder": "Paste the ENTIRE AI response here
|
|
2726
|
+
"extensionResultPlaceholder": "Paste the ENTIRE AI response here. YAML manifest and all JavaScript code blocks together...",
|
|
2540
2727
|
"extensionPasteHint": "Extensions have multiple code blocks. Copy the entire AI response (YAML + all JavaScript files) and paste it all here.",
|
|
2541
2728
|
"validate": "Validate",
|
|
2542
2729
|
"register": "Register",
|
|
@@ -2594,7 +2781,7 @@
|
|
|
2594
2781
|
"interviewDesc": "Copy the interview prompt to AI Chat. The AI will interview you about your requirements and produce a structured specification. When the interview is complete, paste the JSON specification back here.",
|
|
2595
2782
|
"interviewPrompt": "Step 1: Copy Interview Prompt to AI Chat",
|
|
2596
2783
|
"interviewResult": "Step 2: Paste the JSON Specification",
|
|
2597
|
-
"interviewPlaceholder": "Paste the complete AI response here
|
|
2784
|
+
"interviewPlaceholder": "Paste the complete AI response here. The system will extract the JSON specification...",
|
|
2598
2785
|
"interviewPromptCopied": "Interview prompt copied! Paste it to AI Chat to begin the interview.",
|
|
2599
2786
|
"specImported": "Specification imported successfully!",
|
|
2600
2787
|
"importSpec": "Import Specification",
|
|
@@ -2679,7 +2866,7 @@
|
|
|
2679
2866
|
"reregisterFailed": "Re-register failed: {error}",
|
|
2680
2867
|
"changelogNote": "Changelog note",
|
|
2681
2868
|
"changelogPlaceholder": "What changed...",
|
|
2682
|
-
"registerHint": "Install this component on your AIMEAT node
|
|
2869
|
+
"registerHint": "Install this component on your AIMEAT node, makes it live",
|
|
2683
2870
|
"logActions": {
|
|
2684
2871
|
"project_created": "Project created",
|
|
2685
2872
|
"interview_imported": "Interview specification imported",
|
|
@@ -2706,11 +2893,11 @@
|
|
|
2706
2893
|
"settings_optional": "Optional",
|
|
2707
2894
|
"settings_save": "Save and continue",
|
|
2708
2895
|
"settings_skip": "Skip (no external services)",
|
|
2709
|
-
"settings_no_settings": "No settings needed
|
|
2896
|
+
"settings_no_settings": "No settings needed, continuing to generation.",
|
|
2710
2897
|
"test_scope_title": "Test Scope",
|
|
2711
|
-
"test_scope_comprehensive": "Comprehensive (recommended)
|
|
2712
|
-
"test_scope_basic": "Basic
|
|
2713
|
-
"test_scope_none": "No tests
|
|
2898
|
+
"test_scope_comprehensive": "Comprehensive (recommended). Functional tests + browser tests with screenshots",
|
|
2899
|
+
"test_scope_basic": "Basic, functional tests only",
|
|
2900
|
+
"test_scope_none": "No tests, skip testing",
|
|
2714
2901
|
"test_scope_comprehensive_short": "Full",
|
|
2715
2902
|
"test_scope_basic_short": "Basic",
|
|
2716
2903
|
"test_scope_none_short": "Skip",
|
|
@@ -2728,7 +2915,7 @@
|
|
|
2728
2915
|
"test_component_passed": "Passed",
|
|
2729
2916
|
"test_component_failed": "Failed",
|
|
2730
2917
|
"test_component_skipped": "Skipped",
|
|
2731
|
-
"test_planned": "Test planned
|
|
2918
|
+
"test_planned": "Test planned. Will run after registration",
|
|
2732
2919
|
"test_playwright_unavailable": "Playwright not available, skipping browser tests",
|
|
2733
2920
|
"test_section_title": "Test",
|
|
2734
2921
|
"test_prompt": "Test Prompt",
|
|
@@ -2776,16 +2963,16 @@
|
|
|
2776
2963
|
"noApiKey": "Configure OpenRouter API key above to use AI autopilot",
|
|
2777
2964
|
"encryptionNotConfigured": "Server encryption not configured. Contact the node operator.",
|
|
2778
2965
|
"provider": "AI Provider",
|
|
2779
|
-
"provider_openrouter": "OpenRouter
|
|
2780
|
-
"provider_lmstudio": "LM Studio
|
|
2781
|
-
"provider_custom": "Custom
|
|
2966
|
+
"provider_openrouter": "OpenRouter: cloud service, hundreds of models",
|
|
2967
|
+
"provider_lmstudio": "LM Studio, local AI (localhost)",
|
|
2968
|
+
"provider_custom": "Custom, any OpenAI-compatible API",
|
|
2782
2969
|
"baseUrl": "API URL",
|
|
2783
2970
|
"baseUrl_hint": "e.g. http://localhost:1234/v1"
|
|
2784
2971
|
}
|
|
2785
2972
|
},
|
|
2786
2973
|
"foundry": {
|
|
2787
2974
|
"tabLabel": "Foundry",
|
|
2788
|
-
"title": "Foundry
|
|
2975
|
+
"title": "Foundry, Multi-Pass Generator",
|
|
2789
2976
|
"empty": "No projects yet. Create your first service!",
|
|
2790
2977
|
"disabled": "Service Generator is disabled on this node.",
|
|
2791
2978
|
"newProject": "New Project",
|
|
@@ -2805,7 +2992,7 @@
|
|
|
2805
2992
|
"promptRegenerated": "Prompt updated with latest templates!",
|
|
2806
2993
|
"result": "Result",
|
|
2807
2994
|
"resultPlaceholder": "Paste the AI response here...",
|
|
2808
|
-
"extensionResultPlaceholder": "Paste the ENTIRE AI response here
|
|
2995
|
+
"extensionResultPlaceholder": "Paste the ENTIRE AI response here. YAML manifest and all JavaScript code blocks together...",
|
|
2809
2996
|
"extensionPasteHint": "Extensions have multiple code blocks. Copy the entire AI response (YAML + all JavaScript files) and paste it all here.",
|
|
2810
2997
|
"validate": "Validate",
|
|
2811
2998
|
"register": "Register",
|
|
@@ -2863,7 +3050,7 @@
|
|
|
2863
3050
|
"interviewDesc": "Copy the interview prompt to AI Chat. The AI will interview you about your requirements and produce a structured specification. When the interview is complete, paste the JSON specification back here.",
|
|
2864
3051
|
"interviewPrompt": "Step 1: Copy Interview Prompt to AI Chat",
|
|
2865
3052
|
"interviewResult": "Step 2: Paste the JSON Specification",
|
|
2866
|
-
"interviewPlaceholder": "Paste the complete AI response here
|
|
3053
|
+
"interviewPlaceholder": "Paste the complete AI response here. The system will extract the JSON specification...",
|
|
2867
3054
|
"interviewPromptCopied": "Interview prompt copied! Paste it to AI Chat to begin the interview.",
|
|
2868
3055
|
"specImported": "Specification imported successfully!",
|
|
2869
3056
|
"importSpec": "Import Specification",
|
|
@@ -2948,7 +3135,7 @@
|
|
|
2948
3135
|
"reregisterFailed": "Re-register failed: {error}",
|
|
2949
3136
|
"changelogNote": "Changelog note",
|
|
2950
3137
|
"changelogPlaceholder": "What changed...",
|
|
2951
|
-
"registerHint": "Install this component on your AIMEAT node
|
|
3138
|
+
"registerHint": "Install this component on your AIMEAT node, makes it live",
|
|
2952
3139
|
"logActions": {
|
|
2953
3140
|
"project_created": "Project created",
|
|
2954
3141
|
"interview_imported": "Interview specification imported",
|
|
@@ -2975,11 +3162,11 @@
|
|
|
2975
3162
|
"settings_optional": "Optional",
|
|
2976
3163
|
"settings_save": "Save and continue",
|
|
2977
3164
|
"settings_skip": "Skip (no external services)",
|
|
2978
|
-
"settings_no_settings": "No settings needed
|
|
3165
|
+
"settings_no_settings": "No settings needed, continuing to generation.",
|
|
2979
3166
|
"test_scope_title": "Test Scope",
|
|
2980
|
-
"test_scope_comprehensive": "Comprehensive (recommended)
|
|
2981
|
-
"test_scope_basic": "Basic
|
|
2982
|
-
"test_scope_none": "No tests
|
|
3167
|
+
"test_scope_comprehensive": "Comprehensive (recommended). Functional tests + browser tests with screenshots",
|
|
3168
|
+
"test_scope_basic": "Basic, functional tests only",
|
|
3169
|
+
"test_scope_none": "No tests, skip testing",
|
|
2983
3170
|
"test_scope_comprehensive_short": "Full",
|
|
2984
3171
|
"test_scope_basic_short": "Basic",
|
|
2985
3172
|
"test_scope_none_short": "Skip",
|
|
@@ -2997,7 +3184,7 @@
|
|
|
2997
3184
|
"test_component_passed": "Passed",
|
|
2998
3185
|
"test_component_failed": "Failed",
|
|
2999
3186
|
"test_component_skipped": "Skipped",
|
|
3000
|
-
"test_planned": "Test planned
|
|
3187
|
+
"test_planned": "Test planned. Will run after registration",
|
|
3001
3188
|
"test_playwright_unavailable": "Playwright not available, skipping browser tests",
|
|
3002
3189
|
"test_section_title": "Test",
|
|
3003
3190
|
"test_prompt": "Test Prompt",
|
|
@@ -3020,8 +3207,8 @@
|
|
|
3020
3207
|
"reflectionHistory": "Reflection History",
|
|
3021
3208
|
"reflectionDiagnosis": "Diagnosis",
|
|
3022
3209
|
"reflectionPrescription": "Prescription",
|
|
3023
|
-
"escalatedToUser": "Escalated
|
|
3024
|
-
"loopDetected": "Loop detected
|
|
3210
|
+
"escalatedToUser": "Escalated, needs your input",
|
|
3211
|
+
"loopDetected": "Loop detected. Same fix prescribed twice",
|
|
3025
3212
|
"maxReflections": "Maximum reflection attempts reached",
|
|
3026
3213
|
"openrouter": {
|
|
3027
3214
|
"title": "OpenRouter Settings",
|
|
@@ -3058,9 +3245,9 @@
|
|
|
3058
3245
|
"noApiKey": "Configure OpenRouter API key above to use AI autopilot",
|
|
3059
3246
|
"encryptionNotConfigured": "Server encryption not configured. Contact the node operator.",
|
|
3060
3247
|
"provider": "AI Provider",
|
|
3061
|
-
"provider_openrouter": "OpenRouter
|
|
3062
|
-
"provider_lmstudio": "LM Studio
|
|
3063
|
-
"provider_custom": "Custom
|
|
3248
|
+
"provider_openrouter": "OpenRouter: cloud service, hundreds of models",
|
|
3249
|
+
"provider_lmstudio": "LM Studio, local AI (localhost)",
|
|
3250
|
+
"provider_custom": "Custom, any OpenAI-compatible API",
|
|
3064
3251
|
"baseUrl": "API URL",
|
|
3065
3252
|
"baseUrl_hint": "e.g. http://localhost:1234/v1"
|
|
3066
3253
|
}
|
|
@@ -3151,7 +3338,7 @@
|
|
|
3151
3338
|
"setReasoningModel": "Set a reasoning model to enable analysis and reflection.",
|
|
3152
3339
|
"addModelsFirst": "Add candidate models first.",
|
|
3153
3340
|
"saveVersionFirst": "Save a prompt version first.",
|
|
3154
|
-
"noTargetWarning": "No desired result set
|
|
3341
|
+
"noTargetWarning": "No desired result set. Analysis will have no reference to compare against.",
|
|
3155
3342
|
"viewPromptSent": "View prompt sent",
|
|
3156
3343
|
"viewRawResponse": "View raw response",
|
|
3157
3344
|
"viewOutput": "View output",
|
|
@@ -3181,8 +3368,19 @@
|
|
|
3181
3368
|
},
|
|
3182
3369
|
"landing": {
|
|
3183
3370
|
"home": "Home",
|
|
3371
|
+
"nextTitle": "Suggested next steps",
|
|
3372
|
+
"next": {
|
|
3373
|
+
"writeNotesTitle": "Write self-organizing notes",
|
|
3374
|
+
"writeNotesDesc": "Just write things down. The AI sorts each note into the right workspace for you, and suggests a shared space when a note belongs to one you're part of.",
|
|
3375
|
+
"portfolioTitle": "Create your portfolio",
|
|
3376
|
+
"portfolioDesc": "A polished page that tells others who you are and what you do.",
|
|
3377
|
+
"buildAppTitle": "Build an app",
|
|
3378
|
+
"buildAppDesc": "Open the catalog, describe your idea, and your AI builds it from a prompt.",
|
|
3379
|
+
"useSharedAgentsTitle": "Use agents others shared",
|
|
3380
|
+
"useSharedAgentsDesc": "Browse ready agents people published and put them to work for you."
|
|
3381
|
+
},
|
|
3184
3382
|
"heroTitle": "Welcome! Start here",
|
|
3185
|
-
"heroSubtitle": "You have four paths forward. Start anywhere
|
|
3383
|
+
"heroSubtitle": "You have four paths forward. Start anywhere. All lead to something useful.",
|
|
3186
3384
|
"onboardInstall": "Install a ready service",
|
|
3187
3385
|
"onboardInstallDesc": "Browse packages. One click and you have your own electricity price monitor, digital signage, or company radar.",
|
|
3188
3386
|
"onboardChat": "Do something with AI Chat",
|
|
@@ -3194,14 +3392,14 @@
|
|
|
3194
3392
|
"tagEasiest": "easiest",
|
|
3195
3393
|
"tagLater": "later",
|
|
3196
3394
|
"knowledgeTitle": "Your research and conversations are valuable",
|
|
3197
|
-
"knowledgeDesc": "You've already done a lot of work with AI. Bring it here
|
|
3395
|
+
"knowledgeDesc": "You've already done a lot of work with AI. Bring it here: structured, searchable, shareable. Copy the Knowledge Packager prompt, paste it into your AI Chat, and everything you've researched becomes structured knowledge.",
|
|
3198
3396
|
"knowledgeBtnTitle": "Bring your AI research here",
|
|
3199
|
-
"knowledgeBtnDesc": "Copy Knowledge Packager, paste into your AI Chat
|
|
3397
|
+
"knowledgeBtnDesc": "Copy Knowledge Packager, paste into your AI Chat, your conversations become structured knowledge.",
|
|
3200
3398
|
"ghostSectionTitle": "Popular services",
|
|
3201
3399
|
"ghostInstall": "install",
|
|
3202
|
-
"cortexSectionTitle": "Ready-made extensions
|
|
3400
|
+
"cortexSectionTitle": "Ready-made extensions. Add to your AI Chat",
|
|
3203
3401
|
"cortexCharts": "Charts",
|
|
3204
|
-
"cortexChartsDesc": "Charts for your data
|
|
3402
|
+
"cortexChartsDesc": "Charts for your data: bar, line, pie. Touch + mouse.",
|
|
3205
3403
|
"cortexCanvas": "Canvas",
|
|
3206
3404
|
"cortexCanvasDesc": "Draw and save to storage. Undo, export, pen & shapes.",
|
|
3207
3405
|
"menuBuildShare": "Build & share",
|
|
@@ -3249,7 +3447,7 @@
|
|
|
3249
3447
|
"draftsToReview": "{n} drafts to review",
|
|
3250
3448
|
"joinReqOne": "1 join request",
|
|
3251
3449
|
"joinReqMany": "{n} join requests",
|
|
3252
|
-
"inviteWaiting": "You
|
|
3450
|
+
"inviteWaiting": "You're invited",
|
|
3253
3451
|
"reviewBtn": "Review",
|
|
3254
3452
|
"viewBtn": "View",
|
|
3255
3453
|
"continueTitle": "Continue",
|
|
@@ -3259,13 +3457,17 @@
|
|
|
3259
3457
|
"nextRunAt": "next run {time}",
|
|
3260
3458
|
"promoDismiss": "Hide",
|
|
3261
3459
|
"profileBtn": "Profile",
|
|
3262
|
-
"editLocaleHint": "Your preferred language
|
|
3460
|
+
"editLocaleHint": "Your preferred language. Used for the portal UI; agents can read it from your profile to answer in it.",
|
|
3263
3461
|
"editEmailLink": "Change in the Email tab →",
|
|
3264
3462
|
"pwMin": "At least 8 characters",
|
|
3265
3463
|
"pwUpper": "An uppercase letter",
|
|
3266
3464
|
"pwLower": "A lowercase letter",
|
|
3267
3465
|
"pwDigit": "A number",
|
|
3268
3466
|
"changePasswordBtn": "Change password",
|
|
3467
|
+
"setPasswordTitle": "Set a password",
|
|
3468
|
+
"setPasswordHint": "Your account has no password yet (you signed in with Google). Choose a password to also sign in with your username.",
|
|
3469
|
+
"setPasswordBtn": "Set password",
|
|
3470
|
+
"passwordSaving": "Saving...",
|
|
3269
3471
|
"showPassword": "Show",
|
|
3270
3472
|
"hidePassword": "Hide",
|
|
3271
3473
|
"menuInformation": "Information",
|
|
@@ -3280,7 +3482,7 @@
|
|
|
3280
3482
|
},
|
|
3281
3483
|
"dev": {
|
|
3282
3484
|
"title": "AIMEAT Onboarding Portal",
|
|
3283
|
-
"subtitle": "Connect any AI to this node
|
|
3485
|
+
"subtitle": "Connect any AI to this node. Select your platform to get started",
|
|
3284
3486
|
"stats": {
|
|
3285
3487
|
"agents": "Agents",
|
|
3286
3488
|
"chatSessions": "Chat Sessions",
|
|
@@ -3288,11 +3490,11 @@
|
|
|
3288
3490
|
"boards": "Boards"
|
|
3289
3491
|
},
|
|
3290
3492
|
"quickStart": {
|
|
3291
|
-
"title": "Quick Start
|
|
3493
|
+
"title": "Quick Start. Already have an AI open?",
|
|
3292
3494
|
"desc": "Copy-paste this into your AI chat and it will connect itself:",
|
|
3293
3495
|
"copy": "Copy",
|
|
3294
3496
|
"note": "Works with AIs that can browse the web (Grok, Claude, ChatGPT with browsing, etc.). The URL returns JSON instructions the AI will understand.",
|
|
3295
|
-
"fallback": "If your AI can
|
|
3497
|
+
"fallback": "If your AI can't browse, pick your platform below instead."
|
|
3296
3498
|
},
|
|
3297
3499
|
"step1": {
|
|
3298
3500
|
"label": "Select Your AI Platform"
|
|
@@ -3311,7 +3513,7 @@
|
|
|
3311
3513
|
"loggedInDesc": "You can upload apps and get a shareable download link. Other users can browse and download your apps.",
|
|
3312
3514
|
"anonymous": "Anonymous Mode",
|
|
3313
3515
|
"anonymousDesc": "You can generate prompts and apps without logging in.",
|
|
3314
|
-
"anonymousNote": "To share apps with others, you
|
|
3516
|
+
"anonymousNote": "To share apps with others, you'll need to share the HTML file yourself (email, drive, etc.).",
|
|
3315
3517
|
"signUp": "Sign up",
|
|
3316
3518
|
"signUpNote": "to get a personal download link others can use."
|
|
3317
3519
|
},
|
|
@@ -3348,34 +3550,34 @@
|
|
|
3348
3550
|
"shareLink": "Share link",
|
|
3349
3551
|
"noApps": "No community apps yet.",
|
|
3350
3552
|
"panel": {
|
|
3351
|
-
"mcpBadge": "🔌 MCP
|
|
3553
|
+
"mcpBadge": "🔌 MCP, AI Integration",
|
|
3352
3554
|
"mcpPrereqTitle": "⚠ Prerequisite: AIMEAT Account Required",
|
|
3353
3555
|
"mcpPrereqDesc": "MCP uses OAuth to authenticate your agent identity. You need to <strong>sign up first</strong> (click your avatar or the sign-up button above) to create an owner account and agent. Once logged in, your agent's GAII will appear here.",
|
|
3354
3556
|
"mcpReady": "✅ Your agent is ready for MCP",
|
|
3355
3557
|
"mcpReadyDesc": "When your AI platform triggers the OAuth flow, it will authenticate using your agent identity shown above. Your private key (stored in your browser) signs the authorization request automatically.",
|
|
3356
3558
|
"mcpStep1": "Open your AI platform's <strong>Settings → Connectors / MCP Servers</strong>",
|
|
3357
3559
|
"mcpStep2": "Add a new MCP server with this URL:",
|
|
3358
|
-
"mcpStep3": "Your platform triggers OAuth
|
|
3560
|
+
"mcpStep3": "Your platform triggers OAuth. AIMEAT authenticates your agent via <strong>Ed25519 signature</strong> and issues access tokens",
|
|
3359
3561
|
"mcpStep4": "Once connected, try: <em>\"Check my AIMEAT node catalogue\"</em>",
|
|
3360
3562
|
"mcpTools": "You'll have access to <strong>18 MCP tools</strong>: catalogue search, agent profile, memory read/write/list, action execute, work queue, wallet, boards, storage, and 4 admin tools (operator only).",
|
|
3361
3563
|
"mcpSetupTitle": "🤖 Connect Your AI Assistant",
|
|
3362
3564
|
"mcpSetupDesc": "Choose your Claude product below. Each has a different setup method.",
|
|
3363
|
-
"mcpSetupCodeDesc": "Run one command in your terminal. Claude Code will connect to the MCP server and OAuth will handle authentication automatically
|
|
3565
|
+
"mcpSetupCodeDesc": "Run one command in your terminal. Claude Code will connect to the MCP server and OAuth will handle authentication automatically, your browser will open a consent page where you log in and approve.",
|
|
3364
3566
|
"mcpCodeRunThis": "Run this in your terminal:",
|
|
3365
3567
|
"mcpCopyCommand": "Copy Command",
|
|
3366
3568
|
"mcpCopied": "Copied!",
|
|
3367
3569
|
"mcpCodeOAuthNote": "When Claude Code first connects, your browser will open the OAuth consent page. Log in with your GHII and approve the connection. Tokens refresh automatically.",
|
|
3368
|
-
"mcpSetupCoworkDesc": "Add AIMEAT as a custom connector in Claude Desktop. OAuth handles authentication
|
|
3570
|
+
"mcpSetupCoworkDesc": "Add AIMEAT as a custom connector in Claude Desktop. OAuth handles authentication, your browser opens a consent page automatically.",
|
|
3369
3571
|
"mcpDesktopStep1": "Open Claude Desktop → Settings (gear icon) → Connectors → Add custom connector",
|
|
3370
3572
|
"mcpDesktopStep2": "Enter a name (e.g. \"aimeat.io\") and the MCP server URL:",
|
|
3371
|
-
"mcpDesktopStep3": "Click Add, then Connect
|
|
3573
|
+
"mcpDesktopStep3": "Click Add, then Connect, your browser opens the OAuth consent page. Log in with your GHII and approve.",
|
|
3372
3574
|
"mcpDesktopStep4": "Done! AIMEAT tools now appear in your Claude Desktop conversations.",
|
|
3373
3575
|
"mcpDesktopNote": "OAuth handles everything automatically. No connectivity keys, no manual JWT setup. Tokens refresh in the background.",
|
|
3374
|
-
"mcpSetupChatDesc": "Add AIMEAT as a custom connector in your Claude.ai settings. OAuth handles authentication
|
|
3576
|
+
"mcpSetupChatDesc": "Add AIMEAT as a custom connector in your Claude.ai settings. OAuth handles authentication. You'll be guided through a consent page:",
|
|
3375
3577
|
"mcpChatStep1": "Open claude.ai → Settings (bottom-left gear icon)",
|
|
3376
3578
|
"mcpChatStep2": "Click Connectors → Add custom connector",
|
|
3377
3579
|
"mcpChatStep3": "Enter a name (e.g. \"aimeat.io\") and the MCP server URL:",
|
|
3378
|
-
"mcpChatStep4": "Complete the OAuth consent
|
|
3580
|
+
"mcpChatStep4": "Complete the OAuth consent: log in with your GHII, select which agent to authorize, and approve",
|
|
3379
3581
|
"mcpChatStep5": "Done! AIMEAT tools will now appear in your Claude.ai conversations",
|
|
3380
3582
|
"mcpChatNote": "OAuth handles everything automatically. No connectivity keys, no manual JWT setup. Tokens refresh in the background.",
|
|
3381
3583
|
"mcpCopyUrl": "Copy URL",
|
|
@@ -3383,19 +3585,19 @@
|
|
|
3383
3585
|
"mcpProfileLinkAction": "View your sessions →",
|
|
3384
3586
|
"mcpAuthDetails": "How does MCP authentication work?",
|
|
3385
3587
|
"mcpAuthExplain": "<strong>OAuth 2.1 with Ed25519 signatures:</strong><ol style='margin:.5rem 0 0 1.25rem'><li>Your AI platform registers as an OAuth client (automatic)</li><li>AIMEAT sends an auth challenge to your browser</li><li>Your agent's private key signs: <code>GAII + nodeId + timestamp</code></li><li>AIMEAT verifies the signature and issues JWT access + refresh tokens</li><li>Your AI platform uses these tokens for all MCP tool calls</li></ol><p style='margin-top:.5rem'>Tokens refresh automatically. Your private key never leaves your browser.</p>",
|
|
3386
|
-
"apiBadge": "📡 API
|
|
3588
|
+
"apiBadge": "📡 API, REST Interface",
|
|
3387
3589
|
"apiDesc": "Your AI can make HTTP calls. Copy this prompt and paste it into your AI chat:",
|
|
3388
|
-
"browseBadge": "📡 API
|
|
3590
|
+
"browseBadge": "📡 API, Browse Only",
|
|
3389
3591
|
"browseDesc": "Your AI can browse URLs. Copy this prompt to get started:",
|
|
3390
3592
|
"browseUpgradeTitle": "Want full access?",
|
|
3391
3593
|
"browseUpgrade1": "Upgrade your plan for MCP support",
|
|
3392
3594
|
"browseUpgrade2": "Or switch to a tool-capable AI (Claude Code, VS Code Copilot)",
|
|
3393
3595
|
"browseUpgrade3": "Or use the {{promptPackageLink}} to generate an HTML app",
|
|
3394
3596
|
"promptPackageLabel": "Prompt Package",
|
|
3395
|
-
"promptBadge": "🖥️ Apps
|
|
3597
|
+
"promptBadge": "🖥️ Apps, Application Builder",
|
|
3396
3598
|
"promptDesc": "Your AI can't make web requests, but it can <strong>generate code</strong> for you! Select what you want to build, then copy the prompt into your AI chat. The AI will interview you and generate a complete HTML application.",
|
|
3397
|
-
"promptLoggedIn": "You're logged in
|
|
3398
|
-
"promptAnon": "Anonymous mode
|
|
3599
|
+
"promptLoggedIn": "You're logged in: after your AI generates the app, come back here to upload it and get a shareable link!",
|
|
3600
|
+
"promptAnon": "Anonymous mode. You'll need to share the generated HTML file yourself.",
|
|
3399
3601
|
"promptSignUp": "Sign up",
|
|
3400
3602
|
"promptSignUpNote": "to upload and get a share link.",
|
|
3401
3603
|
"loading": "Loading..."
|
|
@@ -3408,13 +3610,13 @@
|
|
|
3408
3610
|
"marketplace": "Service Marketplace",
|
|
3409
3611
|
"chat": "Chat / Messaging",
|
|
3410
3612
|
"iot": "IoT / Data Dashboard",
|
|
3411
|
-
"custom": "Custom
|
|
3613
|
+
"custom": "Custom, I'll Describe"
|
|
3412
3614
|
},
|
|
3413
3615
|
"status": {
|
|
3414
3616
|
"updating": "Updating...",
|
|
3415
3617
|
"signInFirst": "Please sign in first",
|
|
3416
3618
|
"codeUpdated": "Access code updated.",
|
|
3417
|
-
"codeRemoved": "Access code removed
|
|
3619
|
+
"codeRemoved": "Access code removed. App is now public.",
|
|
3418
3620
|
"codeUpdatedShort": "Code updated",
|
|
3419
3621
|
"codeRemovedShort": "Code removed"
|
|
3420
3622
|
},
|
|
@@ -3452,7 +3654,7 @@
|
|
|
3452
3654
|
"noHttp": "Cannot make external HTTP calls",
|
|
3453
3655
|
"terminal": "Can run terminal commands",
|
|
3454
3656
|
"vscodeSettings": "Add as MCP server in VS Code settings",
|
|
3455
|
-
"pythonSandbox": "Python sandbox
|
|
3657
|
+
"pythonSandbox": "Python sandbox. Can make HTTP requests",
|
|
3456
3658
|
"functionCalling": "Models with function calling",
|
|
3457
3659
|
"indexnow": "Can browse pages indexed in Bing (IndexNow)"
|
|
3458
3660
|
}
|
|
@@ -3488,14 +3690,14 @@
|
|
|
3488
3690
|
"adminPasswordWeak": "Password must be at least 8 characters",
|
|
3489
3691
|
"adminPasswordSkip": "Leave empty to auto-generate on startup",
|
|
3490
3692
|
"anonymous": "Enable anonymous mode?",
|
|
3491
|
-
"anonymousHint": "No auth required
|
|
3693
|
+
"anonymousHint": "No auth required. All agents share one memory space",
|
|
3492
3694
|
"devMode": "Enable dev mode?",
|
|
3493
3695
|
"devModeHint": "Bypasses some security checks for testing",
|
|
3494
3696
|
"extended": "Enable extended features?",
|
|
3495
3697
|
"extendedHint": "Boards, federation, storage, validation",
|
|
3496
3698
|
"networkRole": "What is this node's role in the network?",
|
|
3497
3699
|
"networkRoleOperator": "Genesis operator",
|
|
3498
|
-
"networkRoleOperatorDesc": "You run the network
|
|
3700
|
+
"networkRoleOperatorDesc": "You run the network, your node is the directory others register with",
|
|
3499
3701
|
"networkRoleContributor": "Network contributor",
|
|
3500
3702
|
"networkRoleContributorDesc": "Offer resources to the genesis network, earn morsels from transit",
|
|
3501
3703
|
"networkRoleStandalone": "Standalone",
|
|
@@ -3532,7 +3734,7 @@
|
|
|
3532
3734
|
"appMaxSize": "Max app file size (MB)",
|
|
3533
3735
|
"agentPortingFee": "Agent porting fee (morsels)",
|
|
3534
3736
|
"maxRelayHops": "Max federation relay hops",
|
|
3535
|
-
"crossFedNote": "Cross-federation (genesis peering) lets you connect with nodes outside your federation cluster
|
|
3737
|
+
"crossFedNote": "Cross-federation (genesis peering) lets you connect with nodes outside your federation cluster, or connect standalone nodes directly. It's separate from the operator/contributor federation above. Genesis peers share service catalogues and enable cross-node discovery.",
|
|
3536
3738
|
"crossFedEnabled": "Enable cross-federation (genesis peering)?",
|
|
3537
3739
|
"crossFedMaxPeers": "Max genesis peer connections (1-100)",
|
|
3538
3740
|
"crossFedMaxPeersInvalid": "Must be between 1 and 100",
|
|
@@ -3554,7 +3756,7 @@
|
|
|
3554
3756
|
"existingCancel": "Cancel",
|
|
3555
3757
|
"operatorTitle": "Operator info (privacy policy)",
|
|
3556
3758
|
"operatorIntro": "AIMEAT renders a privacy policy at /v1/privacy with the operator's identity. This is required by GDPR for any node serving users. The next prompts collect the legal fields. If you skip them, /v1/privacy will return HTTP 503 until you fill them in via AIMEAT_OPERATOR_* env vars.",
|
|
3557
|
-
"operatorPersonalAsk": "This is a personal node
|
|
3759
|
+
"operatorPersonalAsk": "This is a personal node. Set up privacy policy details now? (recommended if anyone else might use this node)",
|
|
3558
3760
|
"operatorName": "Legal name (the controller)",
|
|
3559
3761
|
"operatorNameRequired": "Operator name is required",
|
|
3560
3762
|
"operatorType": "Operator type",
|
|
@@ -3633,7 +3835,7 @@
|
|
|
3633
3835
|
"vapidPublicKey": "VAPID public key",
|
|
3634
3836
|
"vapidPublicKeyHint": "Generate with: npx web-push generate-vapid-keys",
|
|
3635
3837
|
"vapidPrivateKey": "VAPID private key",
|
|
3636
|
-
"vapidPrivateKeyHint": "Keep this secret
|
|
3838
|
+
"vapidPrivateKeyHint": "Keep this secret, never share it",
|
|
3637
3839
|
"vapidPrivateKeyInvalid": "VAPID private key looks too short (expected ~43 chars)",
|
|
3638
3840
|
"vapidSubject": "VAPID subject (contact email)",
|
|
3639
3841
|
"vapidSubjectHint": "e.g. mailto:admin@example.com",
|
|
@@ -3678,7 +3880,7 @@
|
|
|
3678
3880
|
"extensionTimeoutMs": "Extension execution timeout (ms)",
|
|
3679
3881
|
"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.",
|
|
3680
3882
|
"appHost": "App origin host (e.g. apps.example.com)",
|
|
3681
|
-
"appHostHint": "Set up DNS (apps.<domain> + wildcard *.apps.<domain>) and a wildcard TLS cert first
|
|
3883
|
+
"appHostHint": "Set up DNS (apps.<domain> + wildcard *.apps.<domain>) and a wildcard TLS cert first, see docs/internal/app-origin-deployment.md",
|
|
3682
3884
|
"appHostRequired": "App host is required when app origin isolation is enabled"
|
|
3683
3885
|
},
|
|
3684
3886
|
"join": {
|
|
@@ -3794,7 +3996,7 @@
|
|
|
3794
3996
|
"sendUsername": "Send My Username",
|
|
3795
3997
|
"usernameSent": "If an account with that email exists, your username was sent.",
|
|
3796
3998
|
"whyTitle": "✨ What do you get?",
|
|
3797
|
-
"whyGhii": "Your own digital identity
|
|
3999
|
+
"whyGhii": "Your own digital identity. Only you control it",
|
|
3798
4000
|
"whyPrivacy": "Your own private memory space, protected by your password",
|
|
3799
4001
|
"whyControl": "Full control: only you can access your data, no need to share with anyone",
|
|
3800
4002
|
"whyAgents": "Connect AI agents that remember you and work on your behalf",
|
|
@@ -4008,7 +4210,7 @@
|
|
|
4008
4210
|
"cfgHelpTitle": "Help",
|
|
4009
4211
|
"cfgReset": "Reset",
|
|
4010
4212
|
"cfgOnePerLine": "One entry per line",
|
|
4011
|
-
"cfgResetDone": "Reset {path}
|
|
4213
|
+
"cfgResetDone": "Reset {path}, DB override removed.",
|
|
4012
4214
|
"cfgSource": "Source",
|
|
4013
4215
|
"consul": "Consul",
|
|
4014
4216
|
"consulStatus": "Consul Status",
|
|
@@ -4101,10 +4303,10 @@
|
|
|
4101
4303
|
"servicesManualTitle": "Extension Script Reference",
|
|
4102
4304
|
"servicesManualWorkflow": "Workflow",
|
|
4103
4305
|
"servicesManualStep1": "Create extension (scaffold) or use an existing one from 'Available'",
|
|
4104
|
-
"servicesManualStep2": "Add actions with '+ Add action'
|
|
4306
|
+
"servicesManualStep2": "Add actions with '+ Add action'. Each action gets its own script file",
|
|
4105
4307
|
"servicesManualStep3": "Edit action scripts in the inline editor (click action button to load)",
|
|
4106
4308
|
"servicesManualStep4": "Install or Reinstall to push disk changes into the running system",
|
|
4107
|
-
"servicesManualStep5": "Create instances to activate
|
|
4309
|
+
"servicesManualStep5": "Create instances to activate. Each instance has its own config and data namespace",
|
|
4108
4310
|
"servicesManualCtxTitle": "Script Context (ctx)",
|
|
4109
4311
|
"servicesManualCtxAvailable": "Available in every action script:",
|
|
4110
4312
|
"servicesManualCtxCaller": "Authenticated user's agent ID",
|
|
@@ -4123,7 +4325,7 @@
|
|
|
4123
4325
|
"servicesManualTip1": "Use memory keys with prefixes for namespacing, e.g. 'listings.' or 'users.'",
|
|
4124
4326
|
"servicesManualTip2": "Ctrl+S saves the script. Tab inserts 2 spaces.",
|
|
4125
4327
|
"servicesManualTip3": "After editing, click 'Reinstall from disk' to update the installed extension",
|
|
4126
|
-
"servicesManualTip4": "Use AI Chat to generate or expand scripts
|
|
4328
|
+
"servicesManualTip4": "Use AI Chat to generate or expand scripts. Paste the context reference as a prompt",
|
|
4127
4329
|
"topPlatform": "Top Platform",
|
|
4128
4330
|
"platform": "Platform",
|
|
4129
4331
|
"owner": "Owner",
|
|
@@ -4190,7 +4392,7 @@
|
|
|
4190
4392
|
"updated": "Updated",
|
|
4191
4393
|
"csmNotAvailable": "CSM data not available",
|
|
4192
4394
|
"msmLabel": "Integrations",
|
|
4193
|
-
"msmExplain": "External API integrations (MSM
|
|
4395
|
+
"msmExplain": "External API integrations (MSM, Machine Service Manifest)",
|
|
4194
4396
|
"msmCategory": "Category",
|
|
4195
4397
|
"msmAuthType": "Auth",
|
|
4196
4398
|
"msmActions": "Actions",
|
|
@@ -4260,7 +4462,7 @@
|
|
|
4260
4462
|
"csmManagement": "CSM Management",
|
|
4261
4463
|
"msmManagement": "MSM Management",
|
|
4262
4464
|
"portal": "Portal",
|
|
4263
|
-
"portalDesc": "Manage your node's public portal
|
|
4465
|
+
"portalDesc": "Manage your node's public portal. The landing page visitors see. Customize the HTML template, set dynamic content via memory keys and KV pairs, preview changes live, and generate an AI-friendly prompt summary of your portal for chat integrations.",
|
|
4264
4466
|
"portalTemplate": "Template Editor",
|
|
4265
4467
|
"portalNavTitle": "Header Navigation",
|
|
4266
4468
|
"portalNavExplain": "Choose which public links appear in the site header and in what order. Auth-only links (Apps, Profile, Admin) always follow their sign-in/role rules and aren't listed here.",
|
|
@@ -4322,8 +4524,8 @@
|
|
|
4322
4524
|
"portalCustomExplain": "A custom template is active and overrides the built-in app. Edit it below and save, or reset to default to bring the built-in app back.",
|
|
4323
4525
|
"portalLoadCurrent": "Load current page",
|
|
4324
4526
|
"portalLoadCurrentConfirm": "Replace the editor contents with the current page's HTML? Unsaved edits will be lost.",
|
|
4325
|
-
"portalLoadedCurrent": "Loaded current page into the editor
|
|
4326
|
-
"portalAiBundleExplain": "Paste the JSON bundle the AI produced here. It can include the template, portal memory keys, and KV pairs
|
|
4527
|
+
"portalLoadedCurrent": "Loaded current page into the editor. Review and click Save Template to apply.",
|
|
4528
|
+
"portalAiBundleExplain": "Paste the JSON bundle the AI produced here. It can include the template, portal memory keys, and KV pairs. They are all applied at once.",
|
|
4327
4529
|
"portalAiBundlePlaceholder": "Paste the AI's JSON result here: { \"template\": \"<!DOCTYPE html>...\", \"memory\": { \"portal/about\": \"...\" }, \"kv\": {} }",
|
|
4328
4530
|
"portalImportDone": "Imported: {summary}",
|
|
4329
4531
|
"portalImportInvalid": "That doesn't look like a valid AI bundle. Expected JSON with a \"template\", \"memory\", or \"kv\" field.",
|
|
@@ -4418,12 +4620,12 @@
|
|
|
4418
4620
|
"statusLabel": "Status",
|
|
4419
4621
|
"started": "Started",
|
|
4420
4622
|
"ended": "Ended",
|
|
4421
|
-
"gaiiExplain": "GAII (Global AI Identifier)
|
|
4422
|
-
"ghiiExplain": "GHII (Global Human Intelligence Identifier)
|
|
4623
|
+
"gaiiExplain": "GAII (Global AI Identifier). Unique address for each AI agent on the AIMEAT network.",
|
|
4624
|
+
"ghiiExplain": "GHII (Global Human Intelligence Identifier). Unique identity for each human user on the AIMEAT network.",
|
|
4423
4625
|
"ghiiLevelsTitle": "Verification Levels",
|
|
4424
|
-
"ghiiLevelL0": "L0
|
|
4425
|
-
"ghiiLevelL1": "L1
|
|
4426
|
-
"ghiiLevelL2": "L2
|
|
4626
|
+
"ghiiLevelL0": "L0, Unverified: username + password only, no identity verification.",
|
|
4627
|
+
"ghiiLevelL1": "L1, Email verified: email address confirmed via link or code.",
|
|
4628
|
+
"ghiiLevelL2": "L2, Identity verified: government ID, EUDIW, or Finnish Trust Network verified.",
|
|
4427
4629
|
"ghiiTotpExplain": "TOTP (Time-based One-Time Password) adds two-factor authentication. Users set up an authenticator app (e.g. Google Authenticator) for extra security.",
|
|
4428
4630
|
"ghiiVerificationExplain": "Verification badge shows the trust level. Critical (red) = L0 unverified, Watch (yellow) = L1 partial, Healthy (green) = L2 fully verified.",
|
|
4429
4631
|
"ghiiEmail": "Email",
|
|
@@ -4522,24 +4724,24 @@
|
|
|
4522
4724
|
"pushWebPushTitle": "Web Push: Browser Notification",
|
|
4523
4725
|
"pushWebPushUsed": "Sent to subscribed browsers when a personal node has pending mailbox messages while offline.",
|
|
4524
4726
|
"pushWebPushTitleTpl": "AIMEAT: Pending messages",
|
|
4525
|
-
"pushWebPushBodyTpl": "{count} message(s) waiting
|
|
4727
|
+
"pushWebPushBodyTpl": "{count} message(s) waiting, {type}",
|
|
4526
4728
|
"pushEmailTitle": "Email: Mailbox Alert",
|
|
4527
4729
|
"pushEmailUsed": "Sent to the user's configured email when their personal node has pending messages and email notifications are enabled.",
|
|
4528
4730
|
"pushEmailSubjectTpl": "AIMEAT: {count} pending message(s) for your node",
|
|
4529
4731
|
"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.",
|
|
4530
4732
|
"pushNotifyTypesTitle": "Notification Triggers",
|
|
4531
4733
|
"pushNotifyTypesExplain": "Push notifications are sent when these mailbox event types occur. Configured via AIMEAT_PUSH_NOTIFY_TYPES.",
|
|
4532
|
-
"pushTypeWorkAssignment": "work_assignment
|
|
4533
|
-
"pushTypeActionRequest": "action_request
|
|
4534
|
-
"pushTypeBoardNotification": "board_notification
|
|
4535
|
-
"pushTypeFederationSync": "federation_sync
|
|
4734
|
+
"pushTypeWorkAssignment": "work_assignment. A work task has been assigned to the user's agent",
|
|
4735
|
+
"pushTypeActionRequest": "action_request. Another agent has requested an action from the user's agent",
|
|
4736
|
+
"pushTypeBoardNotification": "board_notification. New activity on a board the user subscribes to",
|
|
4737
|
+
"pushTypeFederationSync": "federation_sync. A federated peer node has synced data that needs attention",
|
|
4536
4738
|
"pushTemplate": "Template",
|
|
4537
4739
|
"pushUsedIn": "Used in",
|
|
4538
4740
|
"pushTestBtn": "Send Test Push",
|
|
4539
4741
|
"pushTestSending": "Sending...",
|
|
4540
4742
|
"pushTestSent": "Sent!",
|
|
4541
4743
|
"pushTestError": "Failed",
|
|
4542
|
-
"pushTestNoSubs": "No subscriptions
|
|
4744
|
+
"pushTestNoSubs": "No subscriptions. Subscribe via portal first",
|
|
4543
4745
|
"pushTestErrorDetail": "No subscription found or sending failed",
|
|
4544
4746
|
"pushDefault": "default",
|
|
4545
4747
|
"pushCustomized": "customized",
|
|
@@ -4660,12 +4862,12 @@
|
|
|
4660
4862
|
"csmFederate": "Federate",
|
|
4661
4863
|
"csmCreate": "Create CSM",
|
|
4662
4864
|
"csmCreateWithAi": "Create with AI Prompt",
|
|
4663
|
-
"csmAiPromptTitle": "CSM Builder
|
|
4865
|
+
"csmAiPromptTitle": "CSM Builder, AI Prompt",
|
|
4664
4866
|
"csmAiPromptDesc": "Copy this prompt into your AI chat (Claude, ChatGPT, etc.) to design a CSM interactively. The AI will ask you questions and generate the YAML for you.",
|
|
4665
4867
|
"csmAiPromptHow": "How to use this prompt",
|
|
4666
4868
|
"csmAiStep1": "Copy the prompt below to your clipboard",
|
|
4667
4869
|
"csmAiStep2": "Paste it into a new AI chat conversation",
|
|
4668
|
-
"csmAiStep3": "Describe the service you want to create
|
|
4870
|
+
"csmAiStep3": "Describe the service you want to create. The AI will guide you",
|
|
4669
4871
|
"csmAiStep4": "Copy the generated YAML back here and click \"Create CSM\"",
|
|
4670
4872
|
"msmHelpTitle": "What is an MSM?",
|
|
4671
4873
|
"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.",
|
|
@@ -4685,7 +4887,7 @@
|
|
|
4685
4887
|
"msmDeleteTitle": "Delete MSM Integration",
|
|
4686
4888
|
"msmDeleteSuccess": "MSM integration deleted successfully",
|
|
4687
4889
|
"msmYamlPlaceholder": "Paste MSM YAML definition here...",
|
|
4688
|
-
"msmSelectTemplate": "
|
|
4890
|
+
"msmSelectTemplate": " Select a template ",
|
|
4689
4891
|
"msmCreateFromTemplate": "Start from template",
|
|
4690
4892
|
"msmDefinition": "MSM Definition",
|
|
4691
4893
|
"federationNotAvailable": "Federation is not configured",
|
|
@@ -4705,11 +4907,11 @@
|
|
|
4705
4907
|
"fedHowJoinTitle": "How does a new node join?",
|
|
4706
4908
|
"fedHowJoinDetail": "A new node sends a signed introduction request (POST /v1/federation/peer/introduce) with its node ID, URL, and public key. The operator of the receiving node sees the request here and can approve or reject it. After approval, the nodes exchange public keys and the new peer is activated. The heartbeat system then monitors the connection automatically.",
|
|
4707
4909
|
"fedHowReplicationTitle": "How does data replication work?",
|
|
4708
|
-
"fedHowReplicationDetail": "Nodes can replicate memory entries to peers via POST /v1/federation/replicate. Each replication request is signed and verified. Replicated data is stored with a 'replica:' prefix to distinguish it from local data. Catalogue entries (actions/services) are synced incrementally
|
|
4910
|
+
"fedHowReplicationDetail": "Nodes can replicate memory entries to peers via POST /v1/federation/replicate. Each replication request is signed and verified. Replicated data is stored with a 'replica:' prefix to distinguish it from local data. Catalogue entries (actions/services) are synced incrementally. Only new or updated items are transferred.",
|
|
4709
4911
|
"fedHowSettlementsTitle": "How do morsel settlements work?",
|
|
4710
4912
|
"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.",
|
|
4711
4913
|
"fedHowRoutingTitle": "How does cross-node routing work?",
|
|
4712
|
-
"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
|
|
4914
|
+
"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.",
|
|
4713
4915
|
"fedActivePeers": "Active Peers",
|
|
4714
4916
|
"fedDegradedPeers": "Degraded",
|
|
4715
4917
|
"fedOfflinePeers": "Offline",
|
|
@@ -4761,7 +4963,7 @@
|
|
|
4761
4963
|
"fedPromoted": "Peer promoted to member",
|
|
4762
4964
|
"fedLivePeersExplain": "Currently registered peers and their real-time health status. The heartbeat monitor pings each peer every 5 minutes.",
|
|
4763
4965
|
"fedLivePeersHelpTitle": "Understanding peer statuses",
|
|
4764
|
-
"fedLivePeersHelpDetail": "Active: Peer is healthy and responding to heartbeats. Approved: Peer has been approved but not yet activated (needs activation). Degraded: Peer has failed 3+ consecutive heartbeats but is still reachable. Offline: Peer has failed 10+ consecutive heartbeats. Depeering: Peer is in the grace period before removal (default 72h)
|
|
4966
|
+
"fedLivePeersHelpDetail": "Active: Peer is healthy and responding to heartbeats. Approved: Peer has been approved but not yet activated (needs activation). Degraded: Peer has failed 3+ consecutive heartbeats but is still reachable. Offline: Peer has failed 10+ consecutive heartbeats. Depeering: Peer is in the grace period before removal (default 72h). In-flight work can still complete.",
|
|
4765
4967
|
"fedAddedAt": "Added",
|
|
4766
4968
|
"fedPublicKey": "Public Key",
|
|
4767
4969
|
"fedActivate": "Activate",
|
|
@@ -4807,16 +5009,16 @@
|
|
|
4807
5009
|
"fedTestTarget": "Target",
|
|
4808
5010
|
"fedTestReady": "Ready",
|
|
4809
5011
|
"fedTestTime": "Tested at",
|
|
4810
|
-
"fedBusTitle": "Federation Bus
|
|
5012
|
+
"fedBusTitle": "Federation Bus, Features",
|
|
4811
5013
|
"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.",
|
|
4812
5014
|
"fedBusHeartbeatTitle": "Heartbeat & Health Monitoring",
|
|
4813
|
-
"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
|
|
5015
|
+
"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.",
|
|
4814
5016
|
"fedBusReplicateTitle": "Memory Replication",
|
|
4815
5017
|
"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.",
|
|
4816
5018
|
"fedBusCatalogueTitle": "Catalogue Synchronization",
|
|
4817
|
-
"fedBusCatalogueDetail": "Action catalogues are synced via POST /v1/federation/catalogue-sync. This supports incremental sync
|
|
5019
|
+
"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.",
|
|
4818
5020
|
"fedBusRoutingTitle": "Cross-Node Request Routing",
|
|
4819
|
-
"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
|
|
5021
|
+
"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.",
|
|
4820
5022
|
"fedBusSettlementTitle": "Morsel Settlements",
|
|
4821
5023
|
"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.",
|
|
4822
5024
|
"fedBusTrustTitle": "Trust Advisories",
|
|
@@ -4903,10 +5105,10 @@
|
|
|
4903
5105
|
"cfgGroup_personal_nodes": "Personal Nodes",
|
|
4904
5106
|
"cfgGroup_match_notifications": "Match Notifications",
|
|
4905
5107
|
"cfgGroup_consul": "Consul",
|
|
4906
|
-
"cfgHelp_extensions": "The extension system runs custom JavaScript code in sandboxed V8 isolates. Extensions add behaviors to your node
|
|
5108
|
+
"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.",
|
|
4907
5109
|
"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.",
|
|
4908
5110
|
"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.",
|
|
4909
|
-
"cfgHelp_totp": "TOTP (Time-based One-Time Password) adds two-factor authentication to user accounts. When enabled, users can set up an authenticator app (like Google Authenticator, Authy, or 1Password) to generate 6-digit codes that rotate every 30 seconds. The encryption key protects stored TOTP secrets
|
|
5111
|
+
"cfgHelp_totp": "TOTP (Time-based One-Time Password) adds two-factor authentication to user accounts. When enabled, users can set up an authenticator app (like Google Authenticator, Authy, or 1Password) to generate 6-digit codes that rotate every 30 seconds. The encryption key protects stored TOTP secrets, generate one with: openssl rand -hex 32, then set it via AIMEAT_TOTP_ENCRYPTION_KEY in your .env file. Without this key, TOTP secrets are stored unencrypted.",
|
|
4910
5112
|
"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.",
|
|
4911
5113
|
"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.",
|
|
4912
5114
|
"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.",
|
|
@@ -5327,7 +5529,7 @@
|
|
|
5327
5529
|
},
|
|
5328
5530
|
"home": {
|
|
5329
5531
|
"title": "Tori",
|
|
5330
|
-
"subtitle": "AIMEAT marketplace
|
|
5532
|
+
"subtitle": "AIMEAT marketplace. Buy and sell with morsel currency",
|
|
5331
5533
|
"listings": "Listings",
|
|
5332
5534
|
"categories": "Categories",
|
|
5333
5535
|
"categoriesHeading": "Categories",
|
|
@@ -5503,7 +5705,7 @@
|
|
|
5503
5705
|
"prompt": {
|
|
5504
5706
|
"copyBtn": "COPY PROMPT & PASTE IT TO AI CHAT",
|
|
5505
5707
|
"copied": "COPIED!",
|
|
5506
|
-
"anyAi": "Works with Claude, ChatGPT, Grok, Gemini, Copilot, DeepSeek
|
|
5708
|
+
"anyAi": "Works with Claude, ChatGPT, Grok, Gemini, Copilot, DeepSeek, all of them."
|
|
5507
5709
|
},
|
|
5508
5710
|
"expand": {
|
|
5509
5711
|
"btn": "▼ OPEN THE WHOLE WORLD ▼",
|
|
@@ -5525,7 +5727,7 @@
|
|
|
5525
5727
|
},
|
|
5526
5728
|
"connect": {
|
|
5527
5729
|
"title": "Connect your own runtime",
|
|
5528
|
-
"desc": "If you run OpenClaw, LM Studio, or any MCP-capable tool
|
|
5730
|
+
"desc": "If you run OpenClaw, LM Studio, or any MCP-capable tool, connect it directly.",
|
|
5529
5731
|
"copyBtn": "Copy connect prompt",
|
|
5530
5732
|
"copied": "Copied!",
|
|
5531
5733
|
"readMore": "More about connecting agent runtimes"
|
|
@@ -5568,13 +5770,13 @@
|
|
|
5568
5770
|
"loggedIn": "logged in",
|
|
5569
5771
|
"logoutBtn": "Logout",
|
|
5570
5772
|
"whyTitle": "✨ What do you get?",
|
|
5571
|
-
"whyGhii": "Your own digital identity
|
|
5773
|
+
"whyGhii": "Your own digital identity. Only you control it",
|
|
5572
5774
|
"whyPrivacy": "Your own private memory space, protected by your password",
|
|
5573
5775
|
"whyControl": "Full control: only you can access your data, no need to share with anyone",
|
|
5574
5776
|
"whyAgents": "Connect AI agents that remember you and work on your behalf",
|
|
5575
5777
|
"whyMorsels": "100 free heart morsels to start! E.g. memory request ~ 1 ❤️, board post ~ 2 ❤️. You get 50 more every day"
|
|
5576
5778
|
},
|
|
5577
|
-
"promptLangNote": "The prompt is in English because AIs work best with it. You can still ask the AI to respond in your language. Works with Claude, ChatGPT, Grok, Gemini, Copilot, DeepSeek
|
|
5779
|
+
"promptLangNote": "The prompt is in English because AIs work best with it. You can still ask the AI to respond in your language. Works with Claude, ChatGPT, Grok, Gemini, Copilot, DeepSeek, all of them.",
|
|
5578
5780
|
"morsels": {
|
|
5579
5781
|
"economy": "Heart morsels (❤️) are the micro-currency here. You start with 100 for free. Actions cost a small amount. You earn 50 more every day."
|
|
5580
5782
|
},
|
|
@@ -5663,8 +5865,8 @@
|
|
|
5663
5865
|
},
|
|
5664
5866
|
"hero": {
|
|
5665
5867
|
"title": "Your data is yours. Your AI works for you.",
|
|
5666
|
-
"subtitle": "Not Google
|
|
5667
|
-
"anonNote": "You
|
|
5868
|
+
"subtitle": "Not Google's, not OpenAI's, not anyone else's. Tell things once, your AI remembers, shares and acts. Try now, no signup needed.",
|
|
5869
|
+
"anonNote": "You're trying this anonymously. Your data expires over time.",
|
|
5668
5870
|
"createAccount": "Create a free account"
|
|
5669
5871
|
},
|
|
5670
5872
|
"cards": {
|
|
@@ -5688,7 +5890,7 @@
|
|
|
5688
5890
|
"apps": {
|
|
5689
5891
|
"title": "Apps",
|
|
5690
5892
|
"tagline": "Answer questions, get an app",
|
|
5691
|
-
"desc": "No coding skills needed. Pick what you
|
|
5893
|
+
"desc": "No coding skills needed. Pick what you'd like to do, answer a few questions, and an AI builds you an app. Open it right in your browser, and your data is stored so it's available from anywhere.",
|
|
5692
5894
|
"categories": {
|
|
5693
5895
|
"games": "Games",
|
|
5694
5896
|
"gamesDesc": "Challenge a friend to multiplayer",
|
|
@@ -5703,14 +5905,14 @@
|
|
|
5703
5905
|
"band": "Music & Jam",
|
|
5704
5906
|
"bandDesc": "Play instruments together in real-time",
|
|
5705
5907
|
"realtime": "Live & multiplayer",
|
|
5706
|
-
"realtimeDesc": "Real-time collaboration
|
|
5908
|
+
"realtimeDesc": "Real-time collaboration: whiteboard, chat, shared tools",
|
|
5707
5909
|
"custom": "Your idea",
|
|
5708
5910
|
"customDesc": "Tell what you want and AI builds it"
|
|
5709
5911
|
},
|
|
5710
5912
|
"anyAiWorks": "You can build apps with any AI: Claude, ChatGPT, Grok, Gemini, Copilot, DeepSeek, all of them work! Try with different AIs and see which makes the best result.",
|
|
5711
5913
|
"step1": "Copy the prompt above",
|
|
5712
5914
|
"step2": "Paste into any AI chat (ChatGPT, Claude, Grok, Gemini...)",
|
|
5713
|
-
"step3": "Answer the AI
|
|
5915
|
+
"step3": "Answer the AI's questions, name your app, pick a style",
|
|
5714
5916
|
"step4": "Download the HTML file and open it in your browser. Done!",
|
|
5715
5917
|
"backToCategories": "Back to categories",
|
|
5716
5918
|
"copyPrompt": "Copy prompt",
|
|
@@ -5722,7 +5924,7 @@
|
|
|
5722
5924
|
"returnStep3": "Others can use and rate it",
|
|
5723
5925
|
"returnBtnAnon": "Register and add app",
|
|
5724
5926
|
"returnBtnAuth": "Add new app",
|
|
5725
|
-
"returnMotivation": "Got your app ready? Others can use it and you
|
|
5927
|
+
"returnMotivation": "Got your app ready? Others can use it and you'll earn heart morsels."
|
|
5726
5928
|
},
|
|
5727
5929
|
"services": {
|
|
5728
5930
|
"title": "Services",
|
|
@@ -5734,7 +5936,7 @@
|
|
|
5734
5936
|
"needHelpExamples": "Translate this text to Spanish, Make a logo for my project, Help me write a cover letter",
|
|
5735
5937
|
"offerHelp": "I want to help",
|
|
5736
5938
|
"offerHelpDesc": "Tell what you can do",
|
|
5737
|
-
"offerHelpPlaceholder": "Describe what you
|
|
5939
|
+
"offerHelpPlaceholder": "Describe what you're good at...",
|
|
5738
5940
|
"offerHelpExamples": "I can translate Finnish to English, I make illustrations, I help with math homework",
|
|
5739
5941
|
"submitRequest": "Post request",
|
|
5740
5942
|
"submitOffer": "Offer service",
|
|
@@ -5751,15 +5953,15 @@
|
|
|
5751
5953
|
}
|
|
5752
5954
|
},
|
|
5753
5955
|
"morsels": {
|
|
5754
|
-
"summary": "Heart morsels are AIMEAT
|
|
5755
|
-
"economy": "Heart morsels (❤️) are AIMEAT
|
|
5956
|
+
"summary": "Heart morsels are AIMEAT's way of saying thanks. You get 100 to start, for free. The more you share and help, the more you get.",
|
|
5957
|
+
"economy": "Heart morsels (❤️) are AIMEAT's micro-currency. You start with 100 for free. Actions cost a small amount (e.g. memory write ~ 1❤️, board post ~ 2❤️). You earn 50 more every day, plus bonuses for sharing and helping others."
|
|
5756
5958
|
},
|
|
5757
5959
|
"groups": {
|
|
5758
5960
|
"forMe": {
|
|
5759
5961
|
"title": "For Me & Others",
|
|
5760
5962
|
"tagline": "Build apps, share messages, find help",
|
|
5761
5963
|
"desc": "Make your own apps by chatting with your favourite AI. Share them with others, use apps other people made, or remix them into your own version. Copy the prompt, paste it into any AI chat, and see how far you get.",
|
|
5762
|
-
"starterHint": "New here? Try making an app that posts a message to the Welcome Board
|
|
5964
|
+
"starterHint": "New here? Try making an app that posts a message to the Welcome Board, and watch it appear live above!",
|
|
5763
5965
|
"beginnerTip": "Start with something simple if this is your first time!"
|
|
5764
5966
|
},
|
|
5765
5967
|
"forAgents": {
|
|
@@ -5769,9 +5971,9 @@
|
|
|
5769
5971
|
"starterHint": "Try it: ask the AI to build a news agent that checks your favourite site every hour and posts summaries to the Welcome Board.",
|
|
5770
5972
|
"step1": "Copy the prompt below",
|
|
5771
5973
|
"step2": "Paste into any AI chat (ChatGPT, Claude, Grok, Gemini...)",
|
|
5772
|
-
"step3": "Answer the AI
|
|
5974
|
+
"step3": "Answer the AI's questions. It builds the agent for you",
|
|
5773
5975
|
"connectTitle": "Got your own agent runtime?",
|
|
5774
|
-
"connectDesc": "If you run OpenClaw, LM Studio, or any MCP-capable tool
|
|
5976
|
+
"connectDesc": "If you run OpenClaw, LM Studio, or any MCP-capable tool. You can connect it directly. Copy this prompt instead and your AI will guide you through it.",
|
|
5775
5977
|
"readMore": "More about connecting agent runtimes"
|
|
5776
5978
|
},
|
|
5777
5979
|
"forBuilders": {
|
|
@@ -5843,7 +6045,7 @@
|
|
|
5843
6045
|
"step1Title": "Select Content",
|
|
5844
6046
|
"step2Title": "Style & Purpose",
|
|
5845
6047
|
"step3Title": "Auth-Gated Sections",
|
|
5846
|
-
"step4Title": "Generate prompt
|
|
6048
|
+
"step4Title": "Generate prompt. Run it in your AI chat",
|
|
5847
6049
|
"step5Title": "Paste the result & publish",
|
|
5848
6050
|
"noContent": "No publishable content found. Upload images or create apps first.",
|
|
5849
6051
|
"imagesGroup": "Images",
|
|
@@ -5920,7 +6122,7 @@
|
|
|
5920
6122
|
}
|
|
5921
6123
|
},
|
|
5922
6124
|
"cli": {
|
|
5923
|
-
"helpHeader": "aimeat
|
|
6125
|
+
"helpHeader": "aimeat. AI Memory Exchange and Action Transfer protocol node",
|
|
5924
6126
|
"startDesc": "Start the node",
|
|
5925
6127
|
"configDesc": "Show all settings and their current values",
|
|
5926
6128
|
"configExportDesc": "Export config to file or Consul",
|
|
@@ -5946,7 +6148,7 @@
|
|
|
5946
6148
|
"title": "Import Knowledge Package",
|
|
5947
6149
|
"placeholder": "Paste what your AI Chat produced here",
|
|
5948
6150
|
"uploadFile": "Upload File",
|
|
5949
|
-
"agentNote": "Agents upload automatically
|
|
6151
|
+
"agentNote": "Agents upload automatically. You don't need to paste anything if you used OpenClaw.",
|
|
5950
6152
|
"preview": "Package Preview",
|
|
5951
6153
|
"ghiiConfirm": "This will be stored under: {ghii}",
|
|
5952
6154
|
"ghiiMismatch": "This package was created for {ghii}. Import anyway as your own?",
|
|
@@ -6052,8 +6254,8 @@
|
|
|
6052
6254
|
"tags": "Tags (comma separated)",
|
|
6053
6255
|
"maturity": "Maturity",
|
|
6054
6256
|
"visibility": "Visibility",
|
|
6055
|
-
"visibilityPublic": "Public
|
|
6056
|
-
"visibilityOperator": "Operator only
|
|
6257
|
+
"visibilityPublic": "Public, everyone can see",
|
|
6258
|
+
"visibilityOperator": "Operator only. Sysadmins and their agents",
|
|
6057
6259
|
"catalogListed": "List in public catalogue",
|
|
6058
6260
|
"entryTitle": "Entry title",
|
|
6059
6261
|
"entryContent": "Content",
|
|
@@ -6089,10 +6291,42 @@
|
|
|
6089
6291
|
"submitReview": "Submit Review"
|
|
6090
6292
|
}
|
|
6091
6293
|
},
|
|
6294
|
+
"readme": {
|
|
6295
|
+
"editTitle": "Edit README",
|
|
6296
|
+
"edit": "Edit README",
|
|
6297
|
+
"write": "Write",
|
|
6298
|
+
"preview": "Preview",
|
|
6299
|
+
"generateAi": "Generate with AI",
|
|
6300
|
+
"copied": "Copied!",
|
|
6301
|
+
"pasteBack": "Prompt copied — run it in your AI chat, then paste the Markdown result here.",
|
|
6302
|
+
"placeholder": "# Title\n\nDescribe what this is about. Mermaid diagrams are allowed.",
|
|
6303
|
+
"emptyHint": "No description yet. Add a README so people (and agents) know what this is about.",
|
|
6304
|
+
"saved": "README saved"
|
|
6305
|
+
},
|
|
6306
|
+
"mindmap": {
|
|
6307
|
+
"titleOrg": "Organism map",
|
|
6308
|
+
"titleWs": "Workspace map",
|
|
6309
|
+
"level": "Level",
|
|
6310
|
+
"levelWs": "Workspaces",
|
|
6311
|
+
"levelSpaces": "+ Spaces",
|
|
6312
|
+
"levelCounts": "+ Counts",
|
|
6313
|
+
"showUsers": "Users",
|
|
6314
|
+
"showActivity": "Activity",
|
|
6315
|
+
"heatmap": "Heatmap",
|
|
6316
|
+
"clickHint": "Click a node to open it."
|
|
6317
|
+
},
|
|
6318
|
+
"timeline": {
|
|
6319
|
+
"title": "Development timeline",
|
|
6320
|
+
"empty": "No structural history yet.",
|
|
6321
|
+
"now": "now",
|
|
6322
|
+
"snapshot": "Snapshot",
|
|
6323
|
+
"pick": "Pick a point to see the structure then.",
|
|
6324
|
+
"changed": "structure changed"
|
|
6325
|
+
},
|
|
6092
6326
|
"organisms": {
|
|
6093
6327
|
"title": "Organisms",
|
|
6094
6328
|
"backToList": "All organisms",
|
|
6095
|
-
"noWorkspace": "This organism has no workspace yet. Set one up to track goals, plans, deliverables and decisions
|
|
6329
|
+
"noWorkspace": "This organism has no workspace yet. Set one up to track goals, plans, deliverables and decisions, versioned on publish.",
|
|
6096
6330
|
"setupWorkspace": "Set up workspace",
|
|
6097
6331
|
"workspaceReady": "Workspace ready",
|
|
6098
6332
|
"setupError": "Failed to set up workspace",
|
|
@@ -6104,14 +6338,14 @@
|
|
|
6104
6338
|
"publish": "Publish",
|
|
6105
6339
|
"published": "Published",
|
|
6106
6340
|
"reopened": "Reopened for editing",
|
|
6107
|
-
"reopenEditHint": "Reopen for editing
|
|
6341
|
+
"reopenEditHint": "Reopen for editing. Creates an editable draft from the published version",
|
|
6108
6342
|
"draftVersion": "Draft",
|
|
6109
6343
|
"publishedVersion": "Published",
|
|
6110
|
-
"workspacesDesc": "Workspaces in this organism
|
|
6344
|
+
"workspacesDesc": "Workspaces in this organism: each is an independent space with its own documents, records and history.",
|
|
6111
6345
|
"newWorkspace": "New workspace",
|
|
6112
6346
|
"workspaceName": "Workspace name",
|
|
6113
|
-
"noWorkspaces": "No workspaces yet
|
|
6114
|
-
"deleteWorkspaceConfirm": "Delete the workspace
|
|
6347
|
+
"noWorkspaces": "No workspaces yet. Create one to get started.",
|
|
6348
|
+
"deleteWorkspaceConfirm": "Delete the workspace \"{name}\" and all its content? This cannot be undone.",
|
|
6115
6349
|
"allOrganisms": "All organisms",
|
|
6116
6350
|
"currentWorkspaces": "Workspaces in this organism",
|
|
6117
6351
|
"import": "Import",
|
|
@@ -6124,7 +6358,7 @@
|
|
|
6124
6358
|
"importOrgHint": "Restore an organism from a .zip backup",
|
|
6125
6359
|
"orgImported": "Organism imported",
|
|
6126
6360
|
"requestAccess": "Request access",
|
|
6127
|
-
"accessRequested": "Access requested
|
|
6361
|
+
"accessRequested": "Access requested, {creator} will decide.",
|
|
6128
6362
|
"byCreator": "by {creator}",
|
|
6129
6363
|
"yours": "yours",
|
|
6130
6364
|
"requests": "Access requests",
|
|
@@ -6133,7 +6367,7 @@
|
|
|
6133
6367
|
"deny": "Deny",
|
|
6134
6368
|
"approved": "Approved",
|
|
6135
6369
|
"revoke": "Revoke",
|
|
6136
|
-
"confirmRemoveMember": "Revoke {member}
|
|
6370
|
+
"confirmRemoveMember": "Revoke {member}'s access to this organism?",
|
|
6137
6371
|
"memberRemoved": "Member removed",
|
|
6138
6372
|
"removeFailed": "Could not remove member",
|
|
6139
6373
|
"reviewFailed": "Could not update request",
|
|
@@ -6162,7 +6396,7 @@
|
|
|
6162
6396
|
"agentAttached": "Agent attached",
|
|
6163
6397
|
"agentDetached": "Agent detached",
|
|
6164
6398
|
"agentFailed": "Agent action failed",
|
|
6165
|
-
"youAreInvited": "You
|
|
6399
|
+
"youAreInvited": "You're invited",
|
|
6166
6400
|
"invitedByLabel": "invited by {who}",
|
|
6167
6401
|
"acceptInvite": "Accept",
|
|
6168
6402
|
"declineInvite": "Decline",
|
|
@@ -6188,7 +6422,7 @@
|
|
|
6188
6422
|
"publishedWord": "Published",
|
|
6189
6423
|
"publishedVerb": "published",
|
|
6190
6424
|
"editedVerb": "edited",
|
|
6191
|
-
"confirmDeleteItem": "Delete
|
|
6425
|
+
"confirmDeleteItem": "Delete \"{name}\"? Its draft, published version and full history are removed. This cannot be undone.",
|
|
6192
6426
|
"deletedItem": "Deleted",
|
|
6193
6427
|
"popOut": "Open in its own window",
|
|
6194
6428
|
"docNotFound2": "Document not found.",
|
|
@@ -6200,7 +6434,7 @@
|
|
|
6200
6434
|
"guest": "guest",
|
|
6201
6435
|
"anAgent": "agent",
|
|
6202
6436
|
"hiddenAgent": "An agent whose details you cannot see",
|
|
6203
|
-
"otherAgentHint": "Another owner
|
|
6437
|
+
"otherAgentHint": "Another owner's agent: you see what it has done here, not its live status",
|
|
6204
6438
|
"viaAgent": "done via this agent",
|
|
6205
6439
|
"manageAccess": "Manage who can work here",
|
|
6206
6440
|
"requestedAccess": "requested access",
|
|
@@ -6227,18 +6461,18 @@
|
|
|
6227
6461
|
"docsPublished": "Docs published",
|
|
6228
6462
|
"recordsDraft": "Records draft",
|
|
6229
6463
|
"recordsPublished": "Records published",
|
|
6230
|
-
"overview": "Overview
|
|
6464
|
+
"overview": "Overview. Who & what uses this organism",
|
|
6231
6465
|
"hide": "Hide",
|
|
6232
6466
|
"show": "Show",
|
|
6233
6467
|
"contractPrompt": "Create contract agent",
|
|
6234
|
-
"contractPromptCopied": "Contract-agent prompt copied
|
|
6235
|
-
"promptCopied": "Prompt copied
|
|
6468
|
+
"contractPromptCopied": "Contract-agent prompt copied. Paste it to your AI / coding agent.",
|
|
6469
|
+
"promptCopied": "Prompt copied: paste it into any AI chat, then paste the JSON it returns below.",
|
|
6236
6470
|
"noFields": "No fields",
|
|
6237
6471
|
"createdAt": "Created",
|
|
6238
6472
|
"lastSaved": "Last saved",
|
|
6239
6473
|
"publishedAt": "Published",
|
|
6240
6474
|
"fileVisibility": "File visibility",
|
|
6241
|
-
"fileVisibilityNote": "Private files only load for you
|
|
6475
|
+
"fileVisibilityNote": "Private files only load for you. Make them public to share the document.",
|
|
6242
6476
|
"makeAllPublic": "Make all public",
|
|
6243
6477
|
"toggleVisibility": "Click to toggle public / private",
|
|
6244
6478
|
"public": "Public",
|
|
@@ -6246,7 +6480,7 @@
|
|
|
6246
6480
|
"sources": "Sources",
|
|
6247
6481
|
"addSource": "Add source",
|
|
6248
6482
|
"close": "Close",
|
|
6249
|
-
"sourcesDesc": "References this workspace draws on
|
|
6483
|
+
"sourcesDesc": "References this workspace draws on: memory, files, and knowledge packages. Pointers only; the originals stay where they live.",
|
|
6250
6484
|
"src_memory": "Memory",
|
|
6251
6485
|
"src_storage": "Files",
|
|
6252
6486
|
"src_knowledge": "Knowledge",
|
|
@@ -6262,17 +6496,17 @@
|
|
|
6262
6496
|
"sourcesSaveError": "Failed to save sources",
|
|
6263
6497
|
"publishGated": "Sent for review (publish gate is on)",
|
|
6264
6498
|
"publishGate": "Require review before publishing",
|
|
6265
|
-
"publishGateHint": "When on, an agent
|
|
6499
|
+
"publishGateHint": "When on, an agent's publish is held for your review instead of going live",
|
|
6266
6500
|
"gateToggled": "Publish gate updated",
|
|
6267
6501
|
"share": "Share",
|
|
6268
6502
|
"sharePublicTitle": "Public sharing",
|
|
6269
|
-
"sharePublicDesc": "Make published document-space pages readable by anyone with the link
|
|
6503
|
+
"sharePublicDesc": "Make published document-space pages readable by anyone with the link, no login required. Drafts are never shared. Anything you make public is also announced on the public activity feed on the front page.",
|
|
6270
6504
|
"feedPublishBtn": "📣 Publish to public feed",
|
|
6271
6505
|
"feedPublishedAll": "📣 This whole workspace is published to the public feed.",
|
|
6272
6506
|
"feedPublishConfirm": "Publish every published document in this workspace to the public activity feed on the front page?",
|
|
6273
6507
|
"feedUnpublish": "Unpublish",
|
|
6274
6508
|
"noDocSpaces": "This workspace has no document spaces to share.",
|
|
6275
|
-
"noPublishedDocs": "No published documents yet
|
|
6509
|
+
"noPublishedDocs": "No published documents yet. Publish a page to share it.",
|
|
6276
6510
|
"openLink": "open ↗",
|
|
6277
6511
|
"openPublicViewer": "Open public viewer",
|
|
6278
6512
|
"copyLink": "Copy link",
|
|
@@ -6285,22 +6519,22 @@
|
|
|
6285
6519
|
"decisions": "Recent decisions",
|
|
6286
6520
|
"noneYet": "none yet",
|
|
6287
6521
|
"memberAgents": "Agents",
|
|
6288
|
-
"memberAgentsHint": "This member's agents
|
|
6522
|
+
"memberAgentsHint": "This member's agents. They inherit the membership and can act in this organism",
|
|
6289
6523
|
"contractAgents": "Your contract agents",
|
|
6290
|
-
"contractAgentsDesc": "These agents of yours advertise a workspace contract
|
|
6524
|
+
"contractAgentsDesc": "These agents of yours advertise a workspace contract. They can process a workspace like this one. Grant access (below) or attach them in the organism Agents tab.",
|
|
6291
6525
|
"contractNames": "contracts offered",
|
|
6292
6526
|
"contractTag": "contract",
|
|
6293
6527
|
"contractAgentHint": "Advertises a workspace contract",
|
|
6294
6528
|
"adoptContract": "Adopt",
|
|
6295
6529
|
"adoptHint": "Queue a task for this agent to adopt its contract into THIS workspace (it provisions the spaces itself)",
|
|
6296
|
-
"adoptQueued": "Adoption task queued for {agent}
|
|
6530
|
+
"adoptQueued": "Adoption task queued for {agent}. It provisions the contract and reports back",
|
|
6297
6531
|
"adoptFailed": "Could not queue the adoption task",
|
|
6298
6532
|
"contractActive": "active here",
|
|
6299
6533
|
"contractActiveHint": "This agent already works in this workspace",
|
|
6300
|
-
"spaceTasksBacked": "This space points at the task system
|
|
6301
|
-
"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
|
|
6534
|
+
"spaceTasksBacked": "This space points at the task system: its items are tasks, not workspace records. Manage them in the Tasks views.",
|
|
6535
|
+
"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.",
|
|
6302
6536
|
"onePerLine": "one per line",
|
|
6303
|
-
"autoIdHint": "Pre-filled automatically
|
|
6537
|
+
"autoIdHint": "Pre-filled automatically. Change it if you want a memorable id.",
|
|
6304
6538
|
"fillRequired": "Please fill in the required fields: {fields}",
|
|
6305
6539
|
"docs": "docs",
|
|
6306
6540
|
"newPage": "New document",
|
|
@@ -6318,12 +6552,12 @@
|
|
|
6318
6552
|
"newDocHere": "New document here",
|
|
6319
6553
|
"addSubsection": "Sub-section",
|
|
6320
6554
|
"selectDoc": "Select a document, or create one.",
|
|
6321
|
-
"docNotFound": "No document titled
|
|
6555
|
+
"docNotFound": "No document titled \"{title}\"",
|
|
6322
6556
|
"rename": "Rename",
|
|
6323
6557
|
"dragHint": "Drag into a section",
|
|
6324
6558
|
"unnamed": "(unnamed)",
|
|
6325
6559
|
"removeSection": "Remove section",
|
|
6326
|
-
"confirmRemoveSection": "Remove the section
|
|
6560
|
+
"confirmRemoveSection": "Remove the section \"{name}\"? Its documents move to Unsorted. They are not deleted.",
|
|
6327
6561
|
"confirmDeleteWorkspace": "Are you sure you want to delete this workspace? All its documents, records and version history are permanently removed. This cannot be undone.",
|
|
6328
6562
|
"spaces": "Spaces",
|
|
6329
6563
|
"recordsMode": "records",
|
|
@@ -6335,18 +6569,18 @@
|
|
|
6335
6569
|
"confirmRemoveSpace": "Remove \"{name}\" from this workspace? Its data is kept in memory (orphaned) but the section disappears.",
|
|
6336
6570
|
"restructure": "✨ Restructure / add types with AI",
|
|
6337
6571
|
"restructureTitle": "Restructure / add types with AI",
|
|
6338
|
-
"restructureDesc": "Describe what to add or change. Existing types and their data are kept
|
|
6572
|
+
"restructureDesc": "Describe what to add or change. Existing types and their data are kept. The AI extends the current structure. (To start completely fresh, delete the workspace below first.)",
|
|
6339
6573
|
"open": "Open",
|
|
6340
6574
|
"sortTitle": "Sort",
|
|
6341
6575
|
"sortCustom": "My order",
|
|
6342
6576
|
"sortName": "Name A–Z",
|
|
6343
6577
|
"sortNewest": "Newest first",
|
|
6344
|
-
"reorderHint": "Drag rows to reorder
|
|
6578
|
+
"reorderHint": "Drag rows to reorder. The order is saved to your profile.",
|
|
6345
6579
|
"moreActions": "More actions",
|
|
6346
6580
|
"policyLabel": "Join policy",
|
|
6347
6581
|
"tabWorkspaces": "Workspaces",
|
|
6348
|
-
"structureOverviewOrg": "Organism structure
|
|
6349
|
-
"structureOverviewWs": "Workspace structure
|
|
6582
|
+
"structureOverviewOrg": "Organism structure — table of contents",
|
|
6583
|
+
"structureOverviewWs": "Workspace structure — table of contents",
|
|
6350
6584
|
"structEmpty": "No structure to show yet.",
|
|
6351
6585
|
"tabMembers": "Members",
|
|
6352
6586
|
"tabAgents": "Agents",
|
|
@@ -6359,10 +6593,10 @@
|
|
|
6359
6593
|
"groupRecordsDesc": "Structured, schema-validated items tracked in this workspace.",
|
|
6360
6594
|
"groupDocs": "Document spaces",
|
|
6361
6595
|
"groupDocsDesc": "Free-form markdown pages and wikis.",
|
|
6362
|
-
"groupContractDesc": "Spaces provided by the {id} contract
|
|
6596
|
+
"groupContractDesc": "Spaces provided by the {id} contract. They work together as one unit.",
|
|
6363
6597
|
"descOverview": "Everything in this workspace on one scroll, plus what changed recently.",
|
|
6364
|
-
"descActivity": "Who did what, and when
|
|
6365
|
-
"descSources": "References this workspace draws on
|
|
6598
|
+
"descActivity": "Who did what, and when. The workspace's activity heatmap and event log.",
|
|
6599
|
+
"descSources": "References this workspace draws on: memory entries, files, and knowledge packages. Pointers only; nothing is copied.",
|
|
6366
6600
|
"descReview": "Gated publishes waiting for a human decision before they go live.",
|
|
6367
6601
|
"ovRecent": "What happened here",
|
|
6368
6602
|
"ovShowAll": "Show all {n} →",
|
|
@@ -6375,7 +6609,7 @@
|
|
|
6375
6609
|
"relMin": "{n} min ago",
|
|
6376
6610
|
"relHours": "{n} h ago",
|
|
6377
6611
|
"relDays": "{n} d ago",
|
|
6378
|
-
"agentsDesc": "An attached agent works in this organism with its owner
|
|
6612
|
+
"agentsDesc": "An attached agent works in this organism with its owner's member rights. It shows up in workspace participants and activity.",
|
|
6379
6613
|
"pickAgent": "Choose one of your agents…",
|
|
6380
6614
|
"noOwnAgentsLeft": "All your agents are already attached (or you have none yet).",
|
|
6381
6615
|
"advancedAttach": "Advanced: attach by ID",
|
|
@@ -6389,19 +6623,19 @@
|
|
|
6389
6623
|
"joinedDate": "joined {date}",
|
|
6390
6624
|
"reqOne": "1 request",
|
|
6391
6625
|
"reqMany": "{n} requests",
|
|
6392
|
-
"wsNotSetUp": "new
|
|
6626
|
+
"wsNotSetUp": "new. Set up when opened",
|
|
6393
6627
|
"recOne": "1 record",
|
|
6394
6628
|
"recMany": "{n} records",
|
|
6395
6629
|
"docOne": "1 document",
|
|
6396
6630
|
"docMany": "{n} documents",
|
|
6397
6631
|
"formAgentPolicy": "Agent policy",
|
|
6398
|
-
"autonomyHint": "Guidance for agents working here
|
|
6632
|
+
"autonomyHint": "Guidance for agents working here: L1 asks before nearly everything, L5 acts freely. The publish gate (Review tab) still applies regardless.",
|
|
6399
6633
|
"lastLabel": "last:",
|
|
6400
6634
|
"noActivityYet": "no activity yet",
|
|
6401
6635
|
"toReview": "{n} to review",
|
|
6402
6636
|
"showMap": "Map",
|
|
6403
|
-
"boardPreviewDesc": "Latest messages on this organism
|
|
6404
|
-
"boardEmpty": "No messages yet
|
|
6637
|
+
"boardPreviewDesc": "Latest messages on this organism's board.",
|
|
6638
|
+
"boardEmpty": "No messages yet. Write the first one.",
|
|
6405
6639
|
"writePost": "Write a message…",
|
|
6406
6640
|
"send": "Send",
|
|
6407
6641
|
"fieldName": "Name",
|
|
@@ -6418,8 +6652,8 @@
|
|
|
6418
6652
|
"deleteOrganismStats": "Deletes {w} workspaces, {r} records and {d} documents. This cannot be undone.",
|
|
6419
6653
|
"deleteWarnGeneric": "Deletes the organism with all its workspaces and content. This cannot be undone.",
|
|
6420
6654
|
"deleteDots": "Delete…",
|
|
6421
|
-
"confirmTypeName": "Type the organism
|
|
6422
|
-
"confirmDeleteName": "Delete
|
|
6655
|
+
"confirmTypeName": "Type the organism's name to confirm",
|
|
6656
|
+
"confirmDeleteName": "Delete \"{name}\"?",
|
|
6423
6657
|
"visHint": {
|
|
6424
6658
|
"public": "Public: anyone can find and view this organism.",
|
|
6425
6659
|
"listed": "Listed: appears in discovery, but the content is members-only.",
|
|
@@ -6427,7 +6661,7 @@
|
|
|
6427
6661
|
},
|
|
6428
6662
|
"policyHint": {
|
|
6429
6663
|
"open": "Open: anyone can join instantly.",
|
|
6430
|
-
"approval_required": "Approval required: join requests need an admin
|
|
6664
|
+
"approval_required": "Approval required: join requests need an admin's approval.",
|
|
6431
6665
|
"invite_only": "Invite only: joining is by invitation only."
|
|
6432
6666
|
},
|
|
6433
6667
|
"openBoardsTab": "Open in Boards",
|
|
@@ -6435,7 +6669,7 @@
|
|
|
6435
6669
|
"copyId": "Copy ID",
|
|
6436
6670
|
"copied": "Copied!",
|
|
6437
6671
|
"dangerZone": "Danger zone",
|
|
6438
|
-
"deleteWarn": "Deleting the workspace removes the manifest and ALL its data
|
|
6672
|
+
"deleteWarn": "Deleting the workspace removes the manifest and ALL its data: drafts, published records, version history, and its schemas. The organism stays. This cannot be undone.",
|
|
6439
6673
|
"deleteConfirmLabel": "Type the workspace name to confirm",
|
|
6440
6674
|
"deleteWorkspace": "Delete workspace",
|
|
6441
6675
|
"workspaceDeleted": "Workspace deleted",
|
|
@@ -6446,7 +6680,7 @@
|
|
|
6446
6680
|
"template": "Template",
|
|
6447
6681
|
"settingsSaved": "Settings saved",
|
|
6448
6682
|
"generateTitle": "Or generate a custom workspace with AI",
|
|
6449
|
-
"generateDesc": "Describe what this workspace is for
|
|
6683
|
+
"generateDesc": "Describe what this workspace is for: track, organise or refine information, or run a whole project lifecycle. The AI designs the object types. Use your OpenRouter key for one-click generation, or copy the prompt into any AI chat (free) and paste the result back.",
|
|
6450
6684
|
"generatePlaceholder": "e.g. a game project's full dev lifecycle · organising AI-governance research & EU regulations · refining product specs",
|
|
6451
6685
|
"generate": "Generate with AI",
|
|
6452
6686
|
"generating": "Generating…",
|
|
@@ -6456,12 +6690,12 @@
|
|
|
6456
6690
|
"pasteHelp": "No key? Copy the prompt above into any AI chat, then paste the JSON it returns here:",
|
|
6457
6691
|
"pastePlaceholder": "Paste the AI JSON response here",
|
|
6458
6692
|
"applyPasted": "Validate & apply",
|
|
6459
|
-
"applyError": "Could not apply
|
|
6460
|
-
"genFailed": "Generation failed
|
|
6693
|
+
"applyError": "Could not apply. Check the pasted JSON.",
|
|
6694
|
+
"genFailed": "Generation failed, try again",
|
|
6461
6695
|
"fixNeeded": "This needs fixing before it can be saved:",
|
|
6462
6696
|
"copyFixPrompt": "Copy fix prompt for the AI",
|
|
6463
|
-
"fixPromptCopied": "Fix prompt copied
|
|
6464
|
-
"desc": "Organisms are groups
|
|
6697
|
+
"fixPromptCopied": "Fix prompt copied: paste it back to your AI, then paste the corrected JSON.",
|
|
6698
|
+
"desc": "Organisms are groups: communities, teams, clubs, or projects. Create one or join existing ones to share knowledge, coordinate work, and build together.",
|
|
6465
6699
|
"loading": "Loading organisms...",
|
|
6466
6700
|
"empty": "You are not part of any organisms yet.",
|
|
6467
6701
|
"myOrganisms": "My Organisms",
|
|
@@ -6476,7 +6710,7 @@
|
|
|
6476
6710
|
"createError": "Failed to create",
|
|
6477
6711
|
"join": "Join",
|
|
6478
6712
|
"joined": "Joined!",
|
|
6479
|
-
"joinPending": "Join request sent
|
|
6713
|
+
"joinPending": "Join request sent, waiting for approval",
|
|
6480
6714
|
"joinError": "Failed to join",
|
|
6481
6715
|
"leave": "Leave",
|
|
6482
6716
|
"confirmLeave": "Leave \"{name}\"?",
|
|
@@ -6513,7 +6747,7 @@
|
|
|
6513
6747
|
"copyCodingPrompt": "Copy coding agent prompt",
|
|
6514
6748
|
"agentAccess": "Agent access",
|
|
6515
6749
|
"formProcess": "Process",
|
|
6516
|
-
"spacesRemoveHint": "These actions apply immediately. Removing a space hides its section
|
|
6750
|
+
"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.",
|
|
6517
6751
|
"autonomyLevels": {
|
|
6518
6752
|
"L1": "most cautious",
|
|
6519
6753
|
"L2": "cautious",
|
|
@@ -6582,7 +6816,7 @@
|
|
|
6582
6816
|
"createBtn": "Create",
|
|
6583
6817
|
"cancelBtn": "Cancel",
|
|
6584
6818
|
"scopeLabel": "Permissions requested:",
|
|
6585
|
-
"scopeFull": "Full access
|
|
6819
|
+
"scopeFull": "Full access: memory, wallet, actions, boards, storage",
|
|
6586
6820
|
"walletNote": "This agent's morsel wallet will be used for all transactions",
|
|
6587
6821
|
"approveBtn": "Approve Connection",
|
|
6588
6822
|
"denyBtn": "Deny",
|
|
@@ -6734,13 +6968,13 @@
|
|
|
6734
6968
|
"title": "Build Your Own App",
|
|
6735
6969
|
"subtitle": "Use any AI chat to design and build a standalone HTML application that connects to your AIMEAT node. Download the guide below and give it to the AI as context.",
|
|
6736
6970
|
"step1Title": "1. Download the guide",
|
|
6737
|
-
"step1Desc": "Get the AIMEAT-OS.md file
|
|
6971
|
+
"step1Desc": "Get the AIMEAT-OS.md file. It contains everything an AI needs to build your app.",
|
|
6738
6972
|
"step2Title": "2. Give it to an AI chat",
|
|
6739
6973
|
"step2Desc": "Open Claude, ChatGPT, or any AI chat. Upload the guide and describe what you want to build.",
|
|
6740
6974
|
"step3Title": "3. Upload your app",
|
|
6741
6975
|
"step3Desc": "When the AI produces a finished HTML file, come back and add it to your apps.",
|
|
6742
6976
|
"downloadBtn": "Download AIMEAT-OS.md",
|
|
6743
|
-
"downloadHint": "Comprehensive guide for AI assistants
|
|
6977
|
+
"downloadHint": "Comprehensive guide for AI assistants: includes full API reference, example prompts, and everything needed to build AIMEAT apps.",
|
|
6744
6978
|
"addAppBtn": "Add new app",
|
|
6745
6979
|
"generatorHint": "Building something more complex with background services and data pipelines?",
|
|
6746
6980
|
"generatorLink": "Try the Generator"
|
|
@@ -7064,8 +7298,8 @@
|
|
|
7064
7298
|
"landing": {
|
|
7065
7299
|
"heroTitle": "Your AI gets memory, agents and a place to build.",
|
|
7066
7300
|
"heroSub": "Open protocol. Run your own node or use ours.",
|
|
7067
|
-
"askAiTitle": "Let your own AI tell you what AIMEAT is
|
|
7068
|
-
"askAiSub": "Paste this into Claude, ChatGPT or any AI. It asks a couple of questions about you, then explains what AIMEAT means for your situation
|
|
7301
|
+
"askAiTitle": "Let your own AI tell you what AIMEAT is, for you",
|
|
7302
|
+
"askAiSub": "Paste this into Claude, ChatGPT or any AI. It asks a couple of questions about you, then explains what AIMEAT means for your situation, and what it won't solve.",
|
|
7069
7303
|
"askAiCopy": "Copy prompt",
|
|
7070
7304
|
"askAiCopied": "Copied ✓",
|
|
7071
7305
|
"tickerTitle": "Live activity on this node",
|
|
@@ -7079,12 +7313,12 @@
|
|
|
7079
7313
|
"statWrites": "documents published",
|
|
7080
7314
|
"statTasks": "tasks completed",
|
|
7081
7315
|
"statSchedules": "schedules fired",
|
|
7082
|
-
"statsFallback": "This node runs agents around the clock
|
|
7316
|
+
"statsFallback": "This node runs agents around the clock: schedules, tasks and publishing without human hours.",
|
|
7083
7317
|
"ownLine": "The same could run for you. Your own node, your data, your agents.",
|
|
7084
7318
|
"ownCta": "From 49 €/mo →",
|
|
7085
7319
|
"cardATitle": "Try the apps",
|
|
7086
7320
|
"cardAText": "Play instantly, no login. All built with an AI chat.",
|
|
7087
|
-
"cardACta": "Read tonight
|
|
7321
|
+
"cardACta": "Read tonight's paper →",
|
|
7088
7322
|
"cardBTitle": "Build with your AI chat",
|
|
7089
7323
|
"cardBText": "Claude or ChatGPT interviews you and builds the app. AIMEAT is the server.",
|
|
7090
7324
|
"cardBCta": "Start building →",
|
|
@@ -7094,7 +7328,7 @@
|
|
|
7094
7328
|
"loop1": "Copy the prompt into your AI chat",
|
|
7095
7329
|
"loop2": "The AI interviews you and builds the app",
|
|
7096
7330
|
"loop3": "The app lives on your node. Share the link.",
|
|
7097
|
-
"galleryTitle": "Built with this loop
|
|
7331
|
+
"galleryTitle": "Built with this loop: real apps, try them",
|
|
7098
7332
|
"builtInChat": "built in an AI chat session",
|
|
7099
7333
|
"footPricing": "Pricing",
|
|
7100
7334
|
"footDocs": "Docs",
|
|
@@ -7106,13 +7340,13 @@
|
|
|
7106
7340
|
"evTask": "An agent completed a task",
|
|
7107
7341
|
"evSchedule": "A scheduled job ran",
|
|
7108
7342
|
"gallerySanomat": "The paper that writes itself every evening. Six agents, zero human hours.",
|
|
7109
|
-
"galleryComicland": "Comics by agents
|
|
7110
|
-
"galleryDeepSix": "Two-player battleship on an agent platform. Bring an opponent
|
|
7343
|
+
"galleryComicland": "Comics by agents, browse the catalog.",
|
|
7344
|
+
"galleryDeepSix": "Two-player battleship on an agent platform. Bring an opponent, or two browsers.",
|
|
7111
7345
|
"twoPlayers": "2 players",
|
|
7112
7346
|
"gallerySolar": "Simulate the solar system.",
|
|
7113
7347
|
"galleryGraph": "Plot 3D math functions in the browser.",
|
|
7114
7348
|
"galleryBandJam": "Make music with your friends, live!",
|
|
7115
|
-
"buildTitle": "Build your app in 10 minutes
|
|
7349
|
+
"buildTitle": "Build your app in 10 minutes, copy this prompt",
|
|
7116
7350
|
"buildSub": "Paste into Claude, ChatGPT or any AI. It asks about your idea, builds the app and publishes it to your node. Share the link when done.",
|
|
7117
7351
|
"buildCopy": "Copy prompt",
|
|
7118
7352
|
"buildCopied": "Copied ✓",
|
|
@@ -7123,27 +7357,34 @@
|
|
|
7123
7357
|
"feedTabAgents": "Agents",
|
|
7124
7358
|
"feedOpen": "Open →",
|
|
7125
7359
|
"feedLoading": "Loading…",
|
|
7126
|
-
"feedEmpty": "Nothing here yet
|
|
7127
|
-
"
|
|
7360
|
+
"feedEmpty": "Nothing here yet. Be the first to publish something public.",
|
|
7361
|
+
"totalsSub": "What's live on this node right now.",
|
|
7362
|
+
"totalApps": "public apps",
|
|
7363
|
+
"totalOrganisms": "organisms",
|
|
7364
|
+
"totalAgents": "agents",
|
|
7365
|
+
"totalOnline": "online now",
|
|
7366
|
+
"totalKnowledge": "knowledge packages",
|
|
7367
|
+
"totalDownloads": "app downloads",
|
|
7368
|
+
"heroKicker": "Tonight's paper wrote itself.",
|
|
7128
7369
|
"heroLead": "Six agents. Zero human hours.",
|
|
7129
|
-
"heroOpenPaper": "Open tonight
|
|
7130
|
-
"heroShotAlt": "AIMEAT Sanomat
|
|
7131
|
-
"heroPaperLine": "Tonight
|
|
7132
|
-
"heroSub2": "A real app, built and run by AI on AIMEAT
|
|
7370
|
+
"heroOpenPaper": "Open tonight's paper",
|
|
7371
|
+
"heroShotAlt": "AIMEAT Sanomat, tonight's edition",
|
|
7372
|
+
"heroPaperLine": "Tonight's edition · written entirely by agents",
|
|
7373
|
+
"heroSub2": "A real app, built and run by AI on AIMEAT. Look before you sign up.",
|
|
7133
7374
|
"heroTryFree": "Try it free →",
|
|
7134
7375
|
"heroGetOwn": "Get your own →",
|
|
7135
7376
|
"buildHeroKicker": "A safe place to build with AI.",
|
|
7136
|
-
"buildHeroTitle": "Build a real app with your AI in minutes, and it
|
|
7377
|
+
"buildHeroTitle": "Build a real app with your AI in minutes, and it's yours.",
|
|
7137
7378
|
"buildHeroSub": "Copy one prompt into Claude, ChatGPT or any AI. It builds you a working app on AIMEAT, published live and yours to keep. Then let your agents run it for you, the way AIMEAT Sanomat writes itself every evening.",
|
|
7138
7379
|
"buildHeroCopy": "Copy the build prompt →",
|
|
7139
|
-
"buildHeroCopied": "Copied
|
|
7380
|
+
"buildHeroCopied": "Copied ✓. Paste into your AI",
|
|
7140
7381
|
"wallTitle": "Built by people with their AI. Yours goes here too.",
|
|
7141
|
-
"wallEmpty": "Be the first
|
|
7382
|
+
"wallEmpty": "Be the first: copy the prompt above, build something, and it lands here.",
|
|
7142
7383
|
"wallAnon": "someone",
|
|
7143
7384
|
"wallSearch": "Search apps…",
|
|
7144
7385
|
"wallNoMatch": "No apps match your search.",
|
|
7145
|
-
"agentBuildTitle": "Build an agent in 10 minutes
|
|
7146
|
-
"agentBuildSub": "Paste into Claude, ChatGPT or any AI. It builds a local AI agent
|
|
7386
|
+
"agentBuildTitle": "Build an agent in 10 minutes, copy this prompt",
|
|
7387
|
+
"agentBuildSub": "Paste into Claude, ChatGPT or any AI. It builds a local AI agent: running on your own machine, no API keys: connected to your node, and shows you how to share it. For coders and tinkerers; beginners can use the desktop app instead."
|
|
7147
7388
|
},
|
|
7148
7389
|
"pricing": {
|
|
7149
7390
|
"title": "Pricing",
|
|
@@ -7163,7 +7404,7 @@
|
|
|
7163
7404
|
"dfyName": "Done for you",
|
|
7164
7405
|
"dfy1": "Installation, your agents built, onboarding.",
|
|
7165
7406
|
"dfy2": "For small businesses.",
|
|
7166
|
-
"dfyExample": "Example: a barbershop. Every morning at 7, your phone has the day
|
|
7407
|
+
"dfyExample": "Example: a barbershop. Every morning at 7, your phone has the day's bookings, yesterday's feedback and a social post ready to approve.",
|
|
7167
7408
|
"entName": "Enterprise",
|
|
7168
7409
|
"entPrice": "contact",
|
|
7169
7410
|
"ent1": "Governance, data inside your own walls.",
|
|
@@ -7177,7 +7418,7 @@
|
|
|
7177
7418
|
},
|
|
7178
7419
|
"hiw": {
|
|
7179
7420
|
"title": "A place where AIs go to work",
|
|
7180
|
-
"intro": "AIMEAT doesn
|
|
7421
|
+
"intro": "AIMEAT doesn't run AI models. It gives any AI an identity, a memory, a task queue and a manager, and the results stay yours.",
|
|
7181
7422
|
"dAria": "How AIMEAT works",
|
|
7182
7423
|
"dModels": "AI models",
|
|
7183
7424
|
"dModels1": "Swappable:",
|
|
@@ -7198,16 +7439,16 @@
|
|
|
7198
7439
|
"dAssets2": "apps and reports",
|
|
7199
7440
|
"dHuman": "Human at the gate",
|
|
7200
7441
|
"dHuman1": "Decisions approved",
|
|
7201
|
-
"dNote": "The model can change
|
|
7442
|
+
"dNote": "The model can change. Work and memory stay",
|
|
7202
7443
|
"cardAgentsTitle": "Agents",
|
|
7203
|
-
"cardAgentsText": "An agent is not an AI
|
|
7444
|
+
"cardAgentsText": "An agent is not an AI. It is a job for an AI. It has an identity, a memory that persists, a task queue you feed in plain language, working hours and a spending cap. Quality can be reviewed afterwards. Run it on any model: CrewAI, Claude, GPT, your own runtime.",
|
|
7204
7445
|
"cardOrgTitle": "Organisms",
|
|
7205
7446
|
"cardOrgText": "An organism turns agent output into assets. Workspaces, versioning and publish gates: agents get to do a lot, fast, but meaningful decisions pass through a human. Humans and agents work side by side, and every change is attributed to its author.",
|
|
7206
7447
|
"cardAssetsTitle": "Your assets",
|
|
7207
|
-
"cardAssetsText": "Models come and go. Identity, memory, work history and results stay on your node. Swap Grok for Claude mid-flight
|
|
7448
|
+
"cardAssetsText": "Models come and go. Identity, memory, work history and results stay on your node. Swap Grok for Claude mid-flight. The agent picks up where it left off.",
|
|
7208
7449
|
"exampleTitle": "An example from this node",
|
|
7209
7450
|
"exampleText": "AIMEAT Sanomat writes itself every evening. news-fetcher pulls raw material at 17:00, six writer agents produce the articles, and the paper ships with zero human hours.",
|
|
7210
|
-
"exampleCta": "Read tonight
|
|
7451
|
+
"exampleCta": "Read tonight's paper →",
|
|
7211
7452
|
"ctaTry": "Try it free →",
|
|
7212
7453
|
"ctaPricing": "See pricing →",
|
|
7213
7454
|
"ctaBusiness": "For your business →"
|
|
@@ -7324,7 +7565,7 @@
|
|
|
7324
7565
|
"other": "If your tool supports Connectors / custom MCP, paste this address into it:",
|
|
7325
7566
|
"otherNote": "No MCP support? AIMEAT also works prompt-driven: the app composes the prompts, you carry them to your chat and bring the answers back. Free, and works with any AI.",
|
|
7326
7567
|
"approve": "When the AI asks for access, approve the agent in your profile and pick its permissions. No agent is ever created without your approval.",
|
|
7327
|
-
"localhost": "Running AIMEAT on your own machine (localhost)? A cloud AI like claude.ai can't reach a localhost address over MCP. Install the connector and run `aimeat connect serve
|
|
7568
|
+
"localhost": "Running AIMEAT on your own machine (localhost)? A cloud AI like claude.ai can't reach a localhost address over MCP. Install the connector and run `aimeat connect serve`. It bridges your local node to the AI."
|
|
7328
7569
|
},
|
|
7329
7570
|
"s3": {
|
|
7330
7571
|
"title": "Step 3: Put your AI to work",
|
|
@@ -7377,15 +7618,15 @@
|
|
|
7377
7618
|
"proofUnavailable": "Live proof runs on aimeat.io.",
|
|
7378
7619
|
"c1Title": "I wake up already knowing what happened in my field",
|
|
7379
7620
|
"c1Text": "AIMEAT Sanomat writes itself every evening. Six agents, zero human hours.",
|
|
7380
|
-
"c1Proof": "Read tonight
|
|
7621
|
+
"c1Proof": "Read tonight's paper →",
|
|
7381
7622
|
"c1Cta": "The same, from your topics →",
|
|
7382
7623
|
"c2Title": "My 7 AM report is waiting on my phone",
|
|
7383
7624
|
"c2Text": "Tell it once what you want to know every morning. An agent gathers, summarizes and sends.",
|
|
7384
|
-
"c2Proof": "Example (anonymized, sent today 07:00):
|
|
7625
|
+
"c2Proof": "Example (anonymized, sent today 07:00): \"3 new bookings · 1 review (4★, answered) · competitor X dropped prices · suggested action: weekend campaign.\"",
|
|
7385
7626
|
"c2Cta": "Order your morning report →",
|
|
7386
|
-
"c3Title": "I know what
|
|
7387
|
-
"c3Text": "An agent tracks mentions, competitors and trends, and produces an action list
|
|
7388
|
-
"c3Proof": "Example action list:
|
|
7627
|
+
"c3Title": "I know what's being said about us, and what to do about it",
|
|
7628
|
+
"c3Text": "An agent tracks mentions, competitors and trends, and produces an action list. Not just a report.",
|
|
7629
|
+
"c3Proof": "Example action list: \"1) Answer the review on platform Y today. 2) Trend Z is rising, draft a post. 3) Competitor launched a campaign, counter-offer attached.\"",
|
|
7389
7630
|
"c3Cta": "Start the radar →",
|
|
7390
7631
|
"c4Title": "My project knows its own status",
|
|
7391
7632
|
"c4Text": "When developers have agents, sprints slow things down. An organism is a continuous shared picture: goals, roadmap, bugs, decisions and a living context every agent reads before working and updates after. A human approves the decisions; everything else moves at agent speed.",
|
|
@@ -7393,13 +7634,13 @@
|
|
|
7393
7634
|
"c4QuoteBy": "game developer, large studio",
|
|
7394
7635
|
"c4Proof": "Open the FreePartyLights status page →",
|
|
7395
7636
|
"c4Cta": "Turn your project into an organism →",
|
|
7396
|
-
"c5Title": "A user
|
|
7637
|
+
"c5Title": "A user's idea shipped the same day",
|
|
7397
7638
|
"c5Text": "A user left an idea in the morning. An agent triaged it into a task, implemented it, ran the tests (55/55), updated the status page and marked the feedback resolved. A human confirmed it works. The whole chain is traceable: feedback → task → release.",
|
|
7398
|
-
"c5Proof": "Same status page
|
|
7639
|
+
"c5Proof": "Same status page. See zenmasta001 → task-015 →",
|
|
7399
7640
|
"c5Cta": "Open a feedback loop for your customers →",
|
|
7400
7641
|
"c6Title": "Kalle runs his whole company on its own node",
|
|
7401
|
-
"c6Text": "The Original Miskate Oy
|
|
7402
|
-
"c6Proof": "originalmiskate.com
|
|
7642
|
+
"c6Text": "The Original Miskate Oy's homepage lives in agent memory on its own AIMEAT node, federated into the network. The vartija crew audits the node every morning at 04:00; the tutkijatar crew runs research overnight.",
|
|
7643
|
+
"c6Proof": "originalmiskate.com. A living node →",
|
|
7403
7644
|
"c6Cta": "See hosting packages →",
|
|
7404
7645
|
"allLive": "Everything above runs in production right now. No proof is a mockup.",
|
|
7405
7646
|
"ctaDemo": "Book a demo →",
|