@cat-factory/app 0.46.11 → 0.46.12

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.
@@ -746,5 +746,417 @@
746
746
  "userPrompt": "User prompt",
747
747
  "details": "Details"
748
748
  }
749
+ },
750
+ "auth": {
751
+ "gate": {
752
+ "loading": "Loading…"
753
+ },
754
+ "login": {
755
+ "appTitle": "Architecture Board",
756
+ "@appTitle": {
757
+ "description": "The product/app title shown on the login screen. Keep verbatim across every locale - it is a proper-noun-ish product name, do NOT translate it."
758
+ },
759
+ "subtitle": "Sign in to continue.",
760
+ "inviteSubtitle": "Accept your invitation to continue.",
761
+ "forgotSubtitle": "Reset your password.",
762
+ "continueWithGithub": "Continue with GitHub",
763
+ "continueWithGoogle": "Continue with Google",
764
+ "or": "or",
765
+ "namePlaceholder": "Name (optional)",
766
+ "emailPlaceholder": "Email",
767
+ "passwordPlaceholder": "Password",
768
+ "createAccount": "Create account",
769
+ "signIn": "Sign in",
770
+ "signUp": "Sign up",
771
+ "needAccount": "Need an account? {signUp}",
772
+ "haveAccount": "Already have an account? {signIn}",
773
+ "forgotPassword": "Forgot password?",
774
+ "forgotSent": "If an account exists for that email, a password reset link is on its way. Check your inbox.",
775
+ "sendResetLink": "Send reset link",
776
+ "backToSignIn": "Back to sign in",
777
+ "signInFailed": "Sign-in failed. Check your details and try again.",
778
+ "genericError": "Something went wrong. Please try again."
779
+ },
780
+ "resetPassword": {
781
+ "title": "Reset password",
782
+ "subtitle": "Choose a new password for your account.",
783
+ "doneBody": "Your password has been reset. You can now sign in with your new password.",
784
+ "goToSignIn": "Go to sign in",
785
+ "missingToken": "This reset link is missing its token. Request a new link from the sign-in screen.",
786
+ "backToSignIn": "Back to sign in",
787
+ "newPasswordPlaceholder": "New password",
788
+ "confirmPasswordPlaceholder": "Confirm new password",
789
+ "submit": "Reset password",
790
+ "errorTooShort": "Password must be at least 8 characters.",
791
+ "errorMismatch": "Passwords do not match.",
792
+ "errorInvalidLink": "This password reset link is invalid or has expired."
793
+ },
794
+ "userMenu": {
795
+ "mySetup": "My setup",
796
+ "signOut": "Sign out"
797
+ }
798
+ },
799
+ "layout": {
800
+ "accountDeployment": {
801
+ "title": "Deployment integrations",
802
+ "intro": "Credentials shared by every workspace in this account, sealed at rest. Values are never shown after saving; leave a field blank to keep the stored secret.",
803
+ "configured": "Configured",
804
+ "notSet": "Not set",
805
+ "clear": "Clear",
806
+ "loadFailed": "Could not load deployment settings",
807
+ "slack": {
808
+ "title": "Slack app (OAuth)",
809
+ "description": "Enables the \"Add to Slack\" OAuth flow. Without it, workspaces can still connect Slack by pasting a bot token.",
810
+ "clientId": "Client ID",
811
+ "clientSecret": "Client secret",
812
+ "redirectUrl": "Redirect URL",
813
+ "validation": "Enter the client id, secret and redirect URL",
814
+ "saved": "Slack OAuth saved",
815
+ "saveFailed": "Could not save Slack OAuth",
816
+ "cleared": "Slack OAuth cleared",
817
+ "clearFailed": "Could not clear Slack OAuth"
818
+ },
819
+ "web": {
820
+ "title": "Container web search",
821
+ "description": "The search upstream container agents reach through the backend proxy. Set a Brave key (recommended), or a self-hosted SearXNG URL (with an optional bearer key).",
822
+ "configured": "Configured ({provider})",
823
+ "braveKey": "Brave API key",
824
+ "searxngUrl": "SearXNG URL",
825
+ "searxngKey": "SearXNG key (optional)",
826
+ "validation": "Enter a Brave key or a SearXNG URL",
827
+ "saved": "Web search keys saved",
828
+ "saveFailed": "Could not save web search keys",
829
+ "cleared": "Web search keys cleared",
830
+ "clearFailed": "Could not clear web search keys"
831
+ }
832
+ },
833
+ "accountFragments": {
834
+ "intro": "Best-practice guidelines shared by every board in this account. Each board inherits these and can override or add its own. Code-aware agents (coder, reviewer, architect, fixers) fold the relevant ones into their prompt."
835
+ },
836
+ "accountTeam": {
837
+ "roles": {
838
+ "admin": "Admin",
839
+ "developer": "Developer",
840
+ "product": "Product"
841
+ },
842
+ "org": {
843
+ "ctaTitle": "Invite teammates & manage roles",
844
+ "ctaBody": "Members, roles and invitations live on an organization. Create one to invite teammates and manage their roles; your personal boards stay as they are.",
845
+ "namePlaceholder": "Acme Inc.",
846
+ "create": "Create organization",
847
+ "created": "Organization created"
848
+ },
849
+ "members": {
850
+ "title": "Members",
851
+ "empty": "No members yet."
852
+ },
853
+ "invite": {
854
+ "title": "Invite a teammate",
855
+ "submit": "Invite",
856
+ "revoke": "Revoke invitation",
857
+ "created": "Invitation created",
858
+ "createdEmailed": "An email was sent (or copy the link from the list below).",
859
+ "createdShareLink": "Share the accept link with your teammate.",
860
+ "status": {
861
+ "pending": "Pending",
862
+ "accepted": "Accepted",
863
+ "revoked": "Revoked"
864
+ }
865
+ },
866
+ "email": {
867
+ "title": "Email sender",
868
+ "notEnabled": "Email delivery is not enabled on this deployment. Invitations still produce a shareable accept link.",
869
+ "connectedAs": "Connected via {provider} as {from}",
870
+ "disconnect": "Disconnect",
871
+ "connect": "Connect email sender",
872
+ "connected": "Email sender connected",
873
+ "fromPlaceholder": "From address",
874
+ "apiKeyPlaceholder": "Provider API key",
875
+ "providers": {
876
+ "resend": "Resend",
877
+ "sendgrid": "SendGrid"
878
+ }
879
+ },
880
+ "apiKeys": {
881
+ "title": "Account API keys"
882
+ },
883
+ "errors": {
884
+ "updateRoles": "Could not update roles",
885
+ "loadSettings": "Could not load team settings",
886
+ "createOrg": "Could not create organization",
887
+ "sendInvite": "Could not send invitation",
888
+ "revokeInvite": "Could not revoke invitation",
889
+ "connectEmail": "Could not connect email sender",
890
+ "disconnectEmail": "Could not disconnect email sender"
891
+ }
892
+ },
893
+ "boardSwitcher": {
894
+ "accountFallback": "Account",
895
+ "boardFallback": "Board",
896
+ "providers": {
897
+ "docker": "Docker (local)",
898
+ "custom": "Custom"
899
+ },
900
+ "account": {
901
+ "newOrg": "New organization…",
902
+ "settings": "Account settings…",
903
+ "defaultProvider": "Default cloud provider"
904
+ },
905
+ "board": {
906
+ "new": "New board…",
907
+ "rename": "Rename board…",
908
+ "delete": "Delete board"
909
+ },
910
+ "prompt": {
911
+ "create": "Create",
912
+ "nameLabel": "Name",
913
+ "descriptionLabel": "Description",
914
+ "descriptionHint": "Optional",
915
+ "descriptionPlaceholder": "What is this board for?",
916
+ "account": {
917
+ "title": "New organization",
918
+ "placeholder": "Acme Inc."
919
+ },
920
+ "board": {
921
+ "title": "New board",
922
+ "placeholder": "Untitled board"
923
+ },
924
+ "rename": {
925
+ "title": "Board settings",
926
+ "placeholder": "Board name"
927
+ }
928
+ },
929
+ "toast": {
930
+ "updateProviderFailed": "Could not update default provider",
931
+ "switchAccountFailed": "Could not switch account",
932
+ "openBoardFailed": "Could not open board",
933
+ "boardDeleted": "Board deleted",
934
+ "deleteBoardFailed": "Could not delete board"
935
+ }
936
+ },
937
+ "notifications": {
938
+ "heading": "Needs your attention",
939
+ "overdue": "Overdue",
940
+ "openPr": "Open PR",
941
+ "dismiss": "Dismiss",
942
+ "action": {
943
+ "merge_review": "Merge",
944
+ "pipeline_complete": "Confirm & merge",
945
+ "ci_failed": "Retry run",
946
+ "test_failed": "Retry run",
947
+ "requirement_review": "Mark read",
948
+ "clarity_review": "Mark read",
949
+ "release_regression": "Acknowledge",
950
+ "decision_required": "Mark read",
951
+ "human_test_ready": "Mark read",
952
+ "visual_confirmation_ready": "Mark read",
953
+ "human_review": "Mark read",
954
+ "followup_pending": "Mark read",
955
+ "markRead": "Mark read"
956
+ }
957
+ },
958
+ "aiProvidersBanner": {
959
+ "setup": {
960
+ "title": "No AI model configured",
961
+ "body": "Agents need a model to run. AI works out of the box only on a Cloudflare deployment with Workers AI enabled. Otherwise connect a provider key, subscription, proxy, or local runner to continue.",
962
+ "action": "Configure AI"
963
+ },
964
+ "preset": {
965
+ "title": "Default model preset uses unavailable models",
966
+ "body": "Tasks using the default preset would fail. Edit the preset or configure the missing provider.",
967
+ "action": "Review preset"
968
+ }
969
+ },
970
+ "githubPatBanner": {
971
+ "title": "GitHub PAT not configured",
972
+ "body": "Local mode reaches GitHub with a personal access token. Without one, agent steps that clone, push, open PRs, gate on CI or merge will fail.",
973
+ "createToken": "Create a GitHub token (scopes pre-selected)",
974
+ "thenSet": "Then set {envVar} and restart."
975
+ },
976
+ "providerConfigBanner": {
977
+ "titleMany": "Providers need configuration",
978
+ "titleOne": {
979
+ "environment": "Environment provider needs configuration",
980
+ "runner-pool": "Runner pool needs configuration"
981
+ },
982
+ "body": "A provider is wired for this instance but is missing required settings, so it can't run yet. Add the mandatory fields to finish connecting it.",
983
+ "action": {
984
+ "environment": "Configure environment provider",
985
+ "runner-pool": "Configure runner pool"
986
+ }
987
+ },
988
+ "spendWarningBanner": {
989
+ "title": "Spend limit reached, agent execution paused",
990
+ "body": "This month's token spend has hit the configured budget, so running pipelines were paused to avoid further cost. Execution resumes automatically when the budget rolls over next month, or once the limit is raised.",
991
+ "spent": "Spent",
992
+ "budget": "Budget",
993
+ "tokens": "Tokens",
994
+ "resume": "Resume anyway",
995
+ "resumeHint": "Resuming continues spending; it will pause again if still over budget."
996
+ },
997
+ "personalSetup": {
998
+ "title": "My setup",
999
+ "intro": "Your personal connections, used for runs you start and visible only to you.",
1000
+ "connected": "Connected",
1001
+ "notConnected": "Not connected",
1002
+ "connectedCount": "no connected | {count} connected | {count} connected",
1003
+ "sourceControl": {
1004
+ "title": "Source control"
1005
+ },
1006
+ "githubToken": {
1007
+ "label": "My GitHub token",
1008
+ "description": "A personal access token used for runs you start (pushes, PRs, CI, merge)."
1009
+ },
1010
+ "models": {
1011
+ "title": "Models"
1012
+ },
1013
+ "localRunners": {
1014
+ "label": "My local runners",
1015
+ "description": "Your own-machine model runners (Ollama, LM Studio, vLLM)."
1016
+ },
1017
+ "subscriptions": {
1018
+ "label": "My subscriptions",
1019
+ "description": "Individual-usage plans you unlock with a personal password (Claude, GLM, Codex)."
1020
+ }
1021
+ },
1022
+ "integrationBack": {
1023
+ "backToMySetup": "Back to My setup",
1024
+ "backToIntegrations": "Back to Integrations"
1025
+ },
1026
+ "commandBar": {
1027
+ "searchPlaceholder": "Search or run a command…",
1028
+ "noMatches": "No matching commands.",
1029
+ "groups": {
1030
+ "create": "Create",
1031
+ "repositories": "Repositories",
1032
+ "integrations": "Integrations",
1033
+ "workspace": "Workspace",
1034
+ "account": "Account"
1035
+ },
1036
+ "cmd": {
1037
+ "newPipeline": "Build a pipeline",
1038
+ "addFromRepo": "Add service from existing repo",
1039
+ "bootstrapRepo": "Bootstrap a new repo",
1040
+ "githubManage": "Manage GitHub connection",
1041
+ "githubConnect": "Connect GitHub",
1042
+ "slackManage": "Manage Slack notifications",
1043
+ "slackConnect": "Connect Slack",
1044
+ "sourceManage": "Manage {source}",
1045
+ "sourceConnect": "Connect {source}",
1046
+ "documentImport": "Import and spawn from documents",
1047
+ "taskImport": "Import issues",
1048
+ "fragments": "Context fragment library",
1049
+ "mergeThresholds": "Merge thresholds",
1050
+ "workspaceSettings": "Workspace settings",
1051
+ "modelConfiguration": "Model configuration",
1052
+ "serviceFragmentDefaults": "Default service best practices",
1053
+ "accountSettings": "Account settings",
1054
+ "localModels": "My local runners",
1055
+ "sandbox": "Open Sandbox"
1056
+ },
1057
+ "keywords": {
1058
+ "newPipeline": "pipeline agents chain",
1059
+ "addFromRepo": "github import existing",
1060
+ "bootstrapRepo": "scaffold create reference architecture",
1061
+ "github": "git repos pull requests issues",
1062
+ "slack": "slack notifications channel mentions",
1063
+ "documentSource": "document source prd rfc",
1064
+ "documentImport": "document import spawn",
1065
+ "taskSource": "task source tracker issues",
1066
+ "taskImport": "task import issues",
1067
+ "fragments": "prompt fragments best practice guidelines context",
1068
+ "mergeThresholds": "merge policy preset auto-merge ci",
1069
+ "workspaceSettings": "limit running tasks per service waiting escalation overdue notification timeout",
1070
+ "modelConfiguration": "model llm routing agent kind default preset configuration",
1071
+ "serviceFragmentDefaults": "fragment best practice guideline service default code-aware",
1072
+ "accountSettings": "account team members roles invitations email api keys fragment best practice library context organization personal",
1073
+ "localModels": "local model runner ollama lm studio llamacpp vllm endpoint",
1074
+ "sandbox": "sandbox prompt model test experiment judge fixture benchmark evaluate"
1075
+ }
1076
+ },
1077
+ "integrationsHub": {
1078
+ "title": "Integrations",
1079
+ "intro": "Connect and manage the external systems this workspace can link in.",
1080
+ "searchPlaceholder": "Search integrations…",
1081
+ "noMatches": "No integrations match \"{query}\".",
1082
+ "getStarted": {
1083
+ "title": "Get started",
1084
+ "body": "Connect a code source and a model provider to run your first pipeline."
1085
+ },
1086
+ "status": {
1087
+ "connected": "Connected",
1088
+ "keyConnected": "Key connected",
1089
+ "notConnected": "Not connected",
1090
+ "needsAttention": "Needs attention",
1091
+ "disabled": "Disabled",
1092
+ "recommended": "Recommended"
1093
+ },
1094
+ "groups": {
1095
+ "models": "Models and providers",
1096
+ "sourceControl": "Source control",
1097
+ "communication": "Communication",
1098
+ "documents": "Documents",
1099
+ "taskTrackers": "Task trackers",
1100
+ "observability": "Observability",
1101
+ "infrastructure": "Infrastructure",
1102
+ "personal": "Personal (only you)"
1103
+ },
1104
+ "items": {
1105
+ "openrouter": {
1106
+ "description": "One gateway to 300+ models. Add your key and enable models in one place."
1107
+ },
1108
+ "vendors": {
1109
+ "label": "Vendors and keys",
1110
+ "description": "Workspace LLM subscriptions and provider API keys."
1111
+ },
1112
+ "github": {
1113
+ "description": "Connect the workspace's GitHub App, browse repos, PRs and issues."
1114
+ },
1115
+ "slack": {
1116
+ "description": "Route notifications to your team's Slack workspace."
1117
+ },
1118
+ "documentSource": {
1119
+ "description": "Link {source} as a document source for requirements context."
1120
+ },
1121
+ "documentImport": {
1122
+ "label": "Import and spawn",
1123
+ "description": "Pull documents from a connected source and spawn structure."
1124
+ },
1125
+ "taskSource": {
1126
+ "description": "Link {source} to import and reference tracker issues."
1127
+ },
1128
+ "taskImport": {
1129
+ "label": "Import issues",
1130
+ "description": "Pull issues from a connected tracker onto the board."
1131
+ },
1132
+ "trackerSettings": {
1133
+ "label": "Issue tracker settings"
1134
+ },
1135
+ "observability": {
1136
+ "label": "Post-release health",
1137
+ "description": "Watch monitors and SLOs after a release ships (Datadog)."
1138
+ },
1139
+ "environment": {
1140
+ "label": "Ephemeral environments",
1141
+ "description": "Where the Tester agent runs against a live preview environment."
1142
+ },
1143
+ "runnerPool": {
1144
+ "label": "Self-hosted runner pool",
1145
+ "description": "Where the coding agents run when not using Cloudflare Containers."
1146
+ },
1147
+ "localMode": {
1148
+ "label": "Local mode",
1149
+ "description": "Warm container pool plus per-repo checkout reuse for the local runner."
1150
+ },
1151
+ "githubPat": {
1152
+ "label": "My GitHub token",
1153
+ "description": "A personal access token used for runs you start (pushes, PRs, CI, merge)."
1154
+ },
1155
+ "localRunners": {
1156
+ "label": "My local runners",
1157
+ "description": "Your own-machine model runners (Ollama, LM Studio, vLLM…)."
1158
+ }
1159
+ }
1160
+ }
749
1161
  }
750
1162
  }