deployai 0.1.0-beta.3 → 0.1.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +1 -1
  2. package/dist/index.js +82 -70
  3. package/package.json +49 -12
package/README.md CHANGED
@@ -49,7 +49,7 @@ Node 20 or newer. No other setup: the CLI talks to https://deployai.co.il.
49
49
  | `deployai versions` | Lists versions: number, live or not, status ("replaced by a newer upload" for one that never built), date, size, message, and a dashboard link when its SQL waits for approval. |
50
50
  | `deployai rollback v5` | Puts version 5 back live, with no rebuild. |
51
51
  | `deployai promote v5` | Puts version 5 live. |
52
- | `deployai status` | Site state, address, live version and queue. |
52
+ | `deployai status` | Site state, address, live version, the newest version when it is not live yet (with the promote command once it is ready), and queue. |
53
53
  | `deployai deploy --guest` | No login needed: puts the site live as a temporary site with a claim link. More below. |
54
54
  | `deployai pull` | Downloads the code of the linked site's live version into this empty folder. Needs login. |
55
55
  | `deployai claim` | Prints this folder's temporary site keep link again. `--email <address>` mails it, with a reminder before the delete. |
package/dist/index.js CHANGED
@@ -117,7 +117,7 @@ var ISSUES = [
117
117
  code: "adapter_missing_sveltekit",
118
118
  severity: "blocker",
119
119
  titleEn: "SvelteKit adapter is missing",
120
- titleHe: "\u05D7\u05E1\u05E8 \u05DE\u05EA\u05D0\u05DD \u05DC SvelteKit",
120
+ titleHe: "\u05D7\u05E1\u05E8 \u05DE\u05EA\u05D0\u05DD \u05DC\u05BESvelteKit",
121
121
  agentLine: "SvelteKit is used without the Cloudflare adapter{detail} ({loc}).",
122
122
  fixForAgent: 'Keep SvelteKit. Install @sveltejs/adapter-cloudflare as a dev dependency, then where the adapter is set (vite.config.ts on SvelteKit 3, svelte.config.js before) import adapter from "@sveltejs/adapter-cloudflare" and set adapter: adapter(). Remove @sveltejs/adapter-auto or other adapters. Do not convert the site.'
123
123
  },
@@ -125,7 +125,7 @@ var ISSUES = [
125
125
  code: "adapter_missing_react_router",
126
126
  severity: "blocker",
127
127
  titleEn: "React Router adapter is missing",
128
- titleHe: "\u05D7\u05E1\u05E8 \u05DE\u05EA\u05D0\u05DD \u05DC React Router",
128
+ titleHe: "\u05D7\u05E1\u05E8 \u05DE\u05EA\u05D0\u05DD \u05DC\u05BEReact Router",
129
129
  agentLine: "React Router (framework mode) is used without the Cloudflare Vite plugin{detail} ({loc}).",
130
130
  fixForAgent: 'Keep React Router. Install @cloudflare/vite-plugin and wrangler as dev dependencies, add cloudflare({ viteEnvironment: { name: "ssr" } }) before reactRouter() in the vite.config plugins, add workers/app.ts that exports default { fetch } and passes each request to createRequestHandler(() => import("virtual:react-router/server-build")) from react-router, and add wrangler.jsonc with "main": "./workers/app.ts" and "compatibility_flags": ["nodejs_compat"]. Follow the official Cloudflare React Router template. Do not convert the site.'
131
131
  },
@@ -141,7 +141,7 @@ var ISSUES = [
141
141
  code: "adapter_missing_nextjs",
142
142
  severity: "blocker",
143
143
  titleEn: "Next.js needs the OpenNext adapter",
144
- titleHe: "\u05DC Next.js \u05D7\u05E1\u05E8 \u05D4\u05DE\u05EA\u05D0\u05DD OpenNext",
144
+ titleHe: "\u05DC\u05BENext.js \u05D7\u05E1\u05E8 \u05D4\u05DE\u05EA\u05D0\u05DD OpenNext",
145
145
  agentLine: "Next.js{detail} is used without the OpenNext Cloudflare adapter ({loc}).",
146
146
  fixForAgent: 'Keep Next.js. Install @opennextjs/cloudflare as a dependency and add open-next.config.ts with: import { defineCloudflareConfig } from "@opennextjs/cloudflare"; export default defineCloudflareConfig();. DeployAI then builds with opennextjs-cloudflare build. Next.js on DeployAI is in beta: tell the user, and do not convert the site.'
147
147
  },
@@ -149,7 +149,7 @@ var ISSUES = [
149
149
  code: "adapter_missing_solidstart",
150
150
  severity: "blocker",
151
151
  titleEn: "SolidStart preset is missing",
152
- titleHe: "\u05D7\u05E1\u05E8\u05D4 \u05D4\u05D2\u05D3\u05E8\u05D4 \u05DC SolidStart",
152
+ titleHe: "\u05D7\u05E1\u05E8\u05D4 \u05D4\u05D2\u05D3\u05E8\u05D4 \u05DC\u05BESolidStart",
153
153
  agentLine: "SolidStart is used without the Cloudflare preset{detail} ({loc}).",
154
154
  fixForAgent: 'Keep SolidStart. Set server: { preset: "cloudflare_module" } in app.config.ts (in vite.config.ts on SolidStart 2). SolidStart on DeployAI is in beta: tell the user.'
155
155
  },
@@ -157,7 +157,7 @@ var ISSUES = [
157
157
  code: "adapter_missing_qwik",
158
158
  severity: "blocker",
159
159
  titleEn: "Qwik City adapter is missing",
160
- titleHe: "\u05D7\u05E1\u05E8 \u05DE\u05EA\u05D0\u05DD \u05DC Qwik City",
160
+ titleHe: "\u05D7\u05E1\u05E8 \u05DE\u05EA\u05D0\u05DD \u05DC\u05BEQwik City",
161
161
  agentLine: "Qwik City is used without the Cloudflare adapter{detail} ({loc}).",
162
162
  fixForAgent: "Keep Qwik. Run npm run qwik add cloudflare-pages, which adds adapters/cloudflare-pages/vite.config.ts and the build.server script. Qwik City on DeployAI is in beta: tell the user."
163
163
  },
@@ -165,7 +165,7 @@ var ISSUES = [
165
165
  code: "adapter_missing_tanstack_start",
166
166
  severity: "blocker",
167
167
  titleEn: "TanStack Start adapter is missing",
168
- titleHe: "\u05D7\u05E1\u05E8 \u05DE\u05EA\u05D0\u05DD \u05DC TanStack Start",
168
+ titleHe: "\u05D7\u05E1\u05E8 \u05DE\u05EA\u05D0\u05DD \u05DC\u05BETanStack Start",
169
169
  agentLine: "TanStack Start is used without the Cloudflare Vite plugin{detail} ({loc}).",
170
170
  fixForAgent: 'Keep TanStack Start. Install @cloudflare/vite-plugin and wrangler as dev dependencies, add cloudflare({ viteEnvironment: { name: "ssr" } }) to the vite.config plugins, and add wrangler.jsonc with "main": "@tanstack/react-start/server-entry" and "compatibility_flags": ["nodejs_compat"]. TanStack Start on DeployAI is in beta: tell the user.'
171
171
  },
@@ -697,7 +697,7 @@ function frameworkDisplay(d) {
697
697
 
698
698
  // ../shared/src/issue-help.ts
699
699
  var HELP_ORIGIN = "https://deployai.co.il";
700
- var DB_PROMPT_HE = "\u05D4\u05E2\u05D1\u05E8 \u05D0\u05EA \u05E9\u05DB\u05D1\u05EA \u05D4\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05DC Cloudflare D1 (SQLite). \u05E2\u05DD Prisma \u05D4\u05E9\u05EA\u05DE\u05E9 \u05D1 provider \u05E9\u05DC sqlite \u05D5\u05D1\u05DE\u05EA\u05D0\u05DD \u05E9\u05DC D1, \u05D0\u05D5 \u05D4\u05E9\u05EA\u05DE\u05E9 \u05D1 Drizzle \u05E2\u05DD drizzle-orm/d1. \u05E9\u05DE\u05D5\u05E8 \u05E2\u05DC \u05D0\u05D5\u05EA\u05DF \u05D8\u05D1\u05DC\u05D0\u05D5\u05EA \u05D5\u05E9\u05D3\u05D5\u05EA.";
700
+ var DB_PROMPT_HE = "\u05D4\u05E2\u05D1\u05E8 \u05D0\u05EA \u05E9\u05DB\u05D1\u05EA \u05D4\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05DC\u05BECloudflare D1 (SQLite). \u05E2\u05DD Prisma \u05D4\u05E9\u05EA\u05DE\u05E9 \u05D1\u05BEprovider \u05E9\u05DC sqlite \u05D5\u05D1\u05DE\u05EA\u05D0\u05DD \u05E9\u05DC D1, \u05D0\u05D5 \u05D4\u05E9\u05EA\u05DE\u05E9 \u05D1\u05BEDrizzle \u05E2\u05DD drizzle-orm/d1. \u05E9\u05DE\u05D5\u05E8 \u05E2\u05DC \u05D0\u05D5\u05EA\u05DF \u05D8\u05D1\u05DC\u05D0\u05D5\u05EA \u05D5\u05E9\u05D3\u05D5\u05EA.";
701
701
  function serverDb(nameHe, nameEn) {
702
702
  return {
703
703
  he: {
@@ -736,7 +736,7 @@ var ISSUE_HELP = {
736
736
  what: "\u05D4\u05D0\u05EA\u05E8 \u05E9\u05D5\u05DE\u05E8 \u05E7\u05D1\u05E6\u05D9\u05DD \u05D1\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05E2\u05DC \u05D4\u05E9\u05E8\u05EA, \u05DC\u05DE\u05E9\u05DC \u05EA\u05DE\u05D5\u05E0\u05D5\u05EA \u05E9\u05D2\u05D5\u05DC\u05E9\u05D9\u05DD \u05DE\u05E2\u05DC\u05D9\u05DD \u05D0\u05D5 \u05E7\u05D5\u05D1\u05E5 \u05E2\u05DD \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD.",
737
737
  why: "\u05DC\u05D0\u05EA\u05E8\u05D9\u05DD \u05D0\u05E6\u05DC\u05E0\u05D5 \u05D0\u05D9\u05DF \u05D3\u05D9\u05E1\u05E7 \u05E7\u05D1\u05D5\u05E2. \u05DB\u05DC \u05DB\u05E0\u05D9\u05E1\u05D4 \u05DC\u05D0\u05EA\u05E8 \u05DE\u05EA\u05D7\u05D9\u05DC\u05D4 \u05DE\u05D7\u05D3\u05E9, \u05D5\u05E7\u05D5\u05D1\u05E5 \u05E9\u05E0\u05E9\u05DE\u05E8 \u05E0\u05E2\u05DC\u05DD \u05DE\u05D9\u05D3. \u05DC\u05DB\u05DF \u05D4\u05D0\u05EA\u05E8 \u05DC\u05D0 \u05D9\u05E2\u05DC\u05D4 \u05E2\u05D3 \u05E9\u05D6\u05D4 \u05D9\u05E9\u05EA\u05E0\u05D4.",
738
738
  fix: ["\u05E7\u05D1\u05E6\u05D9\u05DD \u05E9\u05D2\u05D5\u05DC\u05E9\u05D9\u05DD \u05DE\u05E2\u05DC\u05D9\u05DD \u05E0\u05E9\u05DE\u05E8\u05D9\u05DD \u05D1\u05D0\u05D7\u05E1\u05D5\u05DF \u05D4\u05E7\u05D1\u05E6\u05D9\u05DD \u05E9\u05DC\u05E0\u05D5.", "\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05DB\u05DE\u05D5 \u05D4\u05D6\u05DE\u05E0\u05D5\u05EA \u05D0\u05D5 \u05E4\u05E0\u05D9\u05D5\u05EA \u05E0\u05E9\u05DE\u05E8\u05D9\u05DD \u05D1\u05DE\u05E1\u05D3 \u05D4\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05E9\u05DC\u05E0\u05D5.", "\u05E7\u05E8\u05D9\u05D0\u05D4 \u05E9\u05DC \u05E7\u05D1\u05E6\u05D9\u05DD \u05E9\u05D4\u05DD \u05D7\u05DC\u05E7 \u05DE\u05D4\u05D0\u05EA\u05E8 \u05DE\u05D5\u05EA\u05E8\u05EA, \u05DB\u05E9\u05D4\u05D9\u05D0 \u05E7\u05D5\u05E8\u05D9\u05EA \u05D1\u05D6\u05DE\u05DF \u05D4\u05D1\u05E0\u05D9\u05D9\u05D4."],
739
- prompt: "\u05D4\u05D0\u05EA\u05E8 \u05E8\u05E5 \u05D1\u05DC\u05D9 \u05D3\u05D9\u05E1\u05E7 \u05E9\u05D0\u05E4\u05E9\u05E8 \u05DC\u05DB\u05EA\u05D5\u05D1 \u05D0\u05DC\u05D9\u05D5. \u05E9\u05DE\u05D5\u05E8 \u05E7\u05D1\u05E6\u05D9\u05DD \u05E9\u05DE\u05D5\u05E2\u05DC\u05D9\u05DD \u05D1 R2 (\u05D0\u05D7\u05E1\u05D5\u05DF \u05E7\u05D1\u05E6\u05D9\u05DD) \u05D5\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05D1 D1. \u05E7\u05E8\u05D9\u05D0\u05D4 \u05E9\u05DC \u05E7\u05D1\u05E6\u05D9\u05DD \u05DE\u05EA\u05D5\u05DA \u05D4\u05E4\u05E8\u05D5\u05D9\u05E7\u05D8 \u05DE\u05D5\u05EA\u05E8\u05EA \u05E8\u05E7 \u05D0\u05DD \u05D4\u05D9\u05D0 \u05E7\u05D5\u05E8\u05D9\u05EA \u05D1\u05D6\u05DE\u05DF \u05D4\u05D1\u05E0\u05D9\u05D9\u05D4."
739
+ prompt: "\u05D4\u05D0\u05EA\u05E8 \u05E8\u05E5 \u05D1\u05DC\u05D9 \u05D3\u05D9\u05E1\u05E7 \u05E9\u05D0\u05E4\u05E9\u05E8 \u05DC\u05DB\u05EA\u05D5\u05D1 \u05D0\u05DC\u05D9\u05D5. \u05E9\u05DE\u05D5\u05E8 \u05E7\u05D1\u05E6\u05D9\u05DD \u05E9\u05DE\u05D5\u05E2\u05DC\u05D9\u05DD \u05D1\u05BER2 (\u05D0\u05D7\u05E1\u05D5\u05DF \u05E7\u05D1\u05E6\u05D9\u05DD) \u05D5\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05D1\u05BED1. \u05E7\u05E8\u05D9\u05D0\u05D4 \u05E9\u05DC \u05E7\u05D1\u05E6\u05D9\u05DD \u05DE\u05EA\u05D5\u05DA \u05D4\u05E4\u05E8\u05D5\u05D9\u05E7\u05D8 \u05DE\u05D5\u05EA\u05E8\u05EA \u05E8\u05E7 \u05D0\u05DD \u05D4\u05D9\u05D0 \u05E7\u05D5\u05E8\u05D9\u05EA \u05D1\u05D6\u05DE\u05DF \u05D4\u05D1\u05E0\u05D9\u05D9\u05D4."
740
740
  },
741
741
  en: {
742
742
  what: "The site saves files in a folder on the server, such as images that visitors upload or a file with data.",
@@ -748,10 +748,10 @@ var ISSUE_HELP = {
748
748
  unsupported_db_mysql: serverDb("MySQL", "MySQL"),
749
749
  unsupported_db_mongodb: {
750
750
  he: {
751
- what: "\u05D4\u05D0\u05EA\u05E8 \u05E9\u05D5\u05DE\u05E8 \u05D0\u05EA \u05D4\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05E9\u05DC\u05D5 \u05D1 MongoDB, \u05DE\u05E1\u05D3 \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05E9\u05E8\u05E5 \u05E2\u05DC \u05E9\u05E8\u05EA \u05E0\u05E4\u05E8\u05D3.",
752
- why: "\u05DB\u05DC \u05D0\u05EA\u05E8 \u05D0\u05E6\u05DC\u05E0\u05D5 \u05DE\u05E7\u05D1\u05DC \u05DE\u05E1\u05D3 \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05DE\u05D5\u05D1\u05E0\u05D4, \u05D5\u05D0\u05D9\u05DF \u05D7\u05D9\u05D1\u05D5\u05E8 \u05DC MongoDB. \u05D4\u05D0\u05EA\u05E8 \u05DC\u05D0 \u05D9\u05E2\u05DC\u05D4 \u05E2\u05D3 \u05E9\u05D4\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05D9\u05E2\u05D1\u05E8\u05D5 \u05DC\u05DE\u05E1\u05D3 \u05D4\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05E9\u05DC\u05E0\u05D5.",
751
+ what: "\u05D4\u05D0\u05EA\u05E8 \u05E9\u05D5\u05DE\u05E8 \u05D0\u05EA \u05D4\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05E9\u05DC\u05D5 \u05D1\u05BEMongoDB, \u05DE\u05E1\u05D3 \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05E9\u05E8\u05E5 \u05E2\u05DC \u05E9\u05E8\u05EA \u05E0\u05E4\u05E8\u05D3.",
752
+ why: "\u05DB\u05DC \u05D0\u05EA\u05E8 \u05D0\u05E6\u05DC\u05E0\u05D5 \u05DE\u05E7\u05D1\u05DC \u05DE\u05E1\u05D3 \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05DE\u05D5\u05D1\u05E0\u05D4, \u05D5\u05D0\u05D9\u05DF \u05D7\u05D9\u05D1\u05D5\u05E8 \u05DC\u05BEMongoDB. \u05D4\u05D0\u05EA\u05E8 \u05DC\u05D0 \u05D9\u05E2\u05DC\u05D4 \u05E2\u05D3 \u05E9\u05D4\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05D9\u05E2\u05D1\u05E8\u05D5 \u05DC\u05DE\u05E1\u05D3 \u05D4\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05E9\u05DC\u05E0\u05D5.",
753
753
  fix: ["\u05D4\u05E1\u05D5\u05DB\u05DF \u05E9\u05DC\u05DB\u05DD \u05D4\u05D5\u05E4\u05DA \u05DB\u05DC \u05D0\u05D5\u05E1\u05E3 \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05DC\u05D8\u05D1\u05DC\u05D4 \u05D1\u05DE\u05E1\u05D3 \u05D4\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05E9\u05DC\u05E0\u05D5, \u05E2\u05DD \u05E2\u05DE\u05D5\u05D3\u05D5\u05EA \u05D1\u05E8\u05D5\u05E8\u05D5\u05EA.", "\u05D0\u05DD \u05D9\u05E9 \u05DB\u05D1\u05E8 \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05D0\u05DE\u05D9\u05EA\u05D9\u05D9\u05DD, \u05E9\u05D5\u05DE\u05E8\u05D9\u05DD \u05DE\u05D4\u05DD \u05E2\u05D5\u05EA\u05E7 \u05DC\u05E4\u05E0\u05D9 \u05D4\u05DE\u05E2\u05D1\u05E8.", "\u05DE\u05E8\u05D9\u05E6\u05D9\u05DD \u05E9\u05D5\u05D1 \u05D0\u05EA \u05D4\u05D1\u05D3\u05D9\u05E7\u05D4."],
754
- prompt: "\u05D4\u05E2\u05D1\u05E8 \u05D0\u05EA \u05D4\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05DC Cloudflare D1 (SQLite). \u05D4\u05E4\u05D5\u05DA \u05DB\u05DC collection \u05DC\u05D8\u05D1\u05DC\u05D4 \u05E2\u05DD \u05E2\u05DE\u05D5\u05D3\u05D5\u05EA \u05D1\u05E8\u05D5\u05E8\u05D5\u05EA, \u05D5\u05E9\u05DE\u05D5\u05E8 \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05DE\u05E7\u05D5\u05E0\u05E0\u05D9\u05DD \u05D1\u05E2\u05DE\u05D5\u05D3\u05D5\u05EA \u05D8\u05E7\u05E1\u05D8 \u05E9\u05DC JSON \u05DB\u05E9\u05E6\u05E8\u05D9\u05DA."
754
+ prompt: "\u05D4\u05E2\u05D1\u05E8 \u05D0\u05EA \u05D4\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05DC\u05BECloudflare D1 (SQLite). \u05D4\u05E4\u05D5\u05DA \u05DB\u05DC collection \u05DC\u05D8\u05D1\u05DC\u05D4 \u05E2\u05DD \u05E2\u05DE\u05D5\u05D3\u05D5\u05EA \u05D1\u05E8\u05D5\u05E8\u05D5\u05EA, \u05D5\u05E9\u05DE\u05D5\u05E8 \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05DE\u05E7\u05D5\u05E0\u05E0\u05D9\u05DD \u05D1\u05E2\u05DE\u05D5\u05D3\u05D5\u05EA \u05D8\u05E7\u05E1\u05D8 \u05E9\u05DC JSON \u05DB\u05E9\u05E6\u05E8\u05D9\u05DA."
755
755
  },
756
756
  en: {
757
757
  what: "The site keeps its data in MongoDB, a database that runs on a separate server.",
@@ -764,7 +764,7 @@ var ISSUE_HELP = {
764
764
  what: "\u05D4\u05D0\u05EA\u05E8 \u05E9\u05D5\u05DE\u05E8 \u05D0\u05EA \u05D4\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05D1\u05E7\u05D5\u05D1\u05E5 \u05DE\u05E1\u05D3 \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05E9\u05E0\u05DE\u05E6\u05D0 \u05D1\u05EA\u05D5\u05DA \u05D4\u05E4\u05E8\u05D5\u05D9\u05E7\u05D8.",
765
765
  why: "\u05D0\u05D9\u05DF \u05D0\u05E6\u05DC\u05E0\u05D5 \u05D3\u05D9\u05E1\u05E7 \u05E7\u05D1\u05D5\u05E2, \u05D0\u05D6 \u05E7\u05D5\u05D1\u05E5 \u05DB\u05D6\u05D4 \u05DC\u05D0 \u05E0\u05E9\u05DE\u05E8 \u05D1\u05D9\u05DF \u05DB\u05E0\u05D9\u05E1\u05D4 \u05DC\u05DB\u05E0\u05D9\u05E1\u05D4. \u05D4\u05D7\u05D3\u05E9\u05D5\u05EA \u05D4\u05D8\u05D5\u05D1\u05D5\u05EA: \u05DE\u05E1\u05D3 \u05D4\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05E9\u05DC\u05E0\u05D5 \u05DE\u05D3\u05D1\u05E8 \u05D1\u05D0\u05D5\u05EA\u05D4 \u05E9\u05E4\u05D4, \u05D0\u05D6 \u05D4\u05D8\u05D1\u05DC\u05D0\u05D5\u05EA \u05D5\u05D4\u05E9\u05D0\u05D9\u05DC\u05EA\u05D5\u05EA \u05E0\u05E9\u05D0\u05E8\u05D5\u05EA \u05DB\u05DE\u05D5 \u05E9\u05D4\u05DF.",
766
766
  fix: ["\u05D4\u05E1\u05D5\u05DB\u05DF \u05E9\u05DC\u05DB\u05DD \u05DE\u05D7\u05DC\u05D9\u05E3 \u05D0\u05EA \u05D4\u05D7\u05D9\u05D1\u05D5\u05E8 \u05DC\u05E7\u05D5\u05D1\u05E5 \u05D1\u05D7\u05D9\u05D1\u05D5\u05E8 \u05DC\u05DE\u05E1\u05D3 \u05D4\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05E9\u05DC\u05E0\u05D5.", "\u05D4\u05D8\u05D1\u05DC\u05D0\u05D5\u05EA \u05D5\u05D4\u05E9\u05D0\u05D9\u05DC\u05EA\u05D5\u05EA \u05E0\u05E9\u05D0\u05E8\u05D5\u05EA.", "\u05DE\u05E8\u05D9\u05E6\u05D9\u05DD \u05E9\u05D5\u05D1 \u05D0\u05EA \u05D4\u05D1\u05D3\u05D9\u05E7\u05D4."],
767
- prompt: "D1 \u05D4\u05D5\u05D0 SQLite \u05E9\u05DE\u05E0\u05D5\u05D4\u05DC \u05E2\u05DC \u05D9\u05D3\u05D9 Cloudflare, \u05DB\u05DA \u05E9\u05D4 SQL \u05D9\u05DB\u05D5\u05DC \u05DC\u05D4\u05D9\u05E9\u05D0\u05E8. \u05D4\u05D7\u05DC\u05E3 \u05D0\u05EA \u05D4\u05D3\u05E8\u05D9\u05D9\u05D1\u05E8 \u05D4\u05DE\u05E7\u05D5\u05DE\u05D9 \u05D1 binding \u05E9\u05DC D1, \u05D0\u05D5 \u05D1 Drizzle \u05E2\u05DD drizzle-orm/d1."
767
+ prompt: "D1 \u05D4\u05D5\u05D0 SQLite \u05E9\u05DE\u05E0\u05D5\u05D4\u05DC \u05E2\u05DC \u05D9\u05D3\u05D9 Cloudflare, \u05DB\u05DA \u05E9\u05D4 SQL \u05D9\u05DB\u05D5\u05DC \u05DC\u05D4\u05D9\u05E9\u05D0\u05E8. \u05D4\u05D7\u05DC\u05E3 \u05D0\u05EA \u05D4\u05D3\u05E8\u05D9\u05D9\u05D1\u05E8 \u05D4\u05DE\u05E7\u05D5\u05DE\u05D9 \u05D1\u05BEbinding \u05E9\u05DC D1, \u05D0\u05D5 \u05D1\u05BEDrizzle \u05E2\u05DD drizzle-orm/d1."
768
768
  },
769
769
  en: {
770
770
  what: "The site keeps its data in a database file inside the project.",
@@ -789,8 +789,8 @@ var ISSUE_HELP = {
789
789
  he: {
790
790
  what: "\u05D4\u05D0\u05EA\u05E8 \u05DE\u05E9\u05EA\u05DE\u05E9 \u05D1\u05E1\u05E4\u05E8\u05D9\u05D9\u05D4 bcrypt \u05DB\u05D3\u05D9 \u05DC\u05E9\u05DE\u05D5\u05E8 \u05E1\u05D9\u05E1\u05DE\u05D0\u05D5\u05EA \u05D1\u05E6\u05D5\u05E8\u05D4 \u05D1\u05D8\u05D5\u05D7\u05D4.",
791
791
  why: "bcrypt \u05D1\u05E0\u05D5\u05D9\u05D4 \u05DE\u05E7\u05D5\u05D3 \u05DE\u05E7\u05D5\u05DE\u05D9 \u05E9\u05DC\u05D0 \u05E8\u05E5 \u05E2\u05DC \u05D4\u05E9\u05E8\u05EA\u05D9\u05DD \u05E9\u05DC\u05E0\u05D5, \u05D5\u05DC\u05DB\u05DF \u05D4\u05D0\u05EA\u05E8 \u05DC\u05D0 \u05D9\u05E2\u05DC\u05D4.",
792
- fix: ["\u05DE\u05D7\u05DC\u05D9\u05E4\u05D9\u05DD \u05DC bcryptjs, \u05E1\u05E4\u05E8\u05D9\u05D9\u05D4 \u05E9\u05E2\u05D5\u05D1\u05D3\u05EA \u05D1\u05D3\u05D9\u05D5\u05E7 \u05D0\u05D5\u05EA\u05D5 \u05D3\u05D1\u05E8 \u05D5\u05DB\u05EA\u05D5\u05D1\u05D4 \u05DB\u05D5\u05DC\u05D4 \u05D1 JavaScript.", "\u05E1\u05D9\u05E1\u05DE\u05D0\u05D5\u05EA \u05E9\u05DB\u05D1\u05E8 \u05E9\u05DE\u05D5\u05E8\u05D5\u05EA \u05DE\u05DE\u05E9\u05D9\u05DB\u05D5\u05EA \u05DC\u05E2\u05D1\u05D5\u05D3. \u05D4\u05DE\u05E9\u05EA\u05DE\u05E9\u05D9\u05DD \u05DC\u05D0 \u05E6\u05E8\u05D9\u05DB\u05D9\u05DD \u05DC\u05D1\u05D7\u05D5\u05E8 \u05E1\u05D9\u05E1\u05DE\u05D4 \u05D7\u05D3\u05E9\u05D4."],
793
- prompt: "\u05D4\u05D7\u05DC\u05E3 \u05D0\u05EA bcrypt \u05D1 bcryptjs (\u05D0\u05D5\u05EA\u05D5 API, JavaScript \u05D8\u05D4\u05D5\u05E8), \u05D0\u05D5 \u05D1 Web Crypto API (PBKDF2). \u05D2\u05D9\u05D1\u05D5\u05D1\u05D9 \u05E1\u05D9\u05E1\u05DE\u05D0\u05D5\u05EA \u05E7\u05D9\u05D9\u05DE\u05D9\u05DD \u05E9\u05DC bcrypt \u05E0\u05E9\u05D0\u05E8\u05D9\u05DD \u05EA\u05E7\u05E4\u05D9\u05DD \u05E2\u05DD bcryptjs."
792
+ fix: ["\u05DE\u05D7\u05DC\u05D9\u05E4\u05D9\u05DD \u05DC\u05BEbcryptjs, \u05E1\u05E4\u05E8\u05D9\u05D9\u05D4 \u05E9\u05E2\u05D5\u05D1\u05D3\u05EA \u05D1\u05D3\u05D9\u05D5\u05E7 \u05D0\u05D5\u05EA\u05D5 \u05D3\u05D1\u05E8 \u05D5\u05DB\u05EA\u05D5\u05D1\u05D4 \u05DB\u05D5\u05DC\u05D4 \u05D1\u05BEJavaScript.", "\u05E1\u05D9\u05E1\u05DE\u05D0\u05D5\u05EA \u05E9\u05DB\u05D1\u05E8 \u05E9\u05DE\u05D5\u05E8\u05D5\u05EA \u05DE\u05DE\u05E9\u05D9\u05DB\u05D5\u05EA \u05DC\u05E2\u05D1\u05D5\u05D3. \u05D4\u05DE\u05E9\u05EA\u05DE\u05E9\u05D9\u05DD \u05DC\u05D0 \u05E6\u05E8\u05D9\u05DB\u05D9\u05DD \u05DC\u05D1\u05D7\u05D5\u05E8 \u05E1\u05D9\u05E1\u05DE\u05D4 \u05D7\u05D3\u05E9\u05D4."],
793
+ prompt: "\u05D4\u05D7\u05DC\u05E3 \u05D0\u05EA bcrypt \u05D1\u05BEbcryptjs (\u05D0\u05D5\u05EA\u05D5 API, JavaScript \u05D8\u05D4\u05D5\u05E8), \u05D0\u05D5 \u05D1\u05BEWeb Crypto API (PBKDF2). \u05D2\u05D9\u05D1\u05D5\u05D1\u05D9 \u05E1\u05D9\u05E1\u05DE\u05D0\u05D5\u05EA \u05E7\u05D9\u05D9\u05DE\u05D9\u05DD \u05E9\u05DC bcrypt \u05E0\u05E9\u05D0\u05E8\u05D9\u05DD \u05EA\u05E7\u05E4\u05D9\u05DD \u05E2\u05DD bcryptjs."
794
794
  },
795
795
  en: {
796
796
  what: "The site uses the bcrypt library to store passwords safely.",
@@ -800,9 +800,9 @@ var ISSUE_HELP = {
800
800
  },
801
801
  native_module_other: {
802
802
  he: {
803
- what: "\u05D4\u05D0\u05EA\u05E8 \u05DE\u05E9\u05EA\u05DE\u05E9 \u05D1\u05E1\u05E4\u05E8\u05D9\u05D9\u05D4 \u05E9\u05D1\u05E0\u05D5\u05D9\u05D4 \u05DE\u05E7\u05D5\u05D3 \u05DE\u05E7\u05D5\u05DE\u05D9 \u05DC\u05DE\u05D7\u05E9\u05D1 \u05DE\u05E1\u05D5\u05D9\u05DD, \u05D5\u05DC\u05D0 \u05E8\u05E7 \u05DE JavaScript.",
803
+ what: "\u05D4\u05D0\u05EA\u05E8 \u05DE\u05E9\u05EA\u05DE\u05E9 \u05D1\u05E1\u05E4\u05E8\u05D9\u05D9\u05D4 \u05E9\u05D1\u05E0\u05D5\u05D9\u05D4 \u05DE\u05E7\u05D5\u05D3 \u05DE\u05E7\u05D5\u05DE\u05D9 \u05DC\u05DE\u05D7\u05E9\u05D1 \u05DE\u05E1\u05D5\u05D9\u05DD, \u05D5\u05DC\u05D0 \u05E8\u05E7 \u05DE\u05BEJavaScript.",
804
804
  why: "\u05E1\u05E4\u05E8\u05D9\u05D5\u05EA \u05DB\u05D0\u05DC\u05D4 \u05DC\u05D0 \u05E8\u05E6\u05D5\u05EA \u05E2\u05DC \u05D4\u05E9\u05E8\u05EA\u05D9\u05DD \u05E9\u05DC\u05E0\u05D5, \u05D5\u05DC\u05DB\u05DF \u05D4\u05D0\u05EA\u05E8 \u05DC\u05D0 \u05D9\u05E2\u05DC\u05D4.",
805
- fix: ["\u05DE\u05D7\u05DC\u05D9\u05E4\u05D9\u05DD \u05D0\u05EA \u05D4\u05E1\u05E4\u05E8\u05D9\u05D9\u05D4 \u05D1\u05D7\u05DC\u05D5\u05E4\u05D4 \u05E9\u05DB\u05EA\u05D5\u05D1\u05D4 \u05D1 JavaScript.", "\u05D0\u05D5 \u05DE\u05E2\u05D1\u05D9\u05E8\u05D9\u05DD \u05D0\u05EA \u05D4\u05E2\u05D1\u05D5\u05D3\u05D4 \u05E9\u05DC\u05D4 \u05DC\u05D6\u05DE\u05DF \u05D4\u05D1\u05E0\u05D9\u05D9\u05D4."],
805
+ fix: ["\u05DE\u05D7\u05DC\u05D9\u05E4\u05D9\u05DD \u05D0\u05EA \u05D4\u05E1\u05E4\u05E8\u05D9\u05D9\u05D4 \u05D1\u05D7\u05DC\u05D5\u05E4\u05D4 \u05E9\u05DB\u05EA\u05D5\u05D1\u05D4 \u05D1\u05BEJavaScript.", "\u05D0\u05D5 \u05DE\u05E2\u05D1\u05D9\u05E8\u05D9\u05DD \u05D0\u05EA \u05D4\u05E2\u05D1\u05D5\u05D3\u05D4 \u05E9\u05DC\u05D4 \u05DC\u05D6\u05DE\u05DF \u05D4\u05D1\u05E0\u05D9\u05D9\u05D4."],
806
806
  prompt: "\u05E1\u05E4\u05E8\u05D9\u05D5\u05EA \u05E0\u05D9\u05D9\u05D8\u05D9\u05D1 \u05DC\u05D0 \u05D9\u05DB\u05D5\u05DC\u05D5\u05EA \u05DC\u05E8\u05D5\u05E5 \u05D1\u05E9\u05E8\u05EA. \u05D4\u05D7\u05DC\u05E3 \u05D0\u05EA \u05D4\u05E1\u05E4\u05E8\u05D9\u05D9\u05D4 \u05D1\u05D7\u05DC\u05D5\u05E4\u05D4 \u05E9\u05DC JavaScript \u05D8\u05D4\u05D5\u05E8 \u05D0\u05D5 \u05E9\u05DC Web API, \u05D0\u05D5 \u05D4\u05E2\u05D1\u05E8 \u05D0\u05EA \u05D4\u05E2\u05D1\u05D5\u05D3\u05D4 \u05D4\u05D6\u05D5 \u05DC\u05D6\u05DE\u05DF \u05D4\u05D1\u05E0\u05D9\u05D9\u05D4."
807
807
  },
808
808
  en: {
@@ -816,7 +816,7 @@ var ISSUE_HELP = {
816
816
  what: "\u05D4\u05D0\u05EA\u05E8 \u05DE\u05E4\u05E2\u05D9\u05DC \u05DE\u05E9\u05D4\u05D5 \u05E9\u05E8\u05E5 \u05D1\u05E8\u05E7\u05E2 \u05DB\u05DC \u05D4\u05D6\u05DE\u05DF, \u05DB\u05DE\u05D5 \u05D8\u05D9\u05D9\u05DE\u05E8, \u05EA\u05D5\u05E8 \u05DE\u05E9\u05D9\u05DE\u05D5\u05EA \u05D0\u05D5 \u05DE\u05E9\u05D9\u05DE\u05D4 \u05DE\u05EA\u05D5\u05D6\u05DE\u05E0\u05EA.",
817
817
  why: "\u05D0\u05E6\u05DC\u05E0\u05D5 \u05D4\u05D0\u05EA\u05E8 \u05E8\u05E5 \u05E8\u05E7 \u05DB\u05E9\u05DE\u05D9\u05E9\u05D4\u05D5 \u05E0\u05DB\u05E0\u05E1, \u05D5\u05E9\u05D5\u05DD \u05D3\u05D1\u05E8 \u05DC\u05D0 \u05E0\u05E9\u05D0\u05E8 \u05E4\u05D5\u05E2\u05DC \u05D1\u05D9\u05DF \u05DB\u05E0\u05D9\u05E1\u05D4 \u05DC\u05DB\u05E0\u05D9\u05E1\u05D4. \u05DE\u05D4 \u05E9\u05E8\u05E5 \u05D1\u05E8\u05E7\u05E2 \u05E4\u05E9\u05D5\u05D8 \u05DC\u05D0 \u05D9\u05E4\u05E2\u05DC, \u05D5\u05DC\u05DB\u05DF \u05D4\u05D0\u05EA\u05E8 \u05DC\u05D0 \u05D9\u05E2\u05DC\u05D4.",
818
818
  fix: ["\u05DE\u05D5\u05E6\u05D9\u05D0\u05D9\u05DD \u05DE\u05D4\u05D0\u05EA\u05E8 \u05D8\u05D9\u05D9\u05DE\u05E8\u05D9\u05DD, \u05EA\u05D5\u05E8\u05D9 \u05DE\u05E9\u05D9\u05DE\u05D5\u05EA \u05D5\u05E1\u05E4\u05E8\u05D9\u05D5\u05EA \u05E9\u05DC \u05DE\u05E9\u05D9\u05DE\u05D5\u05EA \u05DE\u05EA\u05D5\u05D6\u05DE\u05E0\u05D5\u05EA.", "\u05D0\u05DD \u05E6\u05E8\u05D9\u05DA \u05DE\u05E9\u05D9\u05DE\u05D4 \u05E9\u05E8\u05E6\u05D4 \u05DC\u05E4\u05D9 \u05E9\u05E2\u05D5\u05DF, \u05D4\u05E1\u05D5\u05DB\u05DF \u05D9\u05E9\u05D0\u05DC \u05D0\u05EA\u05DB\u05DD \u05DC\u05E4\u05E0\u05D9 \u05E9\u05D4\u05D5\u05D0 \u05D1\u05D5\u05E0\u05D4 \u05D0\u05D5\u05EA\u05D4."],
819
- prompt: "\u05D4\u05D0\u05EA\u05E8 \u05E8\u05E5 \u05DC\u05DB\u05DC \u05D1\u05E7\u05E9\u05D4 \u05D1\u05E0\u05E4\u05E8\u05D3, \u05D5\u05E9\u05D5\u05DD \u05D3\u05D1\u05E8 \u05DC\u05D0 \u05E0\u05E9\u05D0\u05E8 \u05E4\u05D5\u05E2\u05DC \u05D1\u05D9\u05DF \u05D1\u05E7\u05E9\u05D5\u05EA. \u05D4\u05E1\u05E8 \u05D8\u05D9\u05D9\u05DE\u05E8\u05D9\u05DD, \u05EA\u05D5\u05E8\u05D9 \u05DE\u05E9\u05D9\u05DE\u05D5\u05EA \u05D5\u05E1\u05E4\u05E8\u05D9\u05D5\u05EA cron. \u05E2\u05D1\u05D5\u05D3\u05D4 \u05DE\u05EA\u05D5\u05D6\u05DE\u05E0\u05EA \u05EA\u05D5\u05DB\u05DC \u05DC\u05D4\u05E9\u05EA\u05DE\u05E9 \u05D1 Cloudflare Cron Trigger \u05D1\u05D4\u05DE\u05E9\u05DA, \u05E9\u05D0\u05DC \u05D0\u05EA \u05D4\u05DE\u05E4\u05EA\u05D7 \u05E7\u05D5\u05D3\u05DD."
819
+ prompt: "\u05D4\u05D0\u05EA\u05E8 \u05E8\u05E5 \u05DC\u05DB\u05DC \u05D1\u05E7\u05E9\u05D4 \u05D1\u05E0\u05E4\u05E8\u05D3, \u05D5\u05E9\u05D5\u05DD \u05D3\u05D1\u05E8 \u05DC\u05D0 \u05E0\u05E9\u05D0\u05E8 \u05E4\u05D5\u05E2\u05DC \u05D1\u05D9\u05DF \u05D1\u05E7\u05E9\u05D5\u05EA. \u05D4\u05E1\u05E8 \u05D8\u05D9\u05D9\u05DE\u05E8\u05D9\u05DD, \u05EA\u05D5\u05E8\u05D9 \u05DE\u05E9\u05D9\u05DE\u05D5\u05EA \u05D5\u05E1\u05E4\u05E8\u05D9\u05D5\u05EA cron. \u05E2\u05D1\u05D5\u05D3\u05D4 \u05DE\u05EA\u05D5\u05D6\u05DE\u05E0\u05EA \u05EA\u05D5\u05DB\u05DC \u05DC\u05D4\u05E9\u05EA\u05DE\u05E9 \u05D1\u05BECloudflare Cron Trigger \u05D1\u05D4\u05DE\u05E9\u05DA, \u05E9\u05D0\u05DC \u05D0\u05EA \u05D4\u05DE\u05E4\u05EA\u05D7 \u05E7\u05D5\u05D3\u05DD."
820
820
  },
821
821
  en: {
822
822
  what: "The site starts something that keeps running in the background, such as a timer, a job queue or a scheduled task.",
@@ -829,7 +829,7 @@ var ISSUE_HELP = {
829
829
  what: "\u05D4\u05D0\u05EA\u05E8 \u05DE\u05E4\u05E2\u05D9\u05DC \u05E9\u05E8\u05EA WebSocket, \u05D7\u05D9\u05D1\u05D5\u05E8 \u05E4\u05EA\u05D5\u05D7 \u05E9\u05E0\u05E9\u05D0\u05E8 \u05E4\u05E2\u05D9\u05DC \u05DB\u05D3\u05D9 \u05DC\u05E9\u05DC\u05D5\u05D7 \u05E2\u05D3\u05DB\u05D5\u05E0\u05D9\u05DD \u05D7\u05D9\u05D9\u05DD.",
830
830
  why: "\u05E9\u05E8\u05EA \u05DB\u05D6\u05D4 \u05E6\u05E8\u05D9\u05DA \u05DC\u05E8\u05D5\u05E5 \u05DB\u05DC \u05D4\u05D6\u05DE\u05DF, \u05D5\u05D0\u05E6\u05DC\u05E0\u05D5 \u05D4\u05D0\u05EA\u05E8 \u05E8\u05E5 \u05E8\u05E7 \u05DB\u05E9\u05DE\u05D9\u05E9\u05D4\u05D5 \u05E0\u05DB\u05E0\u05E1. \u05DC\u05DB\u05DF \u05D4\u05D0\u05EA\u05E8 \u05DC\u05D0 \u05D9\u05E2\u05DC\u05D4.",
831
831
  fix: ["\u05DC\u05E2\u05D3\u05DB\u05D5\u05E0\u05D9\u05DD \u05D7\u05D9\u05D9\u05DD \u05D1\u05D5\u05D3\u05E7\u05D9\u05DD \u05DE\u05D7\u05D3\u05E9 \u05DB\u05DC \u05DB\u05DE\u05D4 \u05E9\u05E0\u05D9\u05D5\u05EA, \u05D0\u05D5 \u05DE\u05E9\u05EA\u05DE\u05E9\u05D9\u05DD \u05D1\u05D6\u05E8\u05DD \u05E2\u05D3\u05DB\u05D5\u05E0\u05D9\u05DD \u05DE\u05D4\u05E9\u05E8\u05EA.", "\u05D0\u05DD \u05D6\u05D4 \u05DC\u05D1 \u05D4\u05D0\u05EA\u05E8, \u05DB\u05DE\u05D5 \u05E6'\u05D0\u05D8 \u05D7\u05D9, \u05D4\u05E1\u05D5\u05DB\u05DF \u05D9\u05E9\u05D0\u05DC \u05D0\u05EA\u05DB\u05DD \u05DC\u05E4\u05E0\u05D9 \u05E9\u05D4\u05D5\u05D0 \u05DE\u05E9\u05E0\u05D4 \u05D0\u05EA \u05D4\u05DE\u05D1\u05E0\u05D4."],
832
- prompt: "\u05E9\u05E8\u05EA WebSocket \u05E2\u05E6\u05DE\u05D0\u05D9 \u05DC\u05D0 \u05D9\u05DB\u05D5\u05DC \u05DC\u05E8\u05D5\u05E5 \u05DB\u05D0\u05DF. \u05D4\u05E9\u05EA\u05DE\u05E9 \u05D1 polling \u05D0\u05D5 \u05D1 server-sent events \u05DC\u05E2\u05D3\u05DB\u05D5\u05E0\u05D9\u05DD \u05D7\u05D9\u05D9\u05DD, \u05D0\u05D5 \u05E9\u05D0\u05DC \u05D0\u05EA \u05D4\u05DE\u05E4\u05EA\u05D7 \u05DC\u05E4\u05E0\u05D9 \u05E9\u05D0\u05EA\u05D4 \u05DE\u05EA\u05DB\u05E0\u05DF \u05DE\u05D7\u05D3\u05E9 \u05D0\u05EA \u05D4\u05D9\u05DB\u05D5\u05DC\u05EA \u05D4\u05D6\u05D5."
832
+ prompt: "\u05E9\u05E8\u05EA WebSocket \u05E2\u05E6\u05DE\u05D0\u05D9 \u05DC\u05D0 \u05D9\u05DB\u05D5\u05DC \u05DC\u05E8\u05D5\u05E5 \u05DB\u05D0\u05DF. \u05D4\u05E9\u05EA\u05DE\u05E9 \u05D1\u05BEpolling \u05D0\u05D5 \u05D1\u05BEserver-sent events \u05DC\u05E2\u05D3\u05DB\u05D5\u05E0\u05D9\u05DD \u05D7\u05D9\u05D9\u05DD, \u05D0\u05D5 \u05E9\u05D0\u05DC \u05D0\u05EA \u05D4\u05DE\u05E4\u05EA\u05D7 \u05DC\u05E4\u05E0\u05D9 \u05E9\u05D0\u05EA\u05D4 \u05DE\u05EA\u05DB\u05E0\u05DF \u05DE\u05D7\u05D3\u05E9 \u05D0\u05EA \u05D4\u05D9\u05DB\u05D5\u05DC\u05EA \u05D4\u05D6\u05D5."
833
833
  },
834
834
  en: {
835
835
  what: "The site runs a WebSocket server, an open connection that stays up to send live updates.",
@@ -851,11 +851,11 @@ var ISSUE_HELP = {
851
851
  }
852
852
  },
853
853
  adapter_missing_astro: adapterMissing("Astro", '\u05D4\u05D5\u05E1\u05E3 \u05D0\u05EA \u05D4\u05DE\u05EA\u05D0\u05DD \u05D4\u05E8\u05E9\u05DE\u05D9: \u05D4\u05EA\u05E7\u05DF \u05D0\u05EA @astrojs/cloudflare, \u05D5\u05D1\u05E7\u05D5\u05D1\u05E5 astro.config.mjs \u05D9\u05D9\u05D1\u05D0 cloudflare \u05DE "@astrojs/cloudflare" \u05D5\u05D4\u05D2\u05D3\u05E8 adapter: cloudflare(). \u05D0\u05DC \u05EA\u05E1\u05D9\u05E8 \u05E0\u05EA\u05D9\u05D1\u05D9 \u05E9\u05E8\u05EA \u05D5\u05D0\u05DC \u05EA\u05DE\u05D9\u05E8 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8.'),
854
- adapter_missing_sveltekit: adapterMissing("SvelteKit", '\u05D4\u05EA\u05E7\u05DF \u05D0\u05EA @sveltejs/adapter-cloudflare \u05DB\u05EA\u05DC\u05D5\u05EA \u05E4\u05D9\u05EA\u05D5\u05D7, \u05D5\u05D1\u05DE\u05E7\u05D5\u05DD \u05E9\u05D1\u05D5 \u05DE\u05D5\u05D2\u05D3\u05E8 \u05D4\u05DE\u05EA\u05D0\u05DD (vite.config.ts \u05D1 SvelteKit 3, svelte.config.js \u05DC\u05E4\u05E0\u05D9 \u05DB\u05DF) \u05D9\u05D9\u05D1\u05D0 adapter \u05DE "@sveltejs/adapter-cloudflare" \u05D5\u05D4\u05D2\u05D3\u05E8 adapter: adapter(). \u05D4\u05E1\u05E8 \u05D0\u05EA @sveltejs/adapter-auto \u05D0\u05D5 \u05DE\u05EA\u05D0\u05DE\u05D9\u05DD \u05D0\u05D7\u05E8\u05D9\u05DD. \u05D0\u05DC \u05EA\u05DE\u05D9\u05E8 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8.'),
855
- adapter_missing_react_router: adapterMissing("React Router", '\u05D4\u05EA\u05E7\u05DF \u05D0\u05EA @cloudflare/vite-plugin \u05D5\u05D0\u05EA wrangler \u05DB\u05EA\u05DC\u05D5\u05D9\u05D5\u05EA \u05E4\u05D9\u05EA\u05D5\u05D7, \u05D4\u05D5\u05E1\u05E3 cloudflare({ viteEnvironment: { name: "ssr" } }) \u05DC\u05E4\u05E0\u05D9 reactRouter() \u05D1 plugins \u05E9\u05DC vite.config, \u05D4\u05D5\u05E1\u05E3 workers/app.ts \u05E9\u05DE\u05E2\u05D1\u05D9\u05E8 \u05DB\u05DC \u05D1\u05E7\u05E9\u05D4 \u05DC createRequestHandler \u05DE react-router, \u05D5\u05D4\u05D5\u05E1\u05E3 wrangler.jsonc \u05E2\u05DD "main": "./workers/app.ts" \u05D5 "compatibility_flags": ["nodejs_compat"]. \u05E2\u05D1\u05D5\u05D3 \u05DC\u05E4\u05D9 \u05D4\u05EA\u05D1\u05E0\u05D9\u05EA \u05D4\u05E8\u05E9\u05DE\u05D9\u05EA \u05E9\u05DC Cloudflare \u05DC React Router. \u05D0\u05DC \u05EA\u05DE\u05D9\u05E8 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8.'),
854
+ adapter_missing_sveltekit: adapterMissing("SvelteKit", '\u05D4\u05EA\u05E7\u05DF \u05D0\u05EA @sveltejs/adapter-cloudflare \u05DB\u05EA\u05DC\u05D5\u05EA \u05E4\u05D9\u05EA\u05D5\u05D7, \u05D5\u05D1\u05DE\u05E7\u05D5\u05DD \u05E9\u05D1\u05D5 \u05DE\u05D5\u05D2\u05D3\u05E8 \u05D4\u05DE\u05EA\u05D0\u05DD (vite.config.ts \u05D1\u05BESvelteKit 3, svelte.config.js \u05DC\u05E4\u05E0\u05D9 \u05DB\u05DF) \u05D9\u05D9\u05D1\u05D0 adapter \u05DE "@sveltejs/adapter-cloudflare" \u05D5\u05D4\u05D2\u05D3\u05E8 adapter: adapter(). \u05D4\u05E1\u05E8 \u05D0\u05EA @sveltejs/adapter-auto \u05D0\u05D5 \u05DE\u05EA\u05D0\u05DE\u05D9\u05DD \u05D0\u05D7\u05E8\u05D9\u05DD. \u05D0\u05DC \u05EA\u05DE\u05D9\u05E8 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8.'),
855
+ adapter_missing_react_router: adapterMissing("React Router", '\u05D4\u05EA\u05E7\u05DF \u05D0\u05EA @cloudflare/vite-plugin \u05D5\u05D0\u05EA wrangler \u05DB\u05EA\u05DC\u05D5\u05D9\u05D5\u05EA \u05E4\u05D9\u05EA\u05D5\u05D7, \u05D4\u05D5\u05E1\u05E3 cloudflare({ viteEnvironment: { name: "ssr" } }) \u05DC\u05E4\u05E0\u05D9 reactRouter() \u05D1\u05BEplugins \u05E9\u05DC vite.config, \u05D4\u05D5\u05E1\u05E3 workers/app.ts \u05E9\u05DE\u05E2\u05D1\u05D9\u05E8 \u05DB\u05DC \u05D1\u05E7\u05E9\u05D4 \u05DC\u05BEcreateRequestHandler \u05DE\u05BEreact-router, \u05D5\u05D4\u05D5\u05E1\u05E3 wrangler.jsonc \u05E2\u05DD "main": "./workers/app.ts" \u05D5 "compatibility_flags": ["nodejs_compat"]. \u05E2\u05D1\u05D5\u05D3 \u05DC\u05E4\u05D9 \u05D4\u05EA\u05D1\u05E0\u05D9\u05EA \u05D4\u05E8\u05E9\u05DE\u05D9\u05EA \u05E9\u05DC Cloudflare \u05DC\u05BEReact Router. \u05D0\u05DC \u05EA\u05DE\u05D9\u05E8 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8.'),
856
856
  adapter_missing_hono: {
857
857
  he: {
858
- what: "\u05D4\u05D0\u05EA\u05E8 \u05D1\u05E0\u05D5\u05D9 \u05D1 Hono, \u05D0\u05D1\u05DC \u05DE\u05D5\u05E4\u05E2\u05DC \u05DB\u05E9\u05E8\u05EA \u05E9\u05DE\u05D0\u05D6\u05D9\u05DF \u05DC\u05E4\u05D5\u05E8\u05D8.",
858
+ what: "\u05D4\u05D0\u05EA\u05E8 \u05D1\u05E0\u05D5\u05D9 \u05D1\u05BEHono, \u05D0\u05D1\u05DC \u05DE\u05D5\u05E4\u05E2\u05DC \u05DB\u05E9\u05E8\u05EA \u05E9\u05DE\u05D0\u05D6\u05D9\u05DF \u05DC\u05E4\u05D5\u05E8\u05D8.",
859
859
  why: "\u05D0\u05E6\u05DC\u05E0\u05D5 \u05D0\u05D9\u05DF \u05E9\u05E8\u05EA \u05E9\u05E8\u05E5 \u05DB\u05DC \u05D4\u05D6\u05DE\u05DF. Hono \u05E2\u05D5\u05D1\u05D3 \u05D0\u05E6\u05DC\u05E0\u05D5 \u05DB\u05DE\u05D5 \u05E9\u05D4\u05D5\u05D0, \u05E8\u05E7 \u05E6\u05E8\u05D9\u05DA \u05DC\u05D9\u05D9\u05E6\u05D0 \u05D0\u05EA \u05D4\u05D0\u05E4\u05DC\u05D9\u05E7\u05E6\u05D9\u05D4 \u05D1\u05DE\u05E7\u05D5\u05DD \u05DC\u05D4\u05E4\u05E2\u05D9\u05DC \u05E9\u05E8\u05EA.",
860
860
  fix: ["\u05D4\u05E1\u05D5\u05DB\u05DF \u05DE\u05D5\u05D7\u05E7 \u05D0\u05EA \u05D4\u05E4\u05E2\u05DC\u05EA \u05D4\u05E9\u05E8\u05EA \u05D5\u05DE\u05D9\u05D9\u05E6\u05D0 \u05D0\u05EA \u05D4\u05D0\u05E4\u05DC\u05D9\u05E7\u05E6\u05D9\u05D4 \u05DE\u05E7\u05D5\u05D1\u05E5 \u05D4\u05DB\u05E0\u05D9\u05E1\u05D4.", "\u05DB\u05DC \u05D4\u05E0\u05EA\u05D9\u05D1\u05D9\u05DD \u05E0\u05E9\u05D0\u05E8\u05D9\u05DD \u05DB\u05DE\u05D5 \u05E9\u05D4\u05DD.", "\u05DE\u05E8\u05D9\u05E6\u05D9\u05DD \u05E9\u05D5\u05D1 \u05D0\u05EA \u05D4\u05D1\u05D3\u05D9\u05E7\u05D4."],
861
861
  prompt: '\u05D4\u05E9\u05D0\u05E8 \u05D0\u05EA Hono. \u05D4\u05E1\u05E8 \u05D0\u05EA serve() \u05E9\u05DC @hono/node-server \u05D5\u05D9\u05D9\u05E6\u05D0 export default app \u05DE\u05E7\u05D5\u05D1\u05E5 \u05D4\u05DB\u05E0\u05D9\u05E1\u05D4 (\u05DC\u05DE\u05E9\u05DC src/index.ts). \u05D4\u05D5\u05E1\u05E3 wrangler.jsonc \u05E2\u05DD "main" \u05E9\u05DE\u05E6\u05D1\u05D9\u05E2 \u05E2\u05DC \u05D4\u05E7\u05D5\u05D1\u05E5 \u05D4\u05D6\u05D4 \u05D5 "compatibility_flags": ["nodejs_compat"]. \u05D4\u05E9\u05D0\u05E8 \u05D0\u05EA \u05D0\u05D5\u05EA\u05DD \u05E0\u05EA\u05D9\u05D1\u05D9\u05DD.'
@@ -866,16 +866,16 @@ var ISSUE_HELP = {
866
866
  fix: ["Your agent removes the server start and exports the app from the entry file.", "All routes stay as they are.", "Run the check again."]
867
867
  }
868
868
  },
869
- adapter_missing_nextjs: adapterMissing("Next.js", '\u05D4\u05EA\u05E7\u05DF \u05D0\u05EA @opennextjs/cloudflare \u05DB\u05EA\u05DC\u05D5\u05EA \u05D5\u05D4\u05D5\u05E1\u05E3 open-next.config.ts \u05E2\u05DD: import { defineCloudflareConfig } from "@opennextjs/cloudflare"; export default defineCloudflareConfig();. DeployAI \u05D1\u05D5\u05E0\u05D4 \u05D0\u05D6 \u05E2\u05DD opennextjs-cloudflare build. Next.js \u05D1 DeployAI \u05D1\u05E9\u05DC\u05D1 \u05D1\u05D8\u05D0: \u05E1\u05E4\u05E8 \u05E2\u05DC \u05D6\u05D4 \u05DC\u05DE\u05E9\u05EA\u05DE\u05E9, \u05D5\u05D0\u05DC \u05EA\u05DE\u05D9\u05E8 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8.', true),
870
- adapter_missing_solidstart: adapterMissing("SolidStart", '\u05D4\u05D2\u05D3\u05E8 server: { preset: "cloudflare_module" } \u05D1\u05E7\u05D5\u05D1\u05E5 app.config.ts (\u05D1 vite.config.ts \u05D1 SolidStart 2). SolidStart \u05D1 DeployAI \u05D1\u05E9\u05DC\u05D1 \u05D1\u05D8\u05D0: \u05E1\u05E4\u05E8 \u05E2\u05DC \u05D6\u05D4 \u05DC\u05DE\u05E9\u05EA\u05DE\u05E9.', true),
871
- adapter_missing_qwik: adapterMissing("Qwik City", "\u05D4\u05E8\u05E5 npm run qwik add cloudflare-pages, \u05E9\u05DE\u05D5\u05E1\u05D9\u05E3 \u05D0\u05EA adapters/cloudflare-pages/vite.config.ts \u05D5\u05D0\u05EA \u05D4\u05E1\u05E7\u05E8\u05D9\u05E4\u05D8 build.server. Qwik City \u05D1 DeployAI \u05D1\u05E9\u05DC\u05D1 \u05D1\u05D8\u05D0: \u05E1\u05E4\u05E8 \u05E2\u05DC \u05D6\u05D4 \u05DC\u05DE\u05E9\u05EA\u05DE\u05E9.", true),
872
- adapter_missing_tanstack_start: adapterMissing("TanStack Start", '\u05D4\u05EA\u05E7\u05DF \u05D0\u05EA @cloudflare/vite-plugin \u05D5\u05D0\u05EA wrangler \u05DB\u05EA\u05DC\u05D5\u05D9\u05D5\u05EA \u05E4\u05D9\u05EA\u05D5\u05D7, \u05D4\u05D5\u05E1\u05E3 cloudflare({ viteEnvironment: { name: "ssr" } }) \u05DC plugins \u05E9\u05DC vite.config, \u05D5\u05D4\u05D5\u05E1\u05E3 wrangler.jsonc \u05E2\u05DD "main": "@tanstack/react-start/server-entry" \u05D5 "compatibility_flags": ["nodejs_compat"]. TanStack Start \u05D1 DeployAI \u05D1\u05E9\u05DC\u05D1 \u05D1\u05D8\u05D0: \u05E1\u05E4\u05E8 \u05E2\u05DC \u05D6\u05D4 \u05DC\u05DE\u05E9\u05EA\u05DE\u05E9.', true),
869
+ adapter_missing_nextjs: adapterMissing("Next.js", '\u05D4\u05EA\u05E7\u05DF \u05D0\u05EA @opennextjs/cloudflare \u05DB\u05EA\u05DC\u05D5\u05EA \u05D5\u05D4\u05D5\u05E1\u05E3 open-next.config.ts \u05E2\u05DD: import { defineCloudflareConfig } from "@opennextjs/cloudflare"; export default defineCloudflareConfig();. DeployAI \u05D1\u05D5\u05E0\u05D4 \u05D0\u05D6 \u05E2\u05DD opennextjs-cloudflare build. Next.js \u05D1\u05BEDeployAI \u05D1\u05E9\u05DC\u05D1 \u05D1\u05D8\u05D0: \u05E1\u05E4\u05E8 \u05E2\u05DC \u05D6\u05D4 \u05DC\u05DE\u05E9\u05EA\u05DE\u05E9, \u05D5\u05D0\u05DC \u05EA\u05DE\u05D9\u05E8 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8.', true),
870
+ adapter_missing_solidstart: adapterMissing("SolidStart", '\u05D4\u05D2\u05D3\u05E8 server: { preset: "cloudflare_module" } \u05D1\u05E7\u05D5\u05D1\u05E5 app.config.ts (\u05D1\u05BEvite.config.ts \u05D1\u05BESolidStart 2). SolidStart \u05D1\u05BEDeployAI \u05D1\u05E9\u05DC\u05D1 \u05D1\u05D8\u05D0: \u05E1\u05E4\u05E8 \u05E2\u05DC \u05D6\u05D4 \u05DC\u05DE\u05E9\u05EA\u05DE\u05E9.', true),
871
+ adapter_missing_qwik: adapterMissing("Qwik City", "\u05D4\u05E8\u05E5 npm run qwik add cloudflare-pages, \u05E9\u05DE\u05D5\u05E1\u05D9\u05E3 \u05D0\u05EA adapters/cloudflare-pages/vite.config.ts \u05D5\u05D0\u05EA \u05D4\u05E1\u05E7\u05E8\u05D9\u05E4\u05D8 build.server. Qwik City \u05D1\u05BEDeployAI \u05D1\u05E9\u05DC\u05D1 \u05D1\u05D8\u05D0: \u05E1\u05E4\u05E8 \u05E2\u05DC \u05D6\u05D4 \u05DC\u05DE\u05E9\u05EA\u05DE\u05E9.", true),
872
+ adapter_missing_tanstack_start: adapterMissing("TanStack Start", '\u05D4\u05EA\u05E7\u05DF \u05D0\u05EA @cloudflare/vite-plugin \u05D5\u05D0\u05EA wrangler \u05DB\u05EA\u05DC\u05D5\u05D9\u05D5\u05EA \u05E4\u05D9\u05EA\u05D5\u05D7, \u05D4\u05D5\u05E1\u05E3 cloudflare({ viteEnvironment: { name: "ssr" } }) \u05DC\u05BEplugins \u05E9\u05DC vite.config, \u05D5\u05D4\u05D5\u05E1\u05E3 wrangler.jsonc \u05E2\u05DD "main": "@tanstack/react-start/server-entry" \u05D5 "compatibility_flags": ["nodejs_compat"]. TanStack Start \u05D1\u05BEDeployAI \u05D1\u05E9\u05DC\u05D1 \u05D1\u05D8\u05D0: \u05E1\u05E4\u05E8 \u05E2\u05DC \u05D6\u05D4 \u05DC\u05DE\u05E9\u05EA\u05DE\u05E9.', true),
873
873
  env_file_committed: {
874
874
  he: {
875
875
  what: "\u05E7\u05D5\u05D1\u05E5 env \u05E2\u05DD \u05E1\u05D9\u05E1\u05DE\u05D0\u05D5\u05EA \u05D5\u05DE\u05E4\u05EA\u05D7\u05D5\u05EA \u05E0\u05E9\u05DE\u05E8 \u05D1\u05EA\u05D5\u05DA git, \u05D4\u05D9\u05E1\u05D8\u05D5\u05E8\u05D9\u05D9\u05EA \u05D4\u05D2\u05E8\u05E1\u05D0\u05D5\u05EA \u05E9\u05DC \u05D4\u05E7\u05D5\u05D3.",
876
876
  why: "\u05DB\u05DC \u05DE\u05D9 \u05E9\u05E8\u05D5\u05D0\u05D4 \u05D0\u05EA \u05D4\u05E7\u05D5\u05D3 \u05E8\u05D5\u05D0\u05D4 \u05D2\u05DD \u05D0\u05EA \u05D4\u05E1\u05D5\u05D3\u05D5\u05EA. \u05DC\u05DB\u05DF \u05D0\u05E0\u05D7\u05E0\u05D5 \u05E2\u05D5\u05E6\u05E8\u05D9\u05DD \u05D0\u05EA \u05D4\u05D4\u05E2\u05DC\u05D0\u05D4.",
877
- fix: ["\u05DE\u05D5\u05E6\u05D9\u05D0\u05D9\u05DD \u05D0\u05EA \u05D4\u05E7\u05D5\u05D1\u05E5 \u05DE git \u05D5\u05DE\u05D5\u05E1\u05D9\u05E4\u05D9\u05DD \u05D0\u05D5\u05EA\u05D5 \u05DC\u05E8\u05E9\u05D9\u05DE\u05EA \u05D4\u05E7\u05D1\u05E6\u05D9\u05DD \u05E9 git \u05DE\u05EA\u05E2\u05DC\u05DD \u05DE\u05D4\u05DD.", "\u05DE\u05D7\u05DC\u05D9\u05E4\u05D9\u05DD \u05DB\u05DC \u05DE\u05E4\u05EA\u05D7 \u05E9\u05D4\u05D9\u05D4 \u05D1\u05E7\u05D5\u05D1\u05E5, \u05DB\u05D9 \u05D4\u05D5\u05D0 \u05DB\u05D1\u05E8 \u05E0\u05D7\u05E9\u05E3.", "\u05D0\u05EA \u05D4\u05E1\u05D5\u05D3\u05D5\u05EA \u05E9\u05D5\u05DE\u05E8\u05D9\u05DD \u05D1\u05D4\u05D2\u05D3\u05E8\u05D5\u05EA \u05D4\u05D0\u05EA\u05E8 \u05D1 DeployAI, \u05DC\u05D0 \u05D1\u05E7\u05D5\u05D3."],
878
- prompt: "\u05D4\u05D5\u05E6\u05D0 \u05D0\u05EA \u05E7\u05D5\u05D1\u05E5 \u05D4 env \u05DE git (git rm --cached), \u05D4\u05D5\u05E1\u05E3 .env* \u05DC .gitignore, \u05D5\u05D0\u05DE\u05D5\u05E8 \u05DC\u05DE\u05E9\u05EA\u05DE\u05E9 \u05DC\u05D4\u05D7\u05DC\u05D9\u05E3 \u05DB\u05DC \u05E1\u05D5\u05D3 \u05E9\u05D4\u05D9\u05D4 \u05D1\u05D5. \u05E1\u05D5\u05D3\u05D5\u05EA \u05E0\u05E9\u05DE\u05E8\u05D9\u05DD \u05D1\u05E2\u05DE\u05D5\u05D3 \u05D4\u05D0\u05EA\u05E8 \u05D1 DeployAI, \u05EA\u05D7\u05EA \u05D4\u05D2\u05D3\u05E8\u05D5\u05EA, \u05DE\u05E4\u05EA\u05D7\u05D5\u05EA \u05E1\u05D5\u05D3\u05D9\u05D9\u05DD."
877
+ fix: ["\u05DE\u05D5\u05E6\u05D9\u05D0\u05D9\u05DD \u05D0\u05EA \u05D4\u05E7\u05D5\u05D1\u05E5 \u05DE\u05BEgit \u05D5\u05DE\u05D5\u05E1\u05D9\u05E4\u05D9\u05DD \u05D0\u05D5\u05EA\u05D5 \u05DC\u05E8\u05E9\u05D9\u05DE\u05EA \u05D4\u05E7\u05D1\u05E6\u05D9\u05DD \u05E9\u05BEgit \u05DE\u05EA\u05E2\u05DC\u05DD \u05DE\u05D4\u05DD.", "\u05DE\u05D7\u05DC\u05D9\u05E4\u05D9\u05DD \u05DB\u05DC \u05DE\u05E4\u05EA\u05D7 \u05E9\u05D4\u05D9\u05D4 \u05D1\u05E7\u05D5\u05D1\u05E5, \u05DB\u05D9 \u05D4\u05D5\u05D0 \u05DB\u05D1\u05E8 \u05E0\u05D7\u05E9\u05E3.", "\u05D0\u05EA \u05D4\u05E1\u05D5\u05D3\u05D5\u05EA \u05E9\u05D5\u05DE\u05E8\u05D9\u05DD \u05D1\u05D4\u05D2\u05D3\u05E8\u05D5\u05EA \u05D4\u05D0\u05EA\u05E8 \u05D1\u05BEDeployAI, \u05DC\u05D0 \u05D1\u05E7\u05D5\u05D3."],
878
+ prompt: "\u05D4\u05D5\u05E6\u05D0 \u05D0\u05EA \u05E7\u05D5\u05D1\u05E5 \u05D4\u05BEenv \u05DE\u05BEgit (git rm --cached), \u05D4\u05D5\u05E1\u05E3 .env* \u05DC .gitignore, \u05D5\u05D0\u05DE\u05D5\u05E8 \u05DC\u05DE\u05E9\u05EA\u05DE\u05E9 \u05DC\u05D4\u05D7\u05DC\u05D9\u05E3 \u05DB\u05DC \u05E1\u05D5\u05D3 \u05E9\u05D4\u05D9\u05D4 \u05D1\u05D5. \u05E1\u05D5\u05D3\u05D5\u05EA \u05E0\u05E9\u05DE\u05E8\u05D9\u05DD \u05D1\u05E2\u05DE\u05D5\u05D3 \u05D4\u05D0\u05EA\u05E8 \u05D1\u05BEDeployAI, \u05EA\u05D7\u05EA \u05D4\u05D2\u05D3\u05E8\u05D5\u05EA, \u05DE\u05E4\u05EA\u05D7\u05D5\u05EA \u05E1\u05D5\u05D3\u05D9\u05D9\u05DD."
879
879
  },
880
880
  en: {
881
881
  what: "An env file with passwords and keys is saved in git, the version history of the code.",
@@ -900,8 +900,8 @@ var ISSUE_HELP = {
900
900
  he: {
901
901
  what: "\u05D4\u05D0\u05EA\u05E8 \u05DE\u05E8\u05D9\u05E5 \u05E4\u05E7\u05D5\u05D3\u05D5\u05EA \u05DE\u05E2\u05E8\u05DB\u05EA \u05D0\u05D5 \u05EA\u05D5\u05DB\u05E0\u05D5\u05EA \u05D0\u05D7\u05E8\u05D5\u05EA \u05DE\u05EA\u05D5\u05DA \u05D4\u05E7\u05D5\u05D3.",
902
902
  why: "\u05E2\u05DC \u05D4\u05E9\u05E8\u05EA\u05D9\u05DD \u05E9\u05DC\u05E0\u05D5 \u05D0\u05D9 \u05D0\u05E4\u05E9\u05E8 \u05DC\u05D4\u05E4\u05E2\u05D9\u05DC \u05EA\u05D5\u05DB\u05E0\u05D5\u05EA \u05D0\u05D7\u05E8\u05D5\u05EA. \u05E8\u05E7 \u05D4\u05E7\u05D5\u05D3 \u05E9\u05DC \u05D4\u05D0\u05EA\u05E8 \u05E2\u05E6\u05DE\u05D5 \u05E8\u05E5, \u05D5\u05DC\u05DB\u05DF \u05D4\u05D0\u05EA\u05E8 \u05DC\u05D0 \u05D9\u05E2\u05DC\u05D4.",
903
- fix: ["\u05E2\u05D5\u05E9\u05D9\u05DD \u05D0\u05EA \u05D0\u05D5\u05EA\u05D4 \u05E2\u05D1\u05D5\u05D3\u05D4 \u05D1 JavaScript.", "\u05D0\u05D5 \u05E4\u05D5\u05E0\u05D9\u05DD \u05DC\u05E9\u05D9\u05E8\u05D5\u05EA \u05D7\u05D9\u05E6\u05D5\u05E0\u05D9 \u05D3\u05E8\u05DA \u05D4\u05D0\u05D9\u05E0\u05D8\u05E8\u05E0\u05D8.", "\u05D0\u05D5 \u05DE\u05E2\u05D1\u05D9\u05E8\u05D9\u05DD \u05D0\u05EA \u05D4\u05E2\u05D1\u05D5\u05D3\u05D4 \u05DC\u05E9\u05DC\u05D1 \u05D4\u05D1\u05E0\u05D9\u05D9\u05D4."],
904
- prompt: "\u05D4\u05E9\u05E8\u05EA \u05DC\u05D0 \u05D9\u05DB\u05D5\u05DC \u05DC\u05D4\u05E4\u05E2\u05D9\u05DC \u05EA\u05D5\u05DB\u05E0\u05D5\u05EA \u05D0\u05D7\u05E8\u05D5\u05EA. \u05D1\u05E6\u05E2 \u05D0\u05EA \u05D4\u05E2\u05D1\u05D5\u05D3\u05D4 \u05D1 JavaScript, \u05E7\u05E8\u05D0 \u05DC HTTP API \u05D1\u05DE\u05E7\u05D5\u05DD, \u05D0\u05D5 \u05D4\u05E2\u05D1\u05E8 \u05D0\u05D5\u05EA\u05D4 \u05DC\u05E9\u05DC\u05D1 \u05D4 build."
903
+ fix: ["\u05E2\u05D5\u05E9\u05D9\u05DD \u05D0\u05EA \u05D0\u05D5\u05EA\u05D4 \u05E2\u05D1\u05D5\u05D3\u05D4 \u05D1\u05BEJavaScript.", "\u05D0\u05D5 \u05E4\u05D5\u05E0\u05D9\u05DD \u05DC\u05E9\u05D9\u05E8\u05D5\u05EA \u05D7\u05D9\u05E6\u05D5\u05E0\u05D9 \u05D3\u05E8\u05DA \u05D4\u05D0\u05D9\u05E0\u05D8\u05E8\u05E0\u05D8.", "\u05D0\u05D5 \u05DE\u05E2\u05D1\u05D9\u05E8\u05D9\u05DD \u05D0\u05EA \u05D4\u05E2\u05D1\u05D5\u05D3\u05D4 \u05DC\u05E9\u05DC\u05D1 \u05D4\u05D1\u05E0\u05D9\u05D9\u05D4."],
904
+ prompt: "\u05D4\u05E9\u05E8\u05EA \u05DC\u05D0 \u05D9\u05DB\u05D5\u05DC \u05DC\u05D4\u05E4\u05E2\u05D9\u05DC \u05EA\u05D5\u05DB\u05E0\u05D5\u05EA \u05D0\u05D7\u05E8\u05D5\u05EA. \u05D1\u05E6\u05E2 \u05D0\u05EA \u05D4\u05E2\u05D1\u05D5\u05D3\u05D4 \u05D1\u05BEJavaScript, \u05E7\u05E8\u05D0 \u05DC\u05BEHTTP API \u05D1\u05DE\u05E7\u05D5\u05DD, \u05D0\u05D5 \u05D4\u05E2\u05D1\u05E8 \u05D0\u05D5\u05EA\u05D4 \u05DC\u05E9\u05DC\u05D1 \u05D4\u05BEbuild."
905
905
  },
906
906
  en: {
907
907
  what: "The site runs system commands or other programs from its code.",
@@ -913,8 +913,8 @@ var ISSUE_HELP = {
913
913
  he: {
914
914
  what: "\u05D4\u05D0\u05EA\u05E8 \u05DE\u05E4\u05E2\u05D9\u05DC \u05E9\u05E8\u05EA \u05DE\u05E9\u05DC\u05D5 \u05E9\u05DE\u05D0\u05D6\u05D9\u05DF \u05DC\u05E4\u05D5\u05E8\u05D8, \u05DC\u05DE\u05E9\u05DC \u05E2\u05DD Express.",
915
915
  why: "\u05D0\u05E6\u05DC\u05E0\u05D5 \u05D0\u05D9\u05DF \u05E9\u05E8\u05EA \u05E9\u05E8\u05E5 \u05DB\u05DC \u05D4\u05D6\u05DE\u05DF. \u05D4\u05D0\u05EA\u05E8 \u05E8\u05E5 \u05E8\u05E7 \u05DB\u05E9\u05DE\u05D9\u05E9\u05D4\u05D5 \u05E0\u05DB\u05E0\u05E1, \u05D5\u05DC\u05DB\u05DF \u05E9\u05E8\u05EA \u05E9\u05DE\u05D0\u05D6\u05D9\u05DF \u05DC\u05E4\u05D5\u05E8\u05D8 \u05DC\u05D0 \u05D9\u05E2\u05D1\u05D5\u05D3.",
916
- fix: ["\u05DE\u05E2\u05D1\u05D9\u05E8\u05D9\u05DD \u05D0\u05EA \u05D4\u05E0\u05EA\u05D9\u05D1\u05D9\u05DD \u05DC Hono, \u05E9\u05D3\u05D5\u05DE\u05D4 \u05DE\u05D0\u05D5\u05D3 \u05DC Express \u05D5\u05E2\u05D5\u05D1\u05D3 \u05D0\u05E6\u05DC\u05E0\u05D5.", "\u05D0\u05D5 \u05DC\u05E0\u05EA\u05D9\u05D1\u05D9 API \u05E9\u05DC Astro.", "\u05DE\u05D5\u05D7\u05E7\u05D9\u05DD \u05D0\u05EA \u05D4\u05E9\u05D5\u05E8\u05D4 \u05E9\u05DE\u05E4\u05E2\u05D9\u05DC\u05D4 \u05D0\u05EA \u05D4\u05E9\u05E8\u05EA (app.listen)."],
917
- prompt: "\u05E9\u05E8\u05EA \u05DE\u05D5\u05EA\u05D0\u05DD \u05E9\u05DE\u05D0\u05D6\u05D9\u05DF \u05DC\u05E4\u05D5\u05E8\u05D8 \u05DC\u05D0 \u05D9\u05DB\u05D5\u05DC \u05DC\u05E8\u05D5\u05E5 \u05DB\u05D0\u05DF. \u05D4\u05E2\u05D1\u05E8 \u05D0\u05EA \u05D4\u05E0\u05EA\u05D9\u05D1\u05D9\u05DD \u05DC Hono (\u05D3\u05D5\u05DE\u05D4 \u05DE\u05D0\u05D5\u05D3 \u05DC Express \u05D5\u05E8\u05E5 \u05E2\u05DC Cloudflare Workers) \u05D0\u05D5 \u05DC\u05E0\u05EA\u05D9\u05D1\u05D9 API \u05E9\u05DC Astro, \u05D5\u05D4\u05E1\u05E8 \u05D0\u05EA app.listen."
916
+ fix: ["\u05DE\u05E2\u05D1\u05D9\u05E8\u05D9\u05DD \u05D0\u05EA \u05D4\u05E0\u05EA\u05D9\u05D1\u05D9\u05DD \u05DC\u05BEHono, \u05E9\u05D3\u05D5\u05DE\u05D4 \u05DE\u05D0\u05D5\u05D3 \u05DC\u05BEExpress \u05D5\u05E2\u05D5\u05D1\u05D3 \u05D0\u05E6\u05DC\u05E0\u05D5.", "\u05D0\u05D5 \u05DC\u05E0\u05EA\u05D9\u05D1\u05D9 API \u05E9\u05DC Astro.", "\u05DE\u05D5\u05D7\u05E7\u05D9\u05DD \u05D0\u05EA \u05D4\u05E9\u05D5\u05E8\u05D4 \u05E9\u05DE\u05E4\u05E2\u05D9\u05DC\u05D4 \u05D0\u05EA \u05D4\u05E9\u05E8\u05EA (app.listen)."],
917
+ prompt: "\u05E9\u05E8\u05EA \u05DE\u05D5\u05EA\u05D0\u05DD \u05E9\u05DE\u05D0\u05D6\u05D9\u05DF \u05DC\u05E4\u05D5\u05E8\u05D8 \u05DC\u05D0 \u05D9\u05DB\u05D5\u05DC \u05DC\u05E8\u05D5\u05E5 \u05DB\u05D0\u05DF. \u05D4\u05E2\u05D1\u05E8 \u05D0\u05EA \u05D4\u05E0\u05EA\u05D9\u05D1\u05D9\u05DD \u05DC\u05BEHono (\u05D3\u05D5\u05DE\u05D4 \u05DE\u05D0\u05D5\u05D3 \u05DC\u05BEExpress \u05D5\u05E8\u05E5 \u05E2\u05DC Cloudflare Workers) \u05D0\u05D5 \u05DC\u05E0\u05EA\u05D9\u05D1\u05D9 API \u05E9\u05DC Astro, \u05D5\u05D4\u05E1\u05E8 \u05D0\u05EA app.listen."
918
918
  },
919
919
  en: {
920
920
  what: "The site starts its own server that listens on a port, for example with Express.",
@@ -926,8 +926,8 @@ var ISSUE_HELP = {
926
926
  he: {
927
927
  what: "\u05D1\u05E7\u05D5\u05D1\u05E5 package.json \u05D0\u05D9\u05DF \u05E4\u05E7\u05D5\u05D3\u05EA build, \u05D4\u05E4\u05E7\u05D5\u05D3\u05D4 \u05E9\u05D1\u05D5\u05E0\u05D4 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8.",
928
928
  why: "\u05D6\u05D5 \u05D0\u05D6\u05D4\u05E8\u05D4. \u05D1\u05DC\u05D9 \u05E4\u05E7\u05D5\u05D3\u05EA build \u05D0\u05E0\u05D7\u05E0\u05D5 \u05DC\u05D0 \u05D9\u05D5\u05D3\u05E2\u05D9\u05DD \u05D0\u05D9\u05DA \u05DC\u05D1\u05E0\u05D5\u05EA \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8, \u05D5\u05D0\u05DD \u05D4\u05D5\u05D0 \u05E6\u05E8\u05D9\u05DA \u05D1\u05E0\u05D9\u05D9\u05D4 \u05D4\u05D5\u05D0 \u05E2\u05DC\u05D5\u05DC \u05DC\u05D0 \u05DC\u05E2\u05D1\u05D5\u05D3.",
929
- fix: ["\u05DE\u05D5\u05E1\u05D9\u05E4\u05D9\u05DD \u05DC package.json \u05E4\u05E7\u05D5\u05D3\u05EA build \u05E9\u05D1\u05D5\u05E0\u05D4 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8, \u05DC\u05DE\u05E9\u05DC vite build \u05D0\u05D5 astro build.", "\u05D0\u05EA\u05E8 HTML \u05E4\u05E9\u05D5\u05D8, \u05D1\u05DC\u05D9 \u05E9\u05DC\u05D1 \u05D1\u05E0\u05D9\u05D9\u05D4, \u05DC\u05D0 \u05E6\u05E8\u05D9\u05DA \u05D0\u05D5\u05EA\u05D4."],
930
- prompt: '\u05D4\u05D5\u05E1\u05E3 \u05DC package.json \u05E1\u05E7\u05E8\u05D9\u05E4\u05D8 "build" \u05E9\u05D1\u05D5\u05E0\u05D4 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8, \u05DC\u05DE\u05E9\u05DC "vite build" \u05D0\u05D5 "astro build".'
929
+ fix: ["\u05DE\u05D5\u05E1\u05D9\u05E4\u05D9\u05DD \u05DC\u05BEpackage.json \u05E4\u05E7\u05D5\u05D3\u05EA build \u05E9\u05D1\u05D5\u05E0\u05D4 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8, \u05DC\u05DE\u05E9\u05DC vite build \u05D0\u05D5 astro build.", "\u05D0\u05EA\u05E8 HTML \u05E4\u05E9\u05D5\u05D8, \u05D1\u05DC\u05D9 \u05E9\u05DC\u05D1 \u05D1\u05E0\u05D9\u05D9\u05D4, \u05DC\u05D0 \u05E6\u05E8\u05D9\u05DA \u05D0\u05D5\u05EA\u05D4."],
930
+ prompt: '\u05D4\u05D5\u05E1\u05E3 \u05DC\u05BEpackage.json \u05E1\u05E7\u05E8\u05D9\u05E4\u05D8 "build" \u05E9\u05D1\u05D5\u05E0\u05D4 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8, \u05DC\u05DE\u05E9\u05DC "vite build" \u05D0\u05D5 "astro build".'
931
931
  },
932
932
  en: {
933
933
  what: "package.json has no build command, the command that builds the site.",
@@ -940,7 +940,7 @@ var ISSUE_HELP = {
940
940
  what: "\u05D4\u05D0\u05EA\u05E8 \u05D1\u05E0\u05D5\u05D9 \u05D1\u05DB\u05DC\u05D9 \u05E9\u05DC\u05D0 \u05E8\u05E5 \u05D0\u05E6\u05DC\u05E0\u05D5, \u05DC\u05DE\u05E9\u05DC WordPress, PHP \u05D0\u05D5 Python.",
941
941
  why: "\u05D4\u05D0\u05D7\u05E1\u05D5\u05DF \u05E9\u05DC\u05E0\u05D5 \u05DE\u05E8\u05D9\u05E5 \u05D0\u05EA\u05E8\u05D9\u05DD \u05DE\u05D5\u05DB\u05E0\u05D9\u05DD \u05D5\u05D0\u05EA\u05E8\u05D9\u05DD \u05D1\u05DB\u05DC\u05D9\u05DD \u05E9\u05DC JavaScript. \u05D0\u05EA\u05E8 \u05DB\u05D6\u05D4 \u05DC\u05D0 \u05D9\u05E2\u05DC\u05D4 \u05DB\u05DE\u05D5 \u05E9\u05D4\u05D5\u05D0.",
942
942
  fix: ["\u05DE\u05D1\u05E7\u05E9\u05D9\u05DD \u05DE\u05D4\u05E1\u05D5\u05DB\u05DF \u05DC\u05D1\u05E0\u05D5\u05EA \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8 \u05DE\u05D7\u05D3\u05E9 \u05DB\u05DA \u05E9\u05D9\u05E8\u05D5\u05E5 \u05D0\u05E6\u05DC\u05E0\u05D5, \u05E2\u05DD \u05D0\u05D5\u05EA\u05DD \u05D3\u05E4\u05D9\u05DD, \u05D8\u05E7\u05E1\u05D8\u05D9\u05DD \u05D5\u05EA\u05DE\u05D5\u05E0\u05D5\u05EA.", "\u05D4\u05D0\u05EA\u05E8 \u05D4\u05D9\u05E9\u05DF \u05E0\u05E9\u05D0\u05E8 \u05DB\u05DE\u05D5 \u05E9\u05D4\u05D5\u05D0 \u05E2\u05D3 \u05E9\u05D0\u05EA\u05DD \u05DE\u05D0\u05E9\u05E8\u05D9\u05DD \u05D0\u05EA \u05D4\u05D7\u05D3\u05E9."],
943
- prompt: "\u05D1\u05E0\u05D4 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8 \u05DE\u05D7\u05D3\u05E9 \u05DB\u05DA \u05E9\u05D9\u05E8\u05D5\u05E5 \u05D1 DeployAI: HTML \u05E1\u05D8\u05D8\u05D9 \u05D0\u05DD \u05D0\u05D9\u05DF \u05D1\u05D5 \u05E7\u05D5\u05D3 \u05E9\u05E8\u05EA, \u05D0\u05D5 Astro \u05D0\u05D5 Hono \u05D0\u05DD \u05D9\u05E9 (\u05D8\u05E4\u05E1\u05D9\u05DD, \u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA, \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD). \u05E9\u05DE\u05D5\u05E8 \u05E2\u05DC \u05DB\u05DC \u05D4\u05D3\u05E4\u05D9\u05DD, \u05D4\u05D8\u05E7\u05E1\u05D8\u05D9\u05DD, \u05D4\u05EA\u05DE\u05D5\u05E0\u05D5\u05EA, \u05D4\u05E7\u05D9\u05E9\u05D5\u05E8\u05D9\u05DD \u05D5\u05D4\u05D8\u05E4\u05E1\u05D9\u05DD, \u05D5\u05D4\u05E2\u05D1\u05E8 \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05DC D1. \u05D1\u05E0\u05D4 \u05D1\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05D7\u05D3\u05E9\u05D4, \u05D4\u05E8\u05E5 \u05E9\u05DD npx deployai@latest check, \u05D5\u05D4\u05E9\u05D0\u05E8 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8 \u05D4\u05D9\u05E9\u05DF \u05E2\u05D3 \u05E9\u05D4\u05DE\u05E9\u05EA\u05DE\u05E9 \u05DE\u05D0\u05E9\u05E8 \u05D0\u05EA \u05D4\u05D7\u05D3\u05E9."
943
+ prompt: "\u05D1\u05E0\u05D4 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8 \u05DE\u05D7\u05D3\u05E9 \u05DB\u05DA \u05E9\u05D9\u05E8\u05D5\u05E5 \u05D1\u05BEDeployAI: HTML \u05E1\u05D8\u05D8\u05D9 \u05D0\u05DD \u05D0\u05D9\u05DF \u05D1\u05D5 \u05E7\u05D5\u05D3 \u05E9\u05E8\u05EA, \u05D0\u05D5 Astro \u05D0\u05D5 Hono \u05D0\u05DD \u05D9\u05E9 (\u05D8\u05E4\u05E1\u05D9\u05DD, \u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA, \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD). \u05E9\u05DE\u05D5\u05E8 \u05E2\u05DC \u05DB\u05DC \u05D4\u05D3\u05E4\u05D9\u05DD, \u05D4\u05D8\u05E7\u05E1\u05D8\u05D9\u05DD, \u05D4\u05EA\u05DE\u05D5\u05E0\u05D5\u05EA, \u05D4\u05E7\u05D9\u05E9\u05D5\u05E8\u05D9\u05DD \u05D5\u05D4\u05D8\u05E4\u05E1\u05D9\u05DD, \u05D5\u05D4\u05E2\u05D1\u05E8 \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05DC\u05BED1. \u05D1\u05E0\u05D4 \u05D1\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05D7\u05D3\u05E9\u05D4, \u05D4\u05E8\u05E5 \u05E9\u05DD npx deployai@latest check, \u05D5\u05D4\u05E9\u05D0\u05E8 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8 \u05D4\u05D9\u05E9\u05DF \u05E2\u05D3 \u05E9\u05D4\u05DE\u05E9\u05EA\u05DE\u05E9 \u05DE\u05D0\u05E9\u05E8 \u05D0\u05EA \u05D4\u05D7\u05D3\u05E9."
944
944
  },
945
945
  en: {
946
946
  what: "The site is built with a tool we do not run, such as WordPress, PHP or Python.",
@@ -979,7 +979,7 @@ var ISSUE_HELP = {
979
979
  what: "\u05D4\u05D0\u05EA\u05E8 \u05D1\u05E0\u05D5\u05D9 \u05D1\u05DB\u05DC\u05D9 \u05E9\u05D4\u05EA\u05DE\u05D9\u05DB\u05D4 \u05D1\u05D5 \u05D0\u05E6\u05DC\u05E0\u05D5 \u05E2\u05D3\u05D9\u05D9\u05DF \u05D1\u05E9\u05DC\u05D1 \u05D1\u05D8\u05D0.",
980
980
  why: "\u05D6\u05D5 \u05E8\u05E7 \u05D0\u05D6\u05D4\u05E8\u05D4, \u05D5\u05D4\u05D0\u05EA\u05E8 \u05D9\u05DB\u05D5\u05DC \u05DC\u05E2\u05DC\u05D5\u05EA. \u05D4\u05DB\u05DC\u05D9 \u05E0\u05D1\u05E0\u05D4 \u05E2\u05DD \u05D4\u05DE\u05EA\u05D0\u05DD \u05D4\u05E8\u05E9\u05DE\u05D9 \u05E9\u05DC\u05D5, \u05D0\u05D1\u05DC \u05E2\u05D1\u05E8 \u05D0\u05E6\u05DC\u05E0\u05D5 \u05E4\u05D7\u05D5\u05EA \u05D1\u05D3\u05D9\u05E7\u05D5\u05EA.",
981
981
  fix: ["\u05DC\u05D0 \u05E6\u05E8\u05D9\u05DA \u05DC\u05E9\u05E0\u05D5\u05EA \u05DB\u05DC\u05D5\u05DD.", "\u05D1\u05D5\u05D3\u05E7\u05D9\u05DD \u05D4\u05D9\u05D8\u05D1 \u05D0\u05EA \u05E7\u05D9\u05E9\u05D5\u05E8 \u05D4\u05EA\u05E6\u05D5\u05D2\u05D4 \u05D4\u05DE\u05E7\u05D3\u05D9\u05DE\u05D4 \u05DC\u05E4\u05E0\u05D9 \u05E9\u05DE\u05E2\u05DC\u05D9\u05DD \u05D0\u05EA \u05D4\u05D2\u05E8\u05E1\u05D4 \u05DC\u05D0\u05D5\u05D5\u05D9\u05E8."],
982
- prompt: "\u05D4\u05D0\u05EA\u05E8 \u05D9\u05DB\u05D5\u05DC \u05DC\u05E2\u05DC\u05D5\u05EA, \u05E0\u05D1\u05E0\u05D4 \u05E2\u05DD \u05D4\u05DE\u05EA\u05D0\u05DD \u05D4\u05E8\u05E9\u05DE\u05D9 \u05E9\u05DC Cloudflare, \u05D0\u05D1\u05DC \u05D4\u05DB\u05DC\u05D9 \u05D4\u05D6\u05D4 \u05E2\u05D1\u05E8 \u05E4\u05D7\u05D5\u05EA \u05D1\u05D3\u05D9\u05E7\u05D5\u05EA \u05D1 DeployAI. \u05E1\u05E4\u05E8 \u05E2\u05DC \u05D6\u05D4 \u05DC\u05DE\u05E9\u05EA\u05DE\u05E9, \u05D5\u05D1\u05D3\u05D5\u05E7 \u05D4\u05D9\u05D8\u05D1 \u05D0\u05EA \u05E7\u05D9\u05E9\u05D5\u05E8 \u05D4\u05EA\u05E6\u05D5\u05D2\u05D4 \u05D4\u05DE\u05E7\u05D3\u05D9\u05DE\u05D4 \u05DC\u05E4\u05E0\u05D9 \u05E9\u05D4\u05D2\u05E8\u05E1\u05D4 \u05E2\u05D5\u05DC\u05D4 \u05DC\u05D0\u05D5\u05D5\u05D9\u05E8."
982
+ prompt: "\u05D4\u05D0\u05EA\u05E8 \u05D9\u05DB\u05D5\u05DC \u05DC\u05E2\u05DC\u05D5\u05EA, \u05E0\u05D1\u05E0\u05D4 \u05E2\u05DD \u05D4\u05DE\u05EA\u05D0\u05DD \u05D4\u05E8\u05E9\u05DE\u05D9 \u05E9\u05DC Cloudflare, \u05D0\u05D1\u05DC \u05D4\u05DB\u05DC\u05D9 \u05D4\u05D6\u05D4 \u05E2\u05D1\u05E8 \u05E4\u05D7\u05D5\u05EA \u05D1\u05D3\u05D9\u05E7\u05D5\u05EA \u05D1\u05BEDeployAI. \u05E1\u05E4\u05E8 \u05E2\u05DC \u05D6\u05D4 \u05DC\u05DE\u05E9\u05EA\u05DE\u05E9, \u05D5\u05D1\u05D3\u05D5\u05E7 \u05D4\u05D9\u05D8\u05D1 \u05D0\u05EA \u05E7\u05D9\u05E9\u05D5\u05E8 \u05D4\u05EA\u05E6\u05D5\u05D2\u05D4 \u05D4\u05DE\u05E7\u05D3\u05D9\u05DE\u05D4 \u05DC\u05E4\u05E0\u05D9 \u05E9\u05D4\u05D2\u05E8\u05E1\u05D4 \u05E2\u05D5\u05DC\u05D4 \u05DC\u05D0\u05D5\u05D5\u05D9\u05E8."
983
983
  },
984
984
  en: {
985
985
  what: "The site is built with a tool whose support on DeployAI is still in beta.",
@@ -989,7 +989,7 @@ var ISSUE_HELP = {
989
989
  },
990
990
  astro_adapter_unsupported: {
991
991
  he: {
992
- what: "\u05D4\u05D0\u05EA\u05E8 \u05D1\u05E0\u05D5\u05D9 \u05D1 Astro, \u05D0\u05D1\u05DC \u05DE\u05D5\u05D2\u05D3\u05E8 \u05E2\u05DD \u05DE\u05EA\u05D0\u05DD \u05DC\u05E9\u05E8\u05EA \u05DE\u05E1\u05D5\u05D2 \u05D0\u05D7\u05E8.",
992
+ what: "\u05D4\u05D0\u05EA\u05E8 \u05D1\u05E0\u05D5\u05D9 \u05D1\u05BEAstro, \u05D0\u05D1\u05DC \u05DE\u05D5\u05D2\u05D3\u05E8 \u05E2\u05DD \u05DE\u05EA\u05D0\u05DD \u05DC\u05E9\u05E8\u05EA \u05DE\u05E1\u05D5\u05D2 \u05D0\u05D7\u05E8.",
993
993
  why: "\u05D6\u05D5 \u05D0\u05D6\u05D4\u05E8\u05D4. \u05D4\u05DE\u05EA\u05D0\u05DD \u05E7\u05D5\u05D1\u05E2 \u05D0\u05D9\u05E4\u05D4 \u05D4\u05D7\u05DC\u05E7\u05D9\u05DD \u05D4\u05D3\u05D9\u05E0\u05DE\u05D9\u05D9\u05DD \u05E9\u05DC \u05D4\u05D0\u05EA\u05E8 \u05E8\u05E6\u05D9\u05DD, \u05D5\u05DE\u05EA\u05D0\u05DD \u05DC\u05D0 \u05DE\u05EA\u05D0\u05D9\u05DD \u05D9\u05DB\u05D5\u05DC \u05DC\u05E9\u05D1\u05D5\u05E8 \u05D0\u05D5\u05EA\u05DD.",
994
994
  fix: ["\u05DC\u05D7\u05DC\u05E7\u05D9\u05DD \u05D3\u05D9\u05E0\u05DE\u05D9\u05D9\u05DD \u05DE\u05D7\u05DC\u05D9\u05E4\u05D9\u05DD \u05DC\u05DE\u05EA\u05D0\u05DD \u05E9\u05D0\u05E0\u05D7\u05E0\u05D5 \u05EA\u05D5\u05DE\u05DB\u05D9\u05DD \u05D1\u05D5. \u05D4\u05E1\u05D5\u05DB\u05DF \u05D9\u05D5\u05D3\u05E2 \u05D0\u05D9\u05D6\u05D4.", "\u05D0\u05EA\u05E8 \u05E1\u05D8\u05D8\u05D9 \u05DC\u05D2\u05DE\u05E8\u05D9 \u05DC\u05D0 \u05E6\u05E8\u05D9\u05DA \u05DE\u05EA\u05D0\u05DD \u05D1\u05DB\u05DC\u05DC."],
995
995
  prompt: "\u05D4\u05E9\u05EA\u05DE\u05E9 \u05D1\u05DE\u05EA\u05D0\u05DD @astrojs/cloudflare \u05DC\u05E0\u05EA\u05D9\u05D1\u05D9 \u05E9\u05E8\u05EA, \u05D0\u05D5 \u05D4\u05E1\u05E8 \u05D0\u05EA \u05D4\u05DE\u05EA\u05D0\u05DD \u05DC\u05D0\u05EA\u05E8 \u05E1\u05D8\u05D8\u05D9 \u05DC\u05D2\u05DE\u05E8\u05D9."
@@ -1044,7 +1044,7 @@ var ISSUE_HELP = {
1044
1044
  what: "\u05D9\u05E9 \u05D1\u05D8\u05D5\u05E4\u05E1 \u05E9\u05D3\u05D5\u05EA \u05D1\u05DC\u05D9 \u05EA\u05D5\u05D5\u05D9\u05EA \u05E9\u05D0\u05D5\u05DE\u05E8\u05EA \u05DE\u05D4 \u05E6\u05E8\u05D9\u05DA \u05DC\u05DE\u05DC\u05D0 \u05D1\u05D4\u05DD.",
1045
1045
  why: '\u05D6\u05D5 \u05E8\u05E7 \u05D0\u05D6\u05D4\u05E8\u05D4. \u05E7\u05D5\u05E8\u05D0 \u05DE\u05E1\u05DA \u05DE\u05E7\u05E8\u05D9\u05D0 \u05E8\u05E7 "\u05E9\u05D3\u05D4 \u05E2\u05E8\u05D9\u05DB\u05D4", \u05D5\u05D4\u05D2\u05D5\u05DC\u05E9 \u05DC\u05D0 \u05D9\u05D5\u05D3\u05E2 \u05DE\u05D4 \u05DC\u05DB\u05EA\u05D5\u05D1. \u05D8\u05E7\u05E1\u05D8 \u05DC\u05D3\u05D5\u05D2\u05DE\u05D4 \u05D1\u05EA\u05D5\u05DA \u05D4\u05E9\u05D3\u05D4 \u05DC\u05D0 \u05DE\u05E1\u05E4\u05D9\u05E7, \u05DB\u05D9 \u05D4\u05D5\u05D0 \u05E0\u05E2\u05DC\u05DD \u05DB\u05E9\u05DE\u05EA\u05D7\u05D9\u05DC\u05D9\u05DD \u05DC\u05D4\u05E7\u05DC\u05D9\u05D3.',
1046
1046
  fix: ["\u05DE\u05D5\u05E1\u05D9\u05E4\u05D9\u05DD \u05DC\u05DB\u05DC \u05E9\u05D3\u05D4 \u05EA\u05D5\u05D5\u05D9\u05EA \u05D2\u05DC\u05D5\u05D9\u05D4 \u05E9\u05DE\u05D7\u05D5\u05D1\u05E8\u05EA \u05D0\u05DC\u05D9\u05D5.", "\u05DE\u05E8\u05D9\u05E6\u05D9\u05DD \u05E9\u05D5\u05D1 \u05D0\u05EA \u05D4\u05D1\u05D3\u05D9\u05E7\u05D4."],
1047
- prompt: '\u05EA\u05DF \u05DC\u05DB\u05DC input, select \u05D5 textarea \u05EA\u05D5\u05D5\u05D9\u05EA \u05D2\u05DC\u05D5\u05D9\u05D4 <label for="field-id"> \u05E9\u05DE\u05EA\u05D0\u05D9\u05DE\u05D4 \u05DC id \u05E9\u05DC \u05D4\u05E9\u05D3\u05D4, \u05D0\u05D5 \u05E2\u05D8\u05D5\u05E3 \u05D0\u05EA \u05D4\u05E9\u05D3\u05D4 \u05D1 <label> \u05E9\u05DC\u05D5. \u05D4\u05E9\u05EA\u05DE\u05E9 \u05D1 aria-label \u05E8\u05E7 \u05DB\u05E9\u05D0\u05D9\u05DF \u05D0\u05E4\u05E9\u05E8\u05D5\u05EA \u05DC\u05EA\u05D5\u05D5\u05D9\u05EA \u05D2\u05DC\u05D5\u05D9\u05D4. placeholder \u05D4\u05D5\u05D0 \u05DC\u05D0 \u05EA\u05D5\u05D5\u05D9\u05EA.'
1047
+ prompt: '\u05EA\u05DF \u05DC\u05DB\u05DC input, select \u05D5\u05BEtextarea \u05EA\u05D5\u05D5\u05D9\u05EA \u05D2\u05DC\u05D5\u05D9\u05D4 <label for="field-id"> \u05E9\u05DE\u05EA\u05D0\u05D9\u05DE\u05D4 \u05DC\u05BEid \u05E9\u05DC \u05D4\u05E9\u05D3\u05D4, \u05D0\u05D5 \u05E2\u05D8\u05D5\u05E3 \u05D0\u05EA \u05D4\u05E9\u05D3\u05D4 \u05D1 <label> \u05E9\u05DC\u05D5. \u05D4\u05E9\u05EA\u05DE\u05E9 \u05D1\u05BEaria-label \u05E8\u05E7 \u05DB\u05E9\u05D0\u05D9\u05DF \u05D0\u05E4\u05E9\u05E8\u05D5\u05EA \u05DC\u05EA\u05D5\u05D5\u05D9\u05EA \u05D2\u05DC\u05D5\u05D9\u05D4. placeholder \u05D4\u05D5\u05D0 \u05DC\u05D0 \u05EA\u05D5\u05D5\u05D9\u05EA.'
1048
1048
  },
1049
1049
  en: {
1050
1050
  what: "A form has fields with no label that says what to fill in.",
@@ -1057,7 +1057,7 @@ var ISSUE_HELP = {
1057
1057
  what: "\u05D9\u05E9 \u05D1\u05D0\u05EA\u05E8 \u05DB\u05E4\u05EA\u05D5\u05E8\u05D9\u05DD \u05D1\u05DC\u05D9 \u05E9\u05DD, \u05D1\u05D3\u05E8\u05DA \u05DB\u05DC\u05DC \u05DB\u05E4\u05EA\u05D5\u05E8\u05D9\u05DD \u05E9\u05D9\u05E9 \u05D1\u05D4\u05DD \u05E8\u05E7 \u05E1\u05DE\u05DC.",
1058
1058
  why: '\u05D6\u05D5 \u05E8\u05E7 \u05D0\u05D6\u05D4\u05E8\u05D4. \u05E7\u05D5\u05E8\u05D0 \u05DE\u05E1\u05DA \u05DE\u05E7\u05E8\u05D9\u05D0 \u05E8\u05E7 "\u05DB\u05E4\u05EA\u05D5\u05E8", \u05D5\u05D4\u05D2\u05D5\u05DC\u05E9 \u05DC\u05D0 \u05D9\u05D5\u05D3\u05E2 \u05DE\u05D4 \u05D4\u05DB\u05E4\u05EA\u05D5\u05E8 \u05E2\u05D5\u05E9\u05D4.',
1059
1059
  fix: ['\u05E0\u05D5\u05EA\u05E0\u05D9\u05DD \u05DC\u05DB\u05DC \u05DB\u05E4\u05EA\u05D5\u05E8 \u05D8\u05E7\u05E1\u05D8, \u05D0\u05D5 \u05E9\u05DD \u05E0\u05E1\u05EA\u05E8 \u05DC\u05DB\u05E4\u05EA\u05D5\u05E8 \u05E9\u05D9\u05E9 \u05D1\u05D5 \u05E8\u05E7 \u05E1\u05DE\u05DC, \u05DC\u05DE\u05E9\u05DC "\u05E1\u05D2\u05D9\u05E8\u05EA \u05D4\u05EA\u05E4\u05E8\u05D9\u05D8".', "\u05DE\u05E8\u05D9\u05E6\u05D9\u05DD \u05E9\u05D5\u05D1 \u05D0\u05EA \u05D4\u05D1\u05D3\u05D9\u05E7\u05D4."],
1060
- prompt: '\u05EA\u05DF \u05DC\u05DB\u05DC <button> \u05E9\u05DD \u05E9\u05E7\u05D5\u05E8\u05D0 \u05DE\u05E1\u05DA \u05D9\u05DB\u05D5\u05DC \u05DC\u05D4\u05E7\u05E8\u05D9\u05D0: \u05D8\u05E7\u05E1\u05D8 \u05D2\u05DC\u05D5\u05D9, \u05D0\u05D5 aria-label="..." \u05DC\u05DB\u05E4\u05EA\u05D5\u05E8 \u05E9\u05D9\u05E9 \u05D1\u05D5 \u05E8\u05E7 \u05E1\u05DE\u05DC (\u05DC\u05DE\u05E9\u05DC aria-label="\u05E1\u05D2\u05D9\u05E8\u05EA \u05D4\u05EA\u05E4\u05E8\u05D9\u05D8"). \u05E1\u05DE\u05DF \u05D0\u05EA \u05D4\u05E1\u05DE\u05DC \u05E9\u05D1\u05EA\u05D5\u05DB\u05D5 \u05D1 aria-hidden="true".'
1060
+ prompt: '\u05EA\u05DF \u05DC\u05DB\u05DC <button> \u05E9\u05DD \u05E9\u05E7\u05D5\u05E8\u05D0 \u05DE\u05E1\u05DA \u05D9\u05DB\u05D5\u05DC \u05DC\u05D4\u05E7\u05E8\u05D9\u05D0: \u05D8\u05E7\u05E1\u05D8 \u05D2\u05DC\u05D5\u05D9, \u05D0\u05D5 aria-label="..." \u05DC\u05DB\u05E4\u05EA\u05D5\u05E8 \u05E9\u05D9\u05E9 \u05D1\u05D5 \u05E8\u05E7 \u05E1\u05DE\u05DC (\u05DC\u05DE\u05E9\u05DC aria-label="\u05E1\u05D2\u05D9\u05E8\u05EA \u05D4\u05EA\u05E4\u05E8\u05D9\u05D8"). \u05E1\u05DE\u05DF \u05D0\u05EA \u05D4\u05E1\u05DE\u05DC \u05E9\u05D1\u05EA\u05D5\u05DB\u05D5 \u05D1\u05BEaria-hidden="true".'
1061
1061
  },
1062
1062
  en: {
1063
1063
  what: "The site has buttons with no name, usually buttons that show only an icon.",
@@ -1083,7 +1083,7 @@ var ISSUE_HELP = {
1083
1083
  what: "\u05D4\u05DB\u05D5\u05EA\u05E8\u05D5\u05EA \u05D1\u05E2\u05DE\u05D5\u05D3 \u05DE\u05D3\u05DC\u05D2\u05D5\u05EA \u05E2\u05DC \u05E8\u05DE\u05D4, \u05DC\u05DE\u05E9\u05DC \u05DE\u05DB\u05D5\u05EA\u05E8\u05EA \u05DE\u05E9\u05E0\u05D4 \u05D9\u05E9\u05E8 \u05DC\u05DB\u05D5\u05EA\u05E8\u05EA \u05D1\u05E8\u05DE\u05D4 \u05E8\u05D1\u05D9\u05E2\u05D9\u05EA, \u05D0\u05D5 \u05E9\u05D0\u05D9\u05DF \u05D1\u05E2\u05DE\u05D5\u05D3 \u05DB\u05D5\u05EA\u05E8\u05EA \u05E8\u05D0\u05E9\u05D9\u05EA.",
1084
1084
  why: "\u05D6\u05D5 \u05E8\u05E7 \u05D0\u05D6\u05D4\u05E8\u05D4. \u05D2\u05D5\u05DC\u05E9\u05D9\u05DD \u05E2\u05DD \u05E7\u05D5\u05E8\u05D0 \u05DE\u05E1\u05DA \u05E2\u05D5\u05D1\u05E8\u05D9\u05DD \u05D1\u05D9\u05DF \u05DB\u05D5\u05EA\u05E8\u05D5\u05EA \u05DB\u05D3\u05D9 \u05DC\u05D4\u05D1\u05D9\u05DF \u05D0\u05EA \u05DE\u05D1\u05E0\u05D4 \u05D4\u05E2\u05DE\u05D5\u05D3, \u05D5\u05D3\u05D9\u05DC\u05D5\u05D2 \u05E2\u05DC \u05E8\u05DE\u05D4 \u05E0\u05E8\u05D0\u05D4 \u05DC\u05D4\u05DD \u05DB\u05DE\u05D5 \u05D7\u05DC\u05E7 \u05D7\u05E1\u05E8.",
1085
1085
  fix: ["\u05E0\u05D5\u05EA\u05E0\u05D9\u05DD \u05DC\u05DB\u05DC \u05E2\u05DE\u05D5\u05D3 \u05DB\u05D5\u05EA\u05E8\u05EA \u05E8\u05D0\u05E9\u05D9\u05EA \u05D0\u05D7\u05EA.", "\u05DE\u05E9\u05EA\u05DE\u05E9\u05D9\u05DD \u05D1\u05E8\u05DE\u05D5\u05EA \u05D4\u05DB\u05D5\u05EA\u05E8\u05D5\u05EA \u05DC\u05E4\u05D9 \u05D4\u05E1\u05D3\u05E8, \u05D5\u05D4\u05DE\u05E8\u05D0\u05D4 \u05E0\u05E9\u05D0\u05E8 \u05D0\u05D5\u05EA\u05D5 \u05D3\u05D1\u05E8.", "\u05DE\u05E8\u05D9\u05E6\u05D9\u05DD \u05E9\u05D5\u05D1 \u05D0\u05EA \u05D4\u05D1\u05D3\u05D9\u05E7\u05D4."],
1086
- prompt: "\u05EA\u05DF \u05DC\u05DB\u05DC \u05E2\u05DE\u05D5\u05D3 <h1> \u05D0\u05D7\u05D3, \u05D5\u05D4\u05E9\u05EA\u05DE\u05E9 \u05D1\u05DB\u05D5\u05EA\u05E8\u05D5\u05EA \u05DC\u05E4\u05D9 \u05D4\u05E1\u05D3\u05E8 \u05D1\u05DC\u05D9 \u05DC\u05D3\u05DC\u05D2 \u05E2\u05DC \u05E8\u05DE\u05D4 (h2 \u05DE\u05EA\u05D7\u05EA \u05DC h1, h3 \u05DE\u05EA\u05D7\u05EA \u05DC h2). \u05D1\u05D7\u05E8 \u05D0\u05EA \u05E8\u05DE\u05EA \u05D4\u05DB\u05D5\u05EA\u05E8\u05EA \u05DC\u05E4\u05D9 \u05D4\u05DE\u05D1\u05E0\u05D4, \u05D5\u05E9\u05DE\u05D5\u05E8 \u05E2\u05DC \u05D0\u05D5\u05EA\u05D5 \u05DE\u05E8\u05D0\u05D4 \u05E2\u05DD CSS."
1086
+ prompt: "\u05EA\u05DF \u05DC\u05DB\u05DC \u05E2\u05DE\u05D5\u05D3 <h1> \u05D0\u05D7\u05D3, \u05D5\u05D4\u05E9\u05EA\u05DE\u05E9 \u05D1\u05DB\u05D5\u05EA\u05E8\u05D5\u05EA \u05DC\u05E4\u05D9 \u05D4\u05E1\u05D3\u05E8 \u05D1\u05DC\u05D9 \u05DC\u05D3\u05DC\u05D2 \u05E2\u05DC \u05E8\u05DE\u05D4 (h2 \u05DE\u05EA\u05D7\u05EA \u05DC\u05BEh1, h3 \u05DE\u05EA\u05D7\u05EA \u05DC\u05BEh2). \u05D1\u05D7\u05E8 \u05D0\u05EA \u05E8\u05DE\u05EA \u05D4\u05DB\u05D5\u05EA\u05E8\u05EA \u05DC\u05E4\u05D9 \u05D4\u05DE\u05D1\u05E0\u05D4, \u05D5\u05E9\u05DE\u05D5\u05E8 \u05E2\u05DC \u05D0\u05D5\u05EA\u05D5 \u05DE\u05E8\u05D0\u05D4 \u05E2\u05DD CSS."
1087
1087
  },
1088
1088
  en: {
1089
1089
  what: "The headings on a page skip a level, for example from a subheading straight to a fourth level heading, or the page has no main heading.",
@@ -1109,7 +1109,7 @@ var ISSUE_HELP = {
1109
1109
  what: "\u05D9\u05E9 \u05D1\u05D0\u05EA\u05E8 \u05E8\u05DB\u05D9\u05D1\u05D9\u05DD \u05E9\u05DE\u05E9\u05E0\u05D9\u05DD \u05D1\u05DB\u05D5\u05D7 \u05D0\u05EA \u05E1\u05D3\u05E8 \u05D4\u05DE\u05E2\u05D1\u05E8 \u05D1\u05DE\u05E7\u05E9 Tab.",
1110
1110
  why: "\u05D6\u05D5 \u05E8\u05E7 \u05D0\u05D6\u05D4\u05E8\u05D4. \u05DE\u05D9 \u05E9\u05D2\u05D5\u05DC\u05E9 \u05E2\u05DD \u05DE\u05E7\u05DC\u05D3\u05EA \u05E7\u05D5\u05E4\u05E5 \u05D1\u05D9\u05DF \u05D7\u05DC\u05E7\u05D9 \u05D4\u05E2\u05DE\u05D5\u05D3 \u05D1\u05E1\u05D3\u05E8 \u05DE\u05D1\u05DC\u05D1\u05DC, \u05E9\u05DC\u05D0 \u05DE\u05EA\u05D0\u05D9\u05DD \u05DC\u05DE\u05D4 \u05E9\u05D4\u05D5\u05D0 \u05E8\u05D5\u05D0\u05D4.",
1111
1111
  fix: ["\u05DE\u05D1\u05D8\u05DC\u05D9\u05DD \u05D0\u05EA \u05E1\u05D3\u05E8 \u05D4\u05DE\u05E2\u05D1\u05E8 \u05D4\u05DE\u05D5\u05EA\u05D0\u05DD, \u05D5\u05DE\u05E1\u05D3\u05E8\u05D9\u05DD \u05D0\u05EA \u05D4\u05E8\u05DB\u05D9\u05D1\u05D9\u05DD \u05D1\u05E2\u05DE\u05D5\u05D3 \u05DC\u05E4\u05D9 \u05D4\u05E1\u05D3\u05E8 \u05D4\u05E0\u05DB\u05D5\u05DF.", "\u05DE\u05E8\u05D9\u05E6\u05D9\u05DD \u05E9\u05D5\u05D1 \u05D0\u05EA \u05D4\u05D1\u05D3\u05D9\u05E7\u05D4."],
1112
- prompt: '\u05D4\u05E1\u05E8 \u05E2\u05E8\u05DB\u05D9 tabindex \u05D2\u05D3\u05D5\u05DC\u05D9\u05DD \u05DE 0. \u05D4\u05E9\u05EA\u05DE\u05E9 \u05D1 tabindex="0" \u05DB\u05D3\u05D9 \u05E9\u05E8\u05DB\u05D9\u05D1 \u05DE\u05D5\u05EA\u05D0\u05DD \u05D9\u05E7\u05D1\u05DC \u05E4\u05D5\u05E7\u05D5\u05E1, \u05D5\u05E1\u05D3\u05E8 \u05D0\u05EA \u05D4\u05E8\u05DB\u05D9\u05D1\u05D9\u05DD \u05D1\u05E1\u05D3\u05E8 \u05D4\u05E0\u05DB\u05D5\u05DF \u05D1 HTML \u05D1\u05DE\u05E7\u05D5\u05DD \u05DC\u05DB\u05E4\u05D5\u05EA \u05E1\u05D3\u05E8.'
1112
+ prompt: '\u05D4\u05E1\u05E8 \u05E2\u05E8\u05DB\u05D9 tabindex \u05D2\u05D3\u05D5\u05DC\u05D9\u05DD \u05DE 0. \u05D4\u05E9\u05EA\u05DE\u05E9 \u05D1\u05BEtabindex="0" \u05DB\u05D3\u05D9 \u05E9\u05E8\u05DB\u05D9\u05D1 \u05DE\u05D5\u05EA\u05D0\u05DD \u05D9\u05E7\u05D1\u05DC \u05E4\u05D5\u05E7\u05D5\u05E1, \u05D5\u05E1\u05D3\u05E8 \u05D0\u05EA \u05D4\u05E8\u05DB\u05D9\u05D1\u05D9\u05DD \u05D1\u05E1\u05D3\u05E8 \u05D4\u05E0\u05DB\u05D5\u05DF \u05D1\u05BEHTML \u05D1\u05DE\u05E7\u05D5\u05DD \u05DC\u05DB\u05E4\u05D5\u05EA \u05E1\u05D3\u05E8.'
1113
1113
  },
1114
1114
  en: {
1115
1115
  what: "The site has elements that force a custom order for the Tab key.",
@@ -1148,7 +1148,7 @@ var ISSUE_HELP = {
1148
1148
  what: '\u05E2\u05DE\u05D5\u05D3 \u05D4\u05D1\u05D9\u05EA \u05DC\u05D0 \u05DE\u05EA\u05D7\u05D9\u05DC \u05D1\u05E7\u05D9\u05E9\u05D5\u05E8 "\u05D3\u05D9\u05DC\u05D5\u05D2 \u05DC\u05EA\u05D5\u05DB\u05DF" \u05E9\u05DE\u05D5\u05D1\u05D9\u05DC \u05D9\u05E9\u05E8 \u05DC\u05EA\u05D5\u05DB\u05DF \u05D4\u05E8\u05D0\u05E9\u05D9.',
1149
1149
  why: "\u05D6\u05D5 \u05E8\u05E7 \u05D0\u05D6\u05D4\u05E8\u05D4. \u05DE\u05D9 \u05E9\u05D2\u05D5\u05DC\u05E9 \u05E2\u05DD \u05DE\u05E7\u05DC\u05D3\u05EA \u05E6\u05E8\u05D9\u05DA \u05DC\u05E2\u05D1\u05D5\u05E8 \u05E2\u05DC \u05DB\u05DC \u05D4\u05EA\u05E4\u05E8\u05D9\u05D8 \u05D1\u05DB\u05DC \u05E2\u05DE\u05D5\u05D3 \u05DC\u05E4\u05E0\u05D9 \u05E9\u05D4\u05D5\u05D0 \u05DE\u05D2\u05D9\u05E2 \u05DC\u05EA\u05D5\u05DB\u05DF.",
1150
1150
  fix: ['\u05DE\u05D5\u05E1\u05D9\u05E4\u05D9\u05DD \u05D1\u05EA\u05D7\u05D9\u05DC\u05EA \u05D4\u05E2\u05DE\u05D5\u05D3 \u05E7\u05D9\u05E9\u05D5\u05E8 "\u05D3\u05D9\u05DC\u05D5\u05D2 \u05DC\u05EA\u05D5\u05DB\u05DF" \u05E9\u05DE\u05D5\u05E4\u05D9\u05E2 \u05E8\u05E7 \u05DB\u05E9\u05DE\u05D2\u05D9\u05E2\u05D9\u05DD \u05D0\u05DC\u05D9\u05D5 \u05D1\u05DE\u05E7\u05DC\u05D3\u05EA.', "\u05DE\u05E8\u05D9\u05E6\u05D9\u05DD \u05E9\u05D5\u05D1 \u05D0\u05EA \u05D4\u05D1\u05D3\u05D9\u05E7\u05D4."],
1151
- prompt: '\u05D4\u05D5\u05E1\u05E3 \u05E7\u05D9\u05E9\u05D5\u05E8 \u05D3\u05D9\u05DC\u05D5\u05D2 \u05DB\u05E8\u05DB\u05D9\u05D1 \u05D4\u05E8\u05D0\u05E9\u05D5\u05DF \u05E9\u05DE\u05E7\u05D1\u05DC \u05E4\u05D5\u05E7\u05D5\u05E1 \u05D1 <body>: <a href="#main" class="skip-link">\u05D3\u05D9\u05DC\u05D5\u05D2 \u05DC\u05EA\u05D5\u05DB\u05DF</a> \u05D1\u05E9\u05E4\u05EA \u05D4\u05E2\u05DE\u05D5\u05D3, \u05D5 id="main" \u05E2\u05DC \u05E8\u05DB\u05D9\u05D1 \u05D4 <main>. \u05D4\u05E1\u05EA\u05E8 \u05D0\u05D5\u05EA\u05D5 \u05E2\u05D3 \u05E9\u05D4\u05D5\u05D0 \u05DE\u05E7\u05D1\u05DC \u05E4\u05D5\u05E7\u05D5\u05E1 \u05DE\u05D4\u05DE\u05E7\u05DC\u05D3\u05EA, \u05D5\u05D0\u05D6 \u05D4\u05E6\u05D2 \u05D0\u05D5\u05EA\u05D5.'
1151
+ prompt: '\u05D4\u05D5\u05E1\u05E3 \u05E7\u05D9\u05E9\u05D5\u05E8 \u05D3\u05D9\u05DC\u05D5\u05D2 \u05DB\u05E8\u05DB\u05D9\u05D1 \u05D4\u05E8\u05D0\u05E9\u05D5\u05DF \u05E9\u05DE\u05E7\u05D1\u05DC \u05E4\u05D5\u05E7\u05D5\u05E1 \u05D1 <body>: <a href="#main" class="skip-link">\u05D3\u05D9\u05DC\u05D5\u05D2 \u05DC\u05EA\u05D5\u05DB\u05DF</a> \u05D1\u05E9\u05E4\u05EA \u05D4\u05E2\u05DE\u05D5\u05D3, \u05D5\u05BEid="main" \u05E2\u05DC \u05E8\u05DB\u05D9\u05D1 \u05D4 <main>. \u05D4\u05E1\u05EA\u05E8 \u05D0\u05D5\u05EA\u05D5 \u05E2\u05D3 \u05E9\u05D4\u05D5\u05D0 \u05DE\u05E7\u05D1\u05DC \u05E4\u05D5\u05E7\u05D5\u05E1 \u05DE\u05D4\u05DE\u05E7\u05DC\u05D3\u05EA, \u05D5\u05D0\u05D6 \u05D4\u05E6\u05D2 \u05D0\u05D5\u05EA\u05D5.'
1152
1152
  },
1153
1153
  en: {
1154
1154
  what: 'The home page does not start with a "Skip to content" link that goes straight to the main content.',
@@ -1161,7 +1161,7 @@ var ISSUE_HELP = {
1161
1161
  what: "\u05DC\u05D0 \u05DE\u05E6\u05D0\u05E0\u05D5 \u05D1\u05D0\u05EA\u05E8 \u05D4\u05E6\u05D4\u05E8\u05EA \u05E0\u05D2\u05D9\u05E9\u05D5\u05EA, \u05D0\u05D5 \u05E9\u05D0\u05D9\u05DF \u05D0\u05DC\u05D9\u05D4 \u05E7\u05D9\u05E9\u05D5\u05E8 \u05DE\u05E2\u05DE\u05D5\u05D3 \u05D4\u05D1\u05D9\u05EA.",
1162
1162
  why: "\u05D6\u05D5 \u05E8\u05E7 \u05D0\u05D6\u05D4\u05E8\u05D4, \u05D5\u05D4\u05D0\u05EA\u05E8 \u05D9\u05E2\u05DC\u05D4. \u05D0\u05D1\u05DC \u05D1\u05D9\u05E9\u05E8\u05D0\u05DC \u05D0\u05EA\u05E8 \u05E9\u05DC \u05E2\u05E1\u05E7 \u05E9\u05E0\u05D5\u05EA\u05DF \u05E9\u05D9\u05E8\u05D5\u05EA \u05DC\u05E6\u05D9\u05D1\u05D5\u05E8 \u05E6\u05E8\u05D9\u05DA \u05D4\u05E6\u05D4\u05E8\u05EA \u05E0\u05D2\u05D9\u05E9\u05D5\u05EA \u05E9\u05E7\u05DC \u05DC\u05DE\u05E6\u05D5\u05D0, \u05D1\u05D3\u05E8\u05DA \u05DB\u05DC\u05DC \u05D1\u05EA\u05D7\u05EA\u05D9\u05EA \u05DB\u05DC \u05E2\u05DE\u05D5\u05D3.",
1163
1163
  fix: ['\u05DE\u05D5\u05E1\u05D9\u05E4\u05D9\u05DD \u05E2\u05DE\u05D5\u05D3 "\u05D4\u05E6\u05D4\u05E8\u05EA \u05E0\u05D2\u05D9\u05E9\u05D5\u05EA" \u05E2\u05DD \u05DE\u05D4 \u05E9\u05D4\u05D5\u05E0\u05D2\u05E9, \u05DE\u05D4 \u05E2\u05D5\u05D3 \u05DC\u05D0, \u05D5\u05E4\u05E8\u05D8\u05D9 \u05D4\u05E7\u05E9\u05E8 \u05E9\u05DC \u05E8\u05DB\u05D6 \u05D4\u05E0\u05D2\u05D9\u05E9\u05D5\u05EA.', "\u05DE\u05E7\u05E9\u05E8\u05D9\u05DD \u05D0\u05DC\u05D9\u05D5 \u05DE\u05D4\u05EA\u05D7\u05EA\u05D9\u05EA \u05E9\u05DC \u05DB\u05DC \u05E2\u05DE\u05D5\u05D3.", "\u05DE\u05E8\u05D9\u05E6\u05D9\u05DD \u05E9\u05D5\u05D1 \u05D0\u05EA \u05D4\u05D1\u05D3\u05D9\u05E7\u05D4."],
1164
- prompt: '\u05D4\u05D5\u05E1\u05E3 \u05E2\u05DE\u05D5\u05D3 \u05D4\u05E6\u05D4\u05E8\u05EA \u05E0\u05D2\u05D9\u05E9\u05D5\u05EA (\u05DC\u05DE\u05E9\u05DC accessibility.html, \u05E2\u05DD \u05D4\u05DB\u05D5\u05EA\u05E8\u05EA "\u05D4\u05E6\u05D4\u05E8\u05EA \u05E0\u05D2\u05D9\u05E9\u05D5\u05EA" \u05D1\u05D0\u05EA\u05E8 \u05D1\u05E2\u05D1\u05E8\u05D9\u05EA) \u05D5\u05E7\u05E9\u05E8 \u05D0\u05DC\u05D9\u05D5 \u05DE\u05D4\u05EA\u05D7\u05EA\u05D9\u05EA \u05E9\u05DC \u05DB\u05DC \u05E2\u05DE\u05D5\u05D3. \u05D4\u05E2\u05DE\u05D5\u05D3 \u05D0\u05D5\u05DE\u05E8 \u05DE\u05D4 \u05D4\u05D5\u05E0\u05D2\u05E9, \u05DC\u05E4\u05D9 \u05D0\u05D9\u05D6\u05D4 \u05EA\u05E7\u05DF (\u05EA"\u05D9 5568, WCAG 2.0 \u05D1\u05E8\u05DE\u05D4 AA), \u05DE\u05D4 \u05E2\u05D5\u05D3 \u05DC\u05D0 \u05E0\u05D2\u05D9\u05E9, \u05DE\u05D9 \u05E8\u05DB\u05D6 \u05D4\u05E0\u05D2\u05D9\u05E9\u05D5\u05EA \u05E2\u05DD \u05D8\u05DC\u05E4\u05D5\u05DF \u05D5\u05DE\u05D9\u05D9\u05DC, \u05D5\u05DE\u05EA\u05D9 \u05D4\u05D4\u05E6\u05D4\u05E8\u05D4 \u05E2\u05D5\u05D3\u05DB\u05E0\u05D4 \u05DC\u05D0\u05D7\u05E8\u05D5\u05E0\u05D4.'
1164
+ prompt: '\u05D4\u05D5\u05E1\u05E3 \u05E2\u05DE\u05D5\u05D3 \u05D4\u05E6\u05D4\u05E8\u05EA \u05E0\u05D2\u05D9\u05E9\u05D5\u05EA (\u05DC\u05DE\u05E9\u05DC accessibility.html, \u05E2\u05DD \u05D4\u05DB\u05D5\u05EA\u05E8\u05EA "\u05D4\u05E6\u05D4\u05E8\u05EA \u05E0\u05D2\u05D9\u05E9\u05D5\u05EA" \u05D1\u05D0\u05EA\u05E8 \u05D1\u05E2\u05D1\u05E8\u05D9\u05EA) \u05D5\u05E7\u05E9\u05E8 \u05D0\u05DC\u05D9\u05D5 \u05DE\u05D4\u05EA\u05D7\u05EA\u05D9\u05EA \u05E9\u05DC \u05DB\u05DC \u05E2\u05DE\u05D5\u05D3. \u05D4\u05E2\u05DE\u05D5\u05D3 \u05D0\u05D5\u05DE\u05E8 \u05DE\u05D4 \u05D4\u05D5\u05E0\u05D2\u05E9, \u05DC\u05E4\u05D9 \u05D0\u05D9\u05D6\u05D4 \u05EA\u05E7\u05DF (\u05EA\u05F4\u05D9 5568, WCAG 2.0 \u05D1\u05E8\u05DE\u05D4 AA), \u05DE\u05D4 \u05E2\u05D5\u05D3 \u05DC\u05D0 \u05E0\u05D2\u05D9\u05E9, \u05DE\u05D9 \u05E8\u05DB\u05D6 \u05D4\u05E0\u05D2\u05D9\u05E9\u05D5\u05EA \u05E2\u05DD \u05D8\u05DC\u05E4\u05D5\u05DF \u05D5\u05DE\u05D9\u05D9\u05DC, \u05D5\u05DE\u05EA\u05D9 \u05D4\u05D4\u05E6\u05D4\u05E8\u05D4 \u05E2\u05D5\u05D3\u05DB\u05E0\u05D4 \u05DC\u05D0\u05D7\u05E8\u05D5\u05E0\u05D4.'
1165
1165
  },
1166
1166
  en: {
1167
1167
  what: "We did not find an accessibility statement on the site, or the home page does not link to it.",
@@ -21122,12 +21122,12 @@ var SITE = "site-<slug>";
21122
21122
  var SITE_DATA = "dai-<project id>";
21123
21123
  var ARCH_NODES = [
21124
21124
  // Outside
21125
- { id: "browser", kind: "actor", zone: "outside", label: "\u05D3\u05E4\u05D3\u05E4\u05DF", labelEn: "Browser", summary: "\u05DC\u05E7\u05D5\u05D7\u05D5\u05EA \u05D5\u05D0\u05D3\u05DE\u05D9\u05E0\u05D9\u05DD \u05E4\u05D5\u05EA\u05D7\u05D9\u05DD \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8, \u05D4\u05D3\u05E9\u05D1\u05D5\u05E8\u05D3 \u05D5\u05D4\u05D0\u05D3\u05DE\u05D9\u05DF.", summaryEn: "Customers and admins open the site, the dashboard and the admin." },
21125
+ { id: "browser", kind: "actor", zone: "outside", label: "\u05D3\u05E4\u05D3\u05E4\u05DF", labelEn: "Browser", summary: "\u05DC\u05E7\u05D5\u05D7\u05D5\u05EA \u05D5\u05D0\u05D3\u05DE\u05D9\u05E0\u05D9\u05DD \u05E4\u05D5\u05EA\u05D7\u05D9\u05DD \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8, \u05DC\u05D5\u05D7 \u05D4\u05D1\u05E7\u05E8\u05D4 \u05D5\u05D4\u05D0\u05D3\u05DE\u05D9\u05DF.", summaryEn: "Customers and admins open the site, the dashboard and the admin." },
21126
21126
  { id: "cli", kind: "actor", zone: "outside", label: "deployai CLI", summary: "\u05D4\u05E1\u05D5\u05DB\u05DF \u05D0\u05D5 \u05D4\u05DC\u05E7\u05D5\u05D7 \u05DE\u05E8\u05D9\u05E6\u05D9\u05DD check \u05D5\u05BEdeploy, \u05D5\u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA \u05D1\u05E7\u05D5\u05D3 \u05DE\u05DB\u05E9\u05D9\u05E8.", summaryEn: "The agent or the customer runs check and deploy, and logs in with a device code.", code: ["packages/cli"], docs: ["docs/07-cli.md"] },
21127
21127
  { id: "board-watcher", kind: "actor", zone: "outside", label: "Board watcher", summary: "\u05E8\u05E5 \u05D0\u05E6\u05DC \u05D4\u05D1\u05E2\u05DC\u05D9\u05DD (pnpm board:watch): \u05DC\u05D5\u05E7\u05D7 \u05DB\u05E8\u05D8\u05D9\u05E1 \u05DE\u05DC\u05D5\u05D7 \u05D4\u05E2\u05D1\u05D5\u05D3\u05D4 (\u05E8\u05E7 \u05DB\u05E9\u05D4\u05DE\u05EA\u05D2 \u05E9\u05DC\u05D5 \u05D1\u05D4\u05D2\u05D3\u05E8\u05D5\u05EA \u05E4\u05D5\u05E2\u05DC), \u05DE\u05E8\u05D9\u05E5 Claude Code \u05DC\u05E7\u05E8\u05D9\u05D0\u05D4 \u05D1\u05DC\u05D1\u05D3 \u05D5\u05DE\u05D7\u05D6\u05D9\u05E8 \u05EA\u05D5\u05DB\u05E0\u05D9\u05EA. \u05DB\u05E8\u05D8\u05D9\u05E1 \u05E2\u05DD \u05D1\u05E0\u05D9\u05D9\u05D4 \u05D0\u05D5\u05D8\u05D5\u05DE\u05D8\u05D9\u05EA \u05E9\u05D0\u05D5\u05E9\u05E8 \u05E0\u05D1\u05E0\u05D4 \u05D1\u05EA\u05D9\u05E7\u05D9\u05D9\u05EA \u05D4\u05E4\u05E8\u05D5\u05D9\u05E7\u05D8, \u05D0\u05D7\u05D3 \u05D1\u05DB\u05DC \u05E4\u05E2\u05DD. \u05D4\u05D5\u05D0 \u05D2\u05DD \u05DB\u05D5\u05EA\u05D1 \u05D2\u05E8\u05E1\u05D0\u05D5\u05EA \u05D7\u05D3\u05E9\u05D5\u05EA \u05DC\u05E1\u05E4\u05E8\u05D9\u05D9\u05EA \u05D4\u05E4\u05E8\u05D5\u05DE\u05E4\u05D8\u05D9\u05DD \u05DC\u05E4\u05D9 \u05D4\u05E2\u05E8\u05D5\u05EA \u05D4\u05D1\u05E2\u05DC\u05D9\u05DD, \u05DC\u05D1\u05D3\u05D9\u05E7\u05D4 \u05D5\u05E4\u05E8\u05E1\u05D5\u05DD.", summaryEn: "Runs on the owner computer (pnpm board:watch): claims a work board ticket (only while its settings switch is on), runs Claude Code read only and posts a plan back. An approved auto build ticket is built in the project folder, one at a time. It also writes new versions of prompt library prompts from the owner notes, for review and publishing.", code: ["scripts/board-watch.ts", "scripts/prompts-sync.ts"], env: ["BOARD_RUNNER_TOKEN", "BOARD_URL"], decisions: ["D-110", "D-127", "D-182", "D-250"] },
21128
21128
  { id: "visitor", kind: "actor", zone: "outside", label: "\u05DE\u05D1\u05E7\u05E8 \u05D1\u05D0\u05EA\u05E8", labelEn: "Site visitor", summary: "\u05DE\u05D1\u05E7\u05E8 \u05D1\u05D0\u05EA\u05E8 \u05E9\u05DC \u05DC\u05E7\u05D5\u05D7 \u05D1\u05DB\u05EA\u05D5\u05D1\u05EA <slug>.<\u05D3\u05D5\u05DE\u05D9\u05D9\u05DF \u05D0\u05EA\u05E8\u05D9\u05DD> (\u05DB\u05DE\u05D5 deploy-net.com \u05D0\u05D5 freesite.click) \u05D0\u05D5 \u05D1\u05D3\u05D5\u05DE\u05D9\u05D9\u05DF \u05DE\u05E9\u05DC\u05D5.", summaryEn: "A visitor on a customer site at <slug>.<a sites domain> (like deploy-net.com or freesite.click) or on their own domain." },
21129
21129
  // Platform
21130
- { id: "web", kind: "app", zone: "platform", label: "Web app (Next.js)", summary: "\u05D0\u05EA\u05E8 \u05D4\u05E9\u05D9\u05D5\u05D5\u05E7, \u05D4\u05D3\u05E9\u05D1\u05D5\u05E8\u05D3, \u05D4\u05D0\u05D3\u05DE\u05D9\u05DF \u05D5\u05D4\u05BEAPI \u05E9\u05DC \u05D4\u05BECLI. \u05DE\u05DB\u05E0\u05D9\u05E1 \u05E2\u05D1\u05D5\u05D3\u05D5\u05EA \u05DC\u05EA\u05D5\u05E8.", summaryEn: "The marketing site, the dashboard, the admin and the CLI API. Puts jobs in the queue.", code: ["apps/web/src/app", "apps/web/src/server"], env: ["DEPLOYAI_SPACE", "BETTER_AUTH_SECRET", "NEXT_PUBLIC_SUPPORT_WHATSAPP", "DEV_SUPERADMIN_PASSWORD"], portability: "Our app (site, dashboard, API, builds)", docs: ["docs/04-architecture.md"], decisions: ["D-020", "D-057", "D-104", "D-149", "D-238", "D-293"] },
21130
+ { id: "web", kind: "app", zone: "platform", label: "Web app (Next.js)", summary: "\u05D0\u05EA\u05E8 \u05D4\u05E9\u05D9\u05D5\u05D5\u05E7, \u05DC\u05D5\u05D7 \u05D4\u05D1\u05E7\u05E8\u05D4, \u05D4\u05D0\u05D3\u05DE\u05D9\u05DF \u05D5\u05D4\u05BEAPI \u05E9\u05DC \u05D4\u05BECLI. \u05DE\u05DB\u05E0\u05D9\u05E1 \u05E2\u05D1\u05D5\u05D3\u05D5\u05EA \u05DC\u05EA\u05D5\u05E8.", summaryEn: "The marketing site, the dashboard, the admin and the CLI API. Puts jobs in the queue.", code: ["apps/web/src/app", "apps/web/src/server"], env: ["DEPLOYAI_SPACE", "BETTER_AUTH_SECRET", "NEXT_PUBLIC_SUPPORT_WHATSAPP", "DEV_SUPERADMIN_PASSWORD"], portability: "Our app (site, dashboard, API, builds)", docs: ["docs/04-architecture.md"], decisions: ["D-020", "D-057", "D-104", "D-149", "D-238", "D-293"] },
21131
21131
  { id: "queue", kind: "db", zone: "platform", label: "pg-boss queue", summary: "\u05DB\u05DC \u05DE\u05D4 \u05E9\u05D0\u05D9\u05D8\u05D9 \u05D0\u05D5 \u05E0\u05D5\u05D2\u05E2 \u05D1\u05BECloudflare \u05E8\u05E5 \u05DB\u05E2\u05D1\u05D5\u05D3\u05D4 \u05D1\u05EA\u05D5\u05E8.", summaryEn: "Everything slow or that touches Cloudflare runs as a job in the queue.", code: ["apps/web/src/server/queue.ts"], portability: "Job queue", decisions: ["D-058"] },
21132
21132
  { id: "worker", kind: "app", zone: "platform", label: "Job worker", summary: "\u05EA\u05D4\u05DC\u05D9\u05DA \u05E0\u05E4\u05E8\u05D3 \u05E9\u05DE\u05E8\u05D9\u05E5 \u05D0\u05EA \u05D4\u05E2\u05D1\u05D5\u05D3\u05D5\u05EA \u05DE\u05D4\u05EA\u05D5\u05E8: \u05D1\u05E0\u05D9\u05D9\u05D4, \u05D4\u05E2\u05DC\u05D0\u05D4, \u05E0\u05D9\u05EA\u05D5\u05D1, \u05D1\u05D9\u05E7\u05D5\u05E8\u05D9\u05DD, \u05E2\u05DC\u05D5\u05D9\u05D5\u05EA \u05D5\u05DE\u05D9\u05D9\u05DC\u05D9\u05DD \u05DC\u05DE\u05E9\u05E4\u05DA (pnpm worker, \u05D0\u05D5 pnpm worker:public \u05DE\u05D0\u05D7\u05D5\u05E8\u05D9 \u05D4\u05BEtunnel).", summaryEn: "A separate process that runs the queued jobs: build, upload, routing, visits, costs and lifecycle emails (pnpm worker, or pnpm worker:public behind the tunnel).", code: ["apps/web/src/server/worker.ts", "apps/web/src/server/jobs.ts", "apps/web/src/server/site-data.ts", "apps/web/src/server/lifecycle", "apps/web/src/server/host-report.ts"], env: ["BUILD_SLOTS", "LIFECYCLE_NOW", "A11Y_RENDER", "DOCKER_HOST", "HOST_REPORT_PATH"], decisions: ["D-058", "D-148", "D-180", "D-340"] },
21133
21133
  { id: "build", kind: "app", zone: "platform", label: "Build service (Docker)", summary: "\u05E7\u05D5\u05E0\u05D8\u05D9\u05D9\u05E0\u05E8 \u05D7\u05D3\u05E9 \u05DC\u05DB\u05DC \u05E9\u05DC\u05D1, \u05D1\u05DC\u05D9 \u05E1\u05D5\u05D3\u05D5\u05EA. \u05D1\u05D5\u05E0\u05D4 \u05D0\u05EA \u05D4\u05E7\u05D5\u05D3 \u05E9\u05DC \u05D4\u05DC\u05E7\u05D5\u05D7 \u05DC\u05E7\u05D5\u05D1\u05E5 Worker.", summaryEn: "A fresh container for every step, with no secrets. Builds the customer's code into a Worker file.", code: ["apps/web/src/server/build.ts"], env: ["BUILD_MODE"] },
@@ -21138,16 +21138,16 @@ var ARCH_NODES = [
21138
21138
  { id: "oauth", kind: "external", zone: "services", label: "Google / GitHub OAuth", summary: "\u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA \u05E2\u05DD Google \u05D0\u05D5 GitHub \u05D3\u05E8\u05DA Better Auth.", summaryEn: "Log in with Google or GitHub through Better Auth.", code: ["apps/web/src/server/auth.ts"], env: ["GOOGLE_CLIENT_ID", "GOOGLE_CLIENT_SECRET", "GITHUB_CLIENT_ID", "GITHUB_CLIENT_SECRET"], decisions: ["D-020"] },
21139
21139
  { id: "payments", kind: "external", zone: "services", label: "Payment provider (Cardcom)", summary: "\u05E7\u05D0\u05E8\u05D3\u05E7\u05D5\u05DD \u05DB\u05D1\u05E8\u05D9\u05E8\u05EA \u05DE\u05D7\u05D3\u05DC, \u05D5\u05E0\u05D1\u05D7\u05E8 \u05D1\u05D4\u05D2\u05D3\u05E8\u05D5\u05EA \u05D4\u05D0\u05D3\u05DE\u05D9\u05DF (\u05D0\u05D5 \u05DE\u05D3\u05D5\u05DE\u05D4 \u05DC\u05D1\u05D3\u05D9\u05E7\u05D5\u05EA). \u05D4\u05DB\u05E8\u05D8\u05D9\u05E1 \u05DE\u05D5\u05E7\u05DC\u05D3 \u05D1\u05D3\u05E3 \u05D4\u05DE\u05D0\u05D5\u05D1\u05D8\u05D7 \u05E9\u05DC \u05E7\u05D0\u05E8\u05D3\u05E7\u05D5\u05DD \u05D5\u05E0\u05E9\u05DE\u05E8 \u05DB\u05D8\u05D5\u05E7\u05DF \u05DE\u05D5\u05E6\u05E4\u05DF, \u05DB\u05DC \u05D7\u05D9\u05D5\u05D1 \u05E2\u05DD \u05DE\u05E4\u05EA\u05D7 \u05D0\u05D9\u05D3\u05DE\u05E4\u05D5\u05D8\u05E0\u05D8\u05D9\u05D5\u05EA, \u05D5\u05E7\u05D0\u05E8\u05D3\u05E7\u05D5\u05DD \u05DE\u05E4\u05D9\u05E7\u05D4 \u05D7\u05E9\u05D1\u05D5\u05E0\u05D9\u05EA \u05DE\u05E1 \u05DC\u05DB\u05DC \u05D7\u05D9\u05D5\u05D1 \u05D5\u05D7\u05E9\u05D1\u05D5\u05E0\u05D9\u05EA \u05D6\u05D9\u05DB\u05D5\u05D9 \u05DC\u05DB\u05DC \u05D4\u05D7\u05D6\u05E8.", summaryEn: "Cardcom by default, chosen in admin settings (or simulated for tests). The card is typed on the secure Cardcom page and saved as a sealed token, every charge carries an idempotency key, and Cardcom issues a tax invoice per charge and a credit invoice per refund.", code: ["apps/web/src/server/billing/provider.ts", "apps/web/src/server/billing/cardcom.ts", "apps/web/src/server/billing/card-pages.ts", "apps/web/src/app/api/billing/card"], env: ["BILLING_PROVIDER", "BILLING_MOCK_FAIL", "CARDCOM_TERMINAL", "CARDCOM_API_NAME", "CARDCOM_API_PASSWORD", "CARDCOM_INVOICES", "CARDCOM_CSS_URL", "CARDCOM_TOKEN_KEY", "CARDCOM_DEPARTMENT_ID"], portability: "Payments", decisions: ["D-175", "D-292"] },
21140
21140
  { id: "registrar", kind: "external", zone: "services", label: "Domain registrars (Cloudflare, LiveDNS)", summary: "\u05E7\u05E0\u05D9\u05D9\u05EA \u05D3\u05D5\u05DE\u05D9\u05D9\u05E0\u05D9\u05DD \u05DC\u05D0\u05EA\u05E8: \u05DB\u05DC \u05E9\u05DD \u05D4\u05D5\u05DC\u05DA \u05DC\u05E8\u05E9\u05DD \u05D4\u05D6\u05D5\u05DC \u05D1\u05D9\u05D5\u05EA\u05E8 \u05E9\u05E4\u05D5\u05E2\u05DC (Cloudflare \u05D1\u05D3\u05D5\u05DC\u05E8\u05D9\u05DD, LiveDNS \u05DC\u05D9\u05E9\u05E8\u05D0\u05DC\u05D9\u05D9\u05DD \u05DE\u05E7\u05E8\u05D3\u05D9\u05D8 \u05D1\u05E9\u05E7\u05DC\u05D9\u05DD, \u05D0\u05D5 \u05D9\u05D3\u05E0\u05D9 \u05DE\u05EA\u05D5\u05E8 \u05D4\u05E6\u05D5\u05D5\u05EA), \u05E8\u05D9\u05E9\u05D5\u05DD \u05D0\u05D7\u05D3 \u05DC\u05DB\u05DC \u05D4\u05D6\u05DE\u05E0\u05D4, \u05D9\u05D5\u05DE\u05DF \u05E7\u05E8\u05D9\u05D0\u05D5\u05EA \u05DC\u05DB\u05DC \u05D4\u05D6\u05DE\u05E0\u05D4, \u05D5\u05D7\u05D9\u05D3\u05D5\u05E9 \u05E9\u05E0\u05EA\u05D9 \u05D0\u05E6\u05DC \u05D0\u05D5\u05EA\u05D5 \u05E8\u05E9\u05DD. \u05DC\u05D3\u05D5\u05DE\u05D9\u05D9\u05DF \u05E9\u05E0\u05E7\u05E0\u05D4: \u05D3\u05D5\u05D0\u05E8 \u05D3\u05E8\u05DA Cloudflare Email Routing.", summaryEn: "Buying domains for a site: each name goes to the cheapest registrar that is on (Cloudflare in dollars, LiveDNS for Israeli names from shekel credit, or by hand from the team queue), one registration per order, a call log per order, yearly renewal at the same registrar. For a bought domain: email through Cloudflare Email Routing.", code: ["apps/web/src/server/registrar.ts", "apps/web/src/server/registrar-livedns.ts", "apps/web/src/server/registrar-log.ts", "apps/web/src/server/domain-sales.ts", "apps/web/src/server/domain-email.ts", "apps/web/src/server/billing/services.ts"], env: ["CF_REGISTRAR_TOKEN", "LIVEDNS_USER", "LIVEDNS_PASSWORD"], decisions: ["D-299", "D-300", "D-301", "D-458"] },
21141
- { id: "mcp", kind: "external", zone: "services", label: "MCP for AI tools (/api/mcp)", summary: "ChatGPT \u05D5-Claude \u05DE\u05EA\u05D7\u05D1\u05E8\u05D9\u05DD \u05D1\u05DC\u05D9 \u05D8\u05E8\u05DE\u05D9\u05E0\u05DC: OAuth \u05E2\u05DD \u05D0\u05D9\u05E9\u05D5\u05E8 \u05D1\u05D3\u05E4\u05D3\u05E4\u05DF, \u05D5\u05D0\u05D6 \u05DB\u05DC\u05D9\u05DD \u05DC\u05E8\u05E9\u05D9\u05DE\u05EA \u05D4\u05D0\u05EA\u05E8\u05D9\u05DD, \u05D1\u05D3\u05D9\u05E7\u05D4, \u05D4\u05E2\u05DC\u05D0\u05EA \u05D2\u05E8\u05E1\u05D4 \u05DC\u05EA\u05E6\u05D5\u05D2\u05D4 \u05DE\u05E7\u05D3\u05D9\u05DE\u05D4, \u05D4\u05E8\u05E6\u05EA \u05EA\u05D5\u05E1\u05E4\u05D9\u05DD \u05E9\u05D4\u05D0\u05EA\u05E8 \u05E7\u05E0\u05D4 (\u05D4\u05E7\u05E0\u05D9\u05D9\u05D4 \u05E8\u05E7 \u05D1\u05D0\u05EA\u05E8), \u05D5\u05D4\u05E2\u05DC\u05D0\u05D4 \u05DC\u05D0\u05D5\u05D5\u05D9\u05E8 \u05E8\u05E7 \u05E2\u05DD \u05D4\u05E8\u05E9\u05D0\u05D4 \u05D5\u05D0\u05D9\u05E9\u05D5\u05E8.", summaryEn: "ChatGPT and Claude connect without a terminal: OAuth with a browser consent, then tools to list sites, check, upload a version to a preview, run add-ons the site owns (buying stays on the site), and go live only with the permission and a yes.", code: ["apps/web/src/app/api/mcp/route.ts", "apps/web/src/server/mcp-tools.ts", "apps/web/src/server/auth.ts"], decisions: ["D-302"] },
21141
+ { id: "mcp", kind: "external", zone: "services", label: "MCP for AI tools (/api/mcp)", summary: "ChatGPT \u05D5\u05BEClaude \u05DE\u05EA\u05D7\u05D1\u05E8\u05D9\u05DD \u05D1\u05DC\u05D9 \u05D8\u05E8\u05DE\u05D9\u05E0\u05DC: OAuth \u05E2\u05DD \u05D0\u05D9\u05E9\u05D5\u05E8 \u05D1\u05D3\u05E4\u05D3\u05E4\u05DF, \u05D5\u05D0\u05D6 \u05DB\u05DC\u05D9\u05DD \u05DC\u05E8\u05E9\u05D9\u05DE\u05EA \u05D4\u05D0\u05EA\u05E8\u05D9\u05DD, \u05D1\u05D3\u05D9\u05E7\u05D4, \u05D4\u05E2\u05DC\u05D0\u05EA \u05D2\u05E8\u05E1\u05D4 \u05DC\u05EA\u05E6\u05D5\u05D2\u05D4 \u05DE\u05E7\u05D3\u05D9\u05DE\u05D4, \u05D4\u05E8\u05E6\u05EA \u05EA\u05D5\u05E1\u05E4\u05D9\u05DD \u05E9\u05D4\u05D0\u05EA\u05E8 \u05E7\u05E0\u05D4 (\u05D4\u05E7\u05E0\u05D9\u05D9\u05D4 \u05E8\u05E7 \u05D1\u05D0\u05EA\u05E8), \u05D5\u05D4\u05E2\u05DC\u05D0\u05D4 \u05DC\u05D0\u05D5\u05D5\u05D9\u05E8 \u05E8\u05E7 \u05E2\u05DD \u05D4\u05E8\u05E9\u05D0\u05D4 \u05D5\u05D0\u05D9\u05E9\u05D5\u05E8.", summaryEn: "ChatGPT and Claude connect without a terminal: OAuth with a browser consent, then tools to list sites, check, upload a version to a preview, run add-ons the site owns (buying stays on the site), and go live only with the permission and a yes.", code: ["apps/web/src/app/api/mcp/route.ts", "apps/web/src/server/mcp-tools.ts", "apps/web/src/server/auth.ts"], decisions: ["D-302"] },
21142
21142
  { id: "npm", kind: "external", zone: "services", label: "npm registry", summary: "\u05DE\u05E4\u05D9\u05E5 \u05D0\u05EA \u05D4\u05BECLI, \u05D5\u05DE\u05DE\u05E0\u05D5 \u05D4\u05D1\u05E0\u05D9\u05D9\u05D4 \u05DE\u05EA\u05E7\u05D9\u05E0\u05D4 \u05EA\u05DC\u05D5\u05D9\u05D5\u05EA.", summaryEn: "Distributes the CLI, and the build installs dependencies from it." },
21143
- { id: "pagespeed", kind: "external", zone: "services", label: "Google PageSpeed Insights", summary: "\u05D1\u05D3\u05D9\u05E7\u05D5\u05EA \u05D4\u05DE\u05D4\u05D9\u05E8\u05D5\u05EA, \u05D4\u05E0\u05D2\u05D9\u05E9\u05D5\u05EA \u05D5\u05D4-SEO \u05D4\u05D7\u05D9\u05E0\u05DE\u05D9\u05D5\u05EA: Lighthouse \u05D1\u05DE\u05E2\u05D1\u05D3\u05D4 \u05E9\u05DC \u05D2\u05D5\u05D2\u05DC (\u05DB\u05D5\u05DC\u05DC \u05E1\u05D5\u05DB\u05E0\u05D9 AI) \u05D5\u05E0\u05EA\u05D5\u05E0\u05D9 \u05DE\u05D1\u05E7\u05E8\u05D9\u05DD \u05D0\u05DE\u05D9\u05EA\u05D9\u05D9\u05DD.", summaryEn: "The free speed, accessibility and SEO tests: Lighthouse run at Google (AI agents included) plus real visitor data.", env: ["PAGESPEED_API_KEY"], decisions: ["D-199", "D-222"] },
21143
+ { id: "pagespeed", kind: "external", zone: "services", label: "Google PageSpeed Insights", summary: "\u05D1\u05D3\u05D9\u05E7\u05D5\u05EA \u05D4\u05DE\u05D4\u05D9\u05E8\u05D5\u05EA, \u05D4\u05E0\u05D2\u05D9\u05E9\u05D5\u05EA \u05D5\u05D4\u05BESEO \u05D4\u05D7\u05D9\u05E0\u05DE\u05D9\u05D5\u05EA: Lighthouse \u05D1\u05DE\u05E2\u05D1\u05D3\u05D4 \u05E9\u05DC \u05D2\u05D5\u05D2\u05DC (\u05DB\u05D5\u05DC\u05DC \u05E1\u05D5\u05DB\u05E0\u05D9 AI) \u05D5\u05E0\u05EA\u05D5\u05E0\u05D9 \u05DE\u05D1\u05E7\u05E8\u05D9\u05DD \u05D0\u05DE\u05D9\u05EA\u05D9\u05D9\u05DD.", summaryEn: "The free speed, accessibility and SEO tests: Lighthouse run at Google (AI agents included) plus real visitor data.", env: ["PAGESPEED_API_KEY"], decisions: ["D-199", "D-222"] },
21144
21144
  { id: "turnstile", kind: "external", zone: "services", label: "CF Turnstile", summary: '\u05D1\u05D3\u05D9\u05E7\u05EA "\u05D4\u05D0\u05DD \u05D0\u05EA\u05DD \u05D1\u05E0\u05D9 \u05D0\u05D3\u05DD" \u05D1\u05D8\u05E4\u05E1\u05D9 \u05D4\u05DB\u05DC\u05D9\u05DD \u05D4\u05D7\u05D9\u05E0\u05DE\u05D9\u05D9\u05DD, \u05D1\u05DC\u05D9 \u05E4\u05D0\u05D6\u05DC\u05D9\u05DD \u05DC\u05E8\u05D5\u05D1 \u05D4\u05DE\u05D1\u05E7\u05E8\u05D9\u05DD.', summaryEn: 'The "are you human" check on the free tool forms, with no puzzle for most visitors.', env: ["TURNSTILE_SITE_KEY", "TURNSTILE_SECRET"], decisions: ["D-199"] },
21145
21145
  // Cloudflare
21146
- { id: "tunnel", kind: "cf-resource", zone: "cloudflare", label: "Cloudflare Tunnel", summary: "\u05D4\u05D9\u05D5\u05DD \u05D4\u05D0\u05E4\u05DC\u05D9\u05E7\u05E6\u05D9\u05D4 \u05E8\u05E6\u05D4 \u05E2\u05DC \u05D4\u05DE\u05D7\u05E9\u05D1 \u05D4\u05D6\u05D4 \u05D5\u05E0\u05D7\u05E9\u05E4\u05EA \u05D3\u05E8\u05DA dev.deployai.co.il (pnpm tunnel, \u05D0\u05D5 \u05D4\u05DB\u05DC \u05D9\u05D7\u05D3 \u05D1\u05BEpnpm dev:public).", summaryEn: "Today the app runs on this computer and is exposed through dev.deployai.co.il (pnpm tunnel, or everything at once with pnpm dev:public).", code: ["scripts/dev-public.ts"], env: ["TUNNEL_ORIGIN_CERT"], decisions: ["D-089", "D-148"] },
21146
+ { id: "tunnel", kind: "cf-resource", zone: "cloudflare", label: "Cloudflare Tunnel", summary: "\u05D4\u05D9\u05D5\u05DD \u05D4\u05D0\u05E4\u05DC\u05D9\u05E7\u05E6\u05D9\u05D4 \u05E8\u05E6\u05D4 \u05E2\u05DC \u05D4\u05DE\u05D7\u05E9\u05D1 \u05D4\u05D6\u05D4 \u05D5\u05E0\u05D7\u05E9\u05E4\u05EA \u05D3\u05E8\u05DA dev.deployai.co.il (pnpm tunnel, \u05D0\u05D5 \u05D4\u05DB\u05D5\u05DC \u05D9\u05D7\u05D3 \u05D1\u05BEpnpm dev:public).", summaryEn: "Today the app runs on this computer and is exposed through dev.deployai.co.il (pnpm tunnel, or everything at once with pnpm dev:public).", code: ["scripts/dev-public.ts"], env: ["TUNNEL_ORIGIN_CERT"], decisions: ["D-089", "D-148"] },
21147
21147
  { id: "cfapi", kind: "external", zone: "cloudflare", label: "Cloudflare API", summary: "\u05DB\u05DC \u05E4\u05E2\u05D5\u05DC\u05D4 \u05DE\u05D5\u05DC Cloudflare \u05E2\u05D5\u05D1\u05E8\u05EA \u05D1\u05BEREST API \u05E2\u05DD \u05D3\u05DC\u05D9 \u05D8\u05D5\u05E7\u05E0\u05D9\u05DD \u05DE\u05E9\u05D5\u05EA\u05E3. \u05D1\u05DC\u05D9 Wrangler.", summaryEn: "Every Cloudflare action goes through the REST API with a shared token bucket. No Wrangler.", code: ["apps/web/src/server/cloudflare.ts", "scripts/cf-setup.ts", "apps/web/src/server/admin-geo.ts"], env: ["CF_API_TOKEN", "ADMIN_GEO_MANAGE"], docs: ["docs/10-cloudflare-reference.md"], decisions: ["D-007", "D-031", "D-058", "D-455"] },
21148
21148
  { id: "demos", kind: "worker", zone: "cloudflare", label: "deployai-demos", summary: "\u05D4\u05D3\u05DE\u05D5\u05D0\u05D9\u05DD \u05D1\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05DB\u05DE\u05D5 shop.deploy-net.com, \u05E2\u05DC \u05DB\u05DC \u05D3\u05D5\u05DE\u05D9\u05D9\u05DF \u05D0\u05EA\u05E8\u05D9\u05DD: \u05DE\u05D5\u05E9\u05DA \u05D0\u05EA /demo/<key> \u05DE\u05D4\u05D0\u05EA\u05E8 \u05E9\u05DC\u05E0\u05D5 \u05D5\u05DE\u05E1\u05D9\u05E8 \u05D0\u05EA \u05D4\u05E7\u05D9\u05D3\u05D5\u05DE\u05EA, noindex.", summaryEn: "The demos on hosts like shop.deploy-net.com, on every sites domain: fetches /demo/<key> from our site and strips the prefix, noindex.", code: ["workers/demos/src", "scripts/deploy-demos.ts", "packages/shared/src/demos.ts"], env: ["CHROME_PATH", "SHOTS_BASE"], docs: ["workers/demos/README.md"], decisions: ["D-112", "D-293"] },
21149
21149
  { id: "tools-worker", kind: "worker", zone: "cloudflare", label: "deployai-tools", summary: "\u05DE\u05D5\u05E8\u05D9\u05D3 \u05D0\u05EA \u05D4\u05E2\u05DE\u05D5\u05D3\u05D9\u05DD \u05D5\u05D4\u05EA\u05DE\u05D5\u05E0\u05D5\u05EA \u05E9\u05D4\u05DB\u05DC\u05D9\u05DD \u05D4\u05D7\u05D9\u05E0\u05DE\u05D9\u05D9\u05DD \u05D1\u05D5\u05D3\u05E7\u05D9\u05DD, \u05DB\u05D3\u05D9 \u05E9\u05DB\u05EA\u05D5\u05D1\u05EA \u05E9\u05DE\u05D1\u05E7\u05E8 \u05D4\u05E7\u05DC\u05D9\u05D3 \u05DC\u05D0 \u05EA\u05D9\u05D8\u05E2\u05DF \u05DE\u05D4\u05E9\u05E8\u05EA \u05E9\u05DC\u05E0\u05D5. \u05E8\u05E7 \u05E9\u05DE\u05D5\u05EA \u05E6\u05D9\u05D1\u05D5\u05E8\u05D9\u05D9\u05DD, \u05DB\u05DC \u05EA\u05E9\u05D5\u05D1\u05EA DNS \u05D5\u05DB\u05DC \u05D4\u05E4\u05E0\u05D9\u05D4 \u05E0\u05D1\u05D3\u05E7\u05D5\u05EA.", summaryEn: "Downloads the pages and images the free tools test, so an address a visitor typed is never fetched from our server. Public names only; every DNS answer and redirect is checked.", code: ["workers/tools/src", "scripts/deploy-tools.ts", "packages/shared/src/safe-url.ts"], env: ["TOOLS_FETCH_SECRET"], decisions: ["D-199"] },
21150
- { id: "uptime-worker", kind: "worker", zone: "cloudflare", label: "deployai-uptime", summary: "\u05D1\u05D5\u05D3\u05E7 \u05DE\u05D1\u05D7\u05D5\u05E5 \u05DB\u05DC 2 \u05D3\u05E7\u05D5\u05EA \u05E9-/api/health \u05E2\u05D5\u05E0\u05D4, \u05DB\u05D9 \u05E9\u05E8\u05EA \u05E9\u05E0\u05E4\u05DC \u05DC\u05D0 \u05D9\u05DB\u05D5\u05DC \u05DC\u05D3\u05D5\u05D5\u05D7 \u05E2\u05DC \u05E2\u05E6\u05DE\u05D5. \u05E9\u05D5\u05DE\u05E8 \u05D0\u05EA \u05D4\u05EA\u05D5\u05E6\u05D0\u05D4 \u05D1-KV, \u05D5\u05E9\u05EA\u05D9 \u05E0\u05E4\u05D9\u05DC\u05D5\u05EA \u05D1\u05E8\u05E6\u05E3 \u05E9\u05D5\u05DC\u05D7\u05D5\u05EA \u05DE\u05D9\u05D9\u05DC \u05DC\u05E6\u05D5\u05D5\u05EA.", summaryEn: "Checks from outside every 2 minutes that /api/health answers, because a server that is down cannot report itself. Keeps the result in KV; two failures in a row email the team.", code: ["workers/uptime/src", "scripts/deploy-uptime.ts", "apps/web/src/app/api/health/route.ts"], env: ["UPTIME_ALERT_TO", "UPTIME_ALERT_TOKEN"], decisions: ["D-331"] },
21150
+ { id: "uptime-worker", kind: "worker", zone: "cloudflare", label: "deployai-uptime", summary: "\u05D1\u05D5\u05D3\u05E7 \u05DE\u05D1\u05D7\u05D5\u05E5 \u05DB\u05DC 2 \u05D3\u05E7\u05D5\u05EA \u05E9-/api/health \u05E2\u05D5\u05E0\u05D4, \u05DB\u05D9 \u05E9\u05E8\u05EA \u05E9\u05E0\u05E4\u05DC \u05DC\u05D0 \u05D9\u05DB\u05D5\u05DC \u05DC\u05D3\u05D5\u05D5\u05D7 \u05E2\u05DC \u05E2\u05E6\u05DE\u05D5. \u05E9\u05D5\u05DE\u05E8 \u05D0\u05EA \u05D4\u05EA\u05D5\u05E6\u05D0\u05D4 \u05D1\u05BEKV, \u05D5\u05E9\u05EA\u05D9 \u05E0\u05E4\u05D9\u05DC\u05D5\u05EA \u05D1\u05E8\u05E6\u05E3 \u05E9\u05D5\u05DC\u05D7\u05D5\u05EA \u05DE\u05D9\u05D9\u05DC \u05DC\u05E6\u05D5\u05D5\u05EA.", summaryEn: "Checks from outside every 2 minutes that /api/health answers, because a server that is down cannot report itself. Keeps the result in KV; two failures in a row email the team.", code: ["workers/uptime/src", "scripts/deploy-uptime.ts", "apps/web/src/app/api/health/route.ts"], env: ["UPTIME_ALERT_TO", "UPTIME_ALERT_TOKEN"], decisions: ["D-331"] },
21151
21151
  { id: "dispatch", kind: "worker", zone: "cloudflare", label: "deployai-dispatch", summary: 'Worker \u05D0\u05D7\u05D3 \u05E2\u05DC */* \u05E9\u05DE\u05E0\u05EA\u05D1 \u05DB\u05DC \u05DB\u05EA\u05D5\u05D1\u05EA \u05DC\u05D0\u05EA\u05E8, \u05E1\u05D5\u05E4\u05E8 \u05D1\u05D9\u05E7\u05D5\u05E8\u05D9\u05DD, \u05DE\u05D2\u05D1\u05D9\u05DC \u05E7\u05E6\u05D1 \u05D5\u05DE\u05D5\u05E1\u05D9\u05E3 \u05D0\u05EA \u05D4\u05EA\u05D2 "\u05D1\u05D0\u05D5\u05D5\u05D9\u05E8 \u05E2\u05DD DeployAI" \u05DC\u05D0\u05EA\u05E8\u05D9\u05DD \u05E9\u05D1\u05D7\u05D1\u05D9\u05DC\u05D4 \u05E9\u05DC\u05D4\u05DD \u05D9\u05E9 \u05EA\u05D2, \u05D0\u05E3 \u05E4\u05E2\u05DD \u05DC\u05D0 \u05DC\u05D0\u05EA\u05E8 \u05D6\u05DE\u05E0\u05D9.', summaryEn: 'One Worker on */* that routes every address to its site, counts visits, limits the rate and adds the "Live with DeployAI" badge to sites whose plan has the badge, never to a temporary site.', code: ["workers/dispatch/src", "scripts/deploy-dispatch.ts"], env: ["DISPATCH_RATE_LIMIT_PERIOD"], docs: ["workers/dispatch/README.md"], decisions: ["D-087", "D-113", "D-179", "D-238", "D-245"] },
21152
21152
  // Customer sites
21153
21153
  { id: "site", kind: "worker", zone: "customer", label: SITE, summary: "\u05D4\u05D0\u05EA\u05E8 \u05E9\u05DC \u05D4\u05DC\u05E7\u05D5\u05D7: Worker \u05DC\u05DB\u05DC \u05D0\u05EA\u05E8, \u05E2\u05DD \u05D4\u05E7\u05D1\u05E6\u05D9\u05DD \u05D5\u05D4\u05E7\u05D5\u05D3 \u05E9\u05DC\u05D5.", summaryEn: "The customer's site: a Worker per site, with its files and code.", portability: "Customer sites", decisions: ["D-113", "D-245"] },
@@ -21230,12 +21230,12 @@ var ARCH_FLOWS = [
21230
21230
  label: "\u05DB\u05D9\u05D1\u05D5\u05D9 \u05D0\u05EA\u05E8",
21231
21231
  labelEn: "Turn a site off",
21232
21232
  steps: [
21233
- { edge: "browser-tunnel", text: '\u05D4\u05D1\u05E2\u05DC\u05D9\u05DD \u05DC\u05D5\u05D7\u05E5 "\u05DB\u05D1\u05D4" \u05D1\u05D3\u05E9\u05D1\u05D5\u05E8\u05D3.', textEn: 'The owner clicks "Turn off" in the dashboard.' },
21233
+ { edge: "browser-tunnel", text: '\u05D4\u05D1\u05E2\u05DC\u05D9\u05DD \u05DC\u05D5\u05D7\u05E5 "\u05DB\u05D1\u05D4" \u05D1\u05DC\u05D5\u05D7 \u05D4\u05D1\u05E7\u05E8\u05D4.', textEn: 'The owner clicks "Turn off" in the dashboard.' },
21234
21234
  { edge: "tunnel-web", text: "\u05D4\u05D1\u05E7\u05E9\u05D4 \u05DE\u05D2\u05D9\u05E2\u05D4 \u05DC\u05D0\u05E4\u05DC\u05D9\u05E7\u05E6\u05D9\u05D4.", textEn: "The request reaches the app." },
21235
21235
  { edge: "web-queue", text: "\u05E2\u05D1\u05D5\u05D3\u05EA site-toggle \u05D1\u05E2\u05D3\u05D9\u05E4\u05D5\u05EA \u05D3\u05D7\u05D5\u05E4\u05D4.", textEn: "A site-toggle job with urgent priority." },
21236
21236
  { edge: "queue-worker", text: "\u05D4\u05BEworker \u05DE\u05E8\u05D9\u05E5 \u05D0\u05D5\u05EA\u05D4.", textEn: "The worker runs it." },
21237
21237
  { edge: "worker-cfapi", text: "\u05E4\u05E0\u05D9\u05D9\u05D4 \u05DC\u05BECloudflare API.", textEn: "A call to the Cloudflare API." },
21238
- { edge: "cfapi-kv", text: '\u05E8\u05E9\u05D5\u05DE\u05EA \u05D4\u05D0\u05EA\u05E8 site: \u05D1\u05BEKV \u05E0\u05DB\u05EA\u05D1\u05EA \u05DE\u05D7\u05D3\u05E9 \u05E2\u05DD \u05DB\u05D1\u05D5\u05D9, \u05D5\u05DE\u05D2\u05D9\u05E2\u05D4 \u05DC\u05DE\u05D1\u05E7\u05E8\u05D9\u05DD \u05EA\u05D5\u05DA \u05D3\u05E7\u05D4 (D-249). \u05D4\u05BEdispatch Worker \u05E2\u05D5\u05E0\u05D4 \u05D1\u05E2\u05DE\u05D5\u05D3 "\u05D4\u05D0\u05EA\u05E8 \u05DC\u05D0 \u05D6\u05DE\u05D9\u05DF" \u05D1\u05E9\u05E4\u05EA \u05D4\u05D3\u05E4\u05D3\u05E4\u05DF \u05E9\u05DC \u05D4\u05DE\u05D1\u05E7\u05E8 (D-413), \u05E2\u05DD \u05D4\u05DC\u05D5\u05D2\u05D5 \u05D5\u05E7\u05D9\u05E9\u05D5\u05E8 \u05DC DeployAI (D-178).', textEn: 'The site record site: in KV is written again with off, and reaches visitors within a minute (D-249). The dispatch Worker answers the "site unavailable" page in the browser language of the visitor (D-413), with the logo and a link to DeployAI (D-178).' }
21238
+ { edge: "cfapi-kv", text: '\u05E8\u05E9\u05D5\u05DE\u05EA \u05D4\u05D0\u05EA\u05E8 site: \u05D1\u05BEKV \u05E0\u05DB\u05EA\u05D1\u05EA \u05DE\u05D7\u05D3\u05E9 \u05E2\u05DD \u05DB\u05D1\u05D5\u05D9, \u05D5\u05DE\u05D2\u05D9\u05E2\u05D4 \u05DC\u05DE\u05D1\u05E7\u05E8\u05D9\u05DD \u05EA\u05D5\u05DA \u05D3\u05E7\u05D4 (D-249). \u05D4\u05BEdispatch Worker \u05E2\u05D5\u05E0\u05D4 \u05D1\u05E2\u05DE\u05D5\u05D3 "\u05D4\u05D0\u05EA\u05E8 \u05DC\u05D0 \u05D6\u05DE\u05D9\u05DF" \u05D1\u05E9\u05E4\u05EA \u05D4\u05D3\u05E4\u05D3\u05E4\u05DF \u05E9\u05DC \u05D4\u05DE\u05D1\u05E7\u05E8 (D-413), \u05E2\u05DD \u05D4\u05DC\u05D5\u05D2\u05D5 \u05D5\u05E7\u05D9\u05E9\u05D5\u05E8 \u05DC\u05BEDeployAI (D-178).', textEn: 'The site record site: in KV is written again with off, and reaches visitors within a minute (D-249). The dispatch Worker answers the "site unavailable" page in the browser language of the visitor (D-413), with the logo and a link to DeployAI (D-178).' }
21239
21239
  ]
21240
21240
  },
21241
21241
  {
@@ -21258,7 +21258,7 @@ var ARCH_FLOWS = [
21258
21258
  { edge: "queue-worker", text: "\u05E2\u05D1\u05D5\u05D3\u05D5\u05EA visits-collect \u05D5\u05BEusage-collect \u05E8\u05E6\u05D5\u05EA \u05E4\u05E2\u05DD \u05D1\u05D9\u05D5\u05DD.", textEn: "The visits-collect and usage-collect jobs run once a day." },
21259
21259
  { edge: "worker-visits", text: "\u05D1\u05D9\u05E7\u05D5\u05E8\u05D9\u05DD \u05DE\u05BEAnalytics Engine SQL.", textEn: "Visits from Analytics Engine SQL." },
21260
21260
  { edge: "worker-cfapi", text: "\u05E9\u05D9\u05DE\u05D5\u05E9 \u05D5\u05E2\u05DC\u05D5\u05EA \u05DC\u05DB\u05DC Worker \u05DE\u05BECloudflare.", textEn: "Usage and cost per Worker from Cloudflare." },
21261
- { edge: "worker-postgres", text: "\u05E0\u05E9\u05DE\u05E8 \u05D1\u05BEvisits_daily \u05D5\u05BEusage_daily \u05DC\u05D3\u05E9\u05D1\u05D5\u05E8\u05D3 \u05D5\u05DC\u05D0\u05D3\u05DE\u05D9\u05DF.", textEn: "Saved in visits_daily and usage_daily for the dashboard and the admin." },
21261
+ { edge: "worker-postgres", text: "\u05E0\u05E9\u05DE\u05E8 \u05D1\u05BEvisits_daily \u05D5\u05BEusage_daily \u05DC\u05DC\u05D5\u05D7 \u05D4\u05D1\u05E7\u05E8\u05D4 \u05D5\u05DC\u05D0\u05D3\u05DE\u05D9\u05DF.", textEn: "Saved in visits_daily and usage_daily for the dashboard and the admin." },
21262
21262
  { edge: "worker-cfapi", text: "\u05E2\u05D1\u05D5\u05D3\u05EA cf-billing \u05DE\u05D1\u05D9\u05D0\u05D4 \u05D0\u05EA \u05D4\u05D7\u05E9\u05D1\u05D5\u05DF \u05D4\u05D0\u05DE\u05D9\u05EA\u05D9 (\u05DE\u05E1\u05DC\u05D5\u05DC\u05D9\u05DD \u05D5\u05E9\u05D9\u05DE\u05D5\u05E9 \u05DC\u05E4\u05D9 \u05E9\u05D9\u05E8\u05D5\u05EA) \u05DE\u05BEBilling API, \u05DC\u05D9\u05D3 \u05D4\u05D4\u05E2\u05E8\u05DB\u05D4 \u05E9\u05DC\u05E0\u05D5 (D-281).", textEn: "The cf-billing job reads the real bill (plans and usage per service) from the Billing APIs, next to our estimate (D-281)." },
21263
21263
  { edge: "worker-cfapi", text: "\u05E2\u05D1\u05D5\u05D3\u05EA cf-caps \u05E1\u05D5\u05E4\u05E8\u05EA \u05D0\u05EA \u05D4\u05D7\u05E9\u05D1\u05D5\u05DF \u05DE\u05D5\u05DC \u05D4\u05DE\u05D2\u05D1\u05DC\u05D5\u05EA \u05E9\u05DC Cloudflare (\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05DE\u05D5\u05EA\u05D0\u05DE\u05D5\u05EA, D1, R2, \u05E1\u05E7\u05E8\u05D9\u05E4\u05D8\u05D9\u05DD) \u05D5\u05DE\u05D5\u05E6\u05D0\u05EA \u05E9\u05D0\u05E8\u05D9\u05D5\u05EA, \u05D1\u05DB\u05DE\u05D4 \u05E7\u05E8\u05D9\u05D0\u05D5\u05EA \u05E7\u05E8\u05D9\u05D0\u05D4 \u05D1\u05DC\u05D1\u05D3 (D-283).", textEn: "The cf-caps job counts the account against Cloudflare's limits (custom hostnames, D1, R2, scripts) and finds leftovers, in a few read only calls (D-283)." },
21264
21264
  { edge: "worker-postgres", text: "\u05DB\u05DC \u05E7\u05E8\u05D9\u05D0\u05D4 \u05DC\u05BECloudflare \u05E0\u05E1\u05E4\u05E8\u05EA \u05DC\u05E4\u05D9 \u05D3\u05E7\u05D4 \u05D1\u05BEcf_api_minutes, \u05DE\u05D5\u05DC 1,200 \u05E7\u05E8\u05D9\u05D0\u05D5\u05EA \u05D5\u05BE320 \u05E9\u05D0\u05D9\u05DC\u05EA\u05D5\u05EA GraphQL \u05D1\u05BE5 \u05D3\u05E7\u05D5\u05EA (D-283).", textEn: "Every Cloudflare call is counted per minute in cf_api_minutes, against 1,200 calls and 320 GraphQL queries per 5 minutes (D-283)." }
@@ -21824,6 +21824,8 @@ var M = {
21824
21824
  statusTitle: "DeployAI status",
21825
21825
  state: "State",
21826
21826
  liveVersion: "Live version",
21827
+ newestVersion: "Newest version",
21828
+ promoteReady: " After the owner approves the preview: npx deployai@latest promote v{n} (to put it live)",
21827
21829
  notPublished: "not published yet",
21828
21830
  none: "none",
21829
21831
  buildingNow: "building now",
@@ -21934,7 +21936,7 @@ var M = {
21934
21936
  startNewFolder: "\u05D1\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05D4\u05D6\u05D5 \u05DB\u05D1\u05E8 \u05D9\u05E9 \u05E7\u05D1\u05E6\u05D9\u05DD, \u05D0\u05D6 \u05D4\u05D0\u05EA\u05E8 \u05D4\u05D7\u05D3\u05E9 \u05D1\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05D7\u05D3\u05E9\u05D4: {dir}",
21935
21937
  startDownloaded: "\u05D4\u05D3\u05D5\u05D2\u05DE\u05D4 {key} \u05D4\u05D5\u05E8\u05D3\u05D4: {n} \u05E7\u05D1\u05E6\u05D9\u05DD.",
21936
21938
  startInstalled: "\u05D4\u05D7\u05D1\u05D9\u05DC\u05D5\u05EA \u05E9\u05DC\u05D4 \u05D4\u05D5\u05EA\u05E7\u05E0\u05D5 (npm install).",
21937
- startBrief: "\u05D4\u05E4\u05E8\u05D8\u05D9\u05DD \u05E9\u05DC \u05D1\u05E2\u05DC \u05D4\u05D0\u05EA\u05E8 \u05E0\u05DB\u05EA\u05D1\u05D5 \u05DC {file} (\u05DC\u05D0 \u05E0\u05DB\u05E0\u05E1\u05D9\u05DD \u05DC git \u05D5\u05DC\u05D0 \u05E2\u05D5\u05DC\u05D9\u05DD \u05DC\u05D0\u05EA\u05E8).",
21939
+ startBrief: "\u05D4\u05E4\u05E8\u05D8\u05D9\u05DD \u05E9\u05DC \u05D1\u05E2\u05DC \u05D4\u05D0\u05EA\u05E8 \u05E0\u05DB\u05EA\u05D1\u05D5 \u05DC {file} (\u05DC\u05D0 \u05E0\u05DB\u05E0\u05E1\u05D9\u05DD \u05DC\u05BEgit \u05D5\u05DC\u05D0 \u05E2\u05D5\u05DC\u05D9\u05DD \u05DC\u05D0\u05EA\u05E8).",
21938
21940
  startLinked: '\u05D4\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05D7\u05D5\u05D1\u05E8\u05D4 \u05DC\u05D0\u05EA\u05E8 "{name}".',
21939
21941
  startRelinked: '\u05D4\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05D7\u05D5\u05D1\u05E8\u05D4 \u05DC\u05D0\u05EA\u05E8 "{name}" \u05D1\u05DE\u05E7\u05D5\u05DD \u05D4\u05D0\u05EA\u05E8 \u05E9\u05D4\u05D9\u05D9\u05EA\u05D4 \u05DE\u05D7\u05D5\u05D1\u05E8\u05EA \u05D0\u05DC\u05D9\u05D5.',
21940
21942
  statusLine: "\u05DE\u05E6\u05D1: {s}",
@@ -21969,26 +21971,28 @@ var M = {
21969
21971
  queueWaiting: "\u05DE\u05DE\u05EA\u05D9\u05DF \u05D1\u05EA\u05D5\u05E8, \u05DE\u05E7\u05D5\u05DD {n}",
21970
21972
  files: "\u05E7\u05D1\u05E6\u05D9\u05DD",
21971
21973
  skipped: "\u05D3\u05D9\u05DC\u05D2\u05E0\u05D5",
21972
- skippedLarge: "{n} \u05E7\u05D1\u05E6\u05D9\u05DD \u05D2\u05D3\u05D5\u05DC\u05D9\u05DD \u05DE-{max}: {names}",
21974
+ skippedLarge: "{n} \u05E7\u05D1\u05E6\u05D9\u05DD \u05D2\u05D3\u05D5\u05DC\u05D9\u05DD \u05DE\u05BE{max}: {names}",
21973
21975
  ownerKeys: "\u05DE\u05E4\u05EA\u05D7\u05D5\u05EA \u05D1\u05E2\u05DC\u05D9\u05DD \u05DC\u05D0\u05EA\u05E8 \u05D4\u05D6\u05D4 (\u05DE\u05D5\u05E6\u05D2\u05D9\u05DD \u05E4\u05E2\u05DD \u05D0\u05D7\u05EA, \u05E9\u05DE\u05E8\u05D5 \u05D0\u05D5\u05EA\u05DD \u05E2\u05DB\u05E9\u05D9\u05D5):",
21974
21976
  guestLive: "\u05D4\u05D0\u05EA\u05E8 \u05E2\u05D5\u05DC\u05D4 \u05DC\u05D0\u05D5\u05D5\u05D9\u05E8 \u05DB\u05E9\u05D4\u05D1\u05E0\u05D9\u05D9\u05D4 \u05DE\u05E1\u05EA\u05D9\u05D9\u05DE\u05EA (\u05D1\u05E2\u05E8\u05DA \u05D3\u05E7\u05D4).",
21975
21977
  guestClaim: "\u05E4\u05EA\u05D7\u05D5 \u05D0\u05EA \u05E7\u05D9\u05E9\u05D5\u05E8 \u05D4\u05E9\u05DE\u05D9\u05E8\u05D4 \u05DB\u05D3\u05D9 \u05DC\u05E9\u05DE\u05D5\u05E8 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8 (\u05D4\u05E8\u05E9\u05DE\u05D4 \u05D0\u05D5 \u05DB\u05E0\u05D9\u05E1\u05D4).",
21976
21978
  claimLink: "\u05E7\u05D9\u05E9\u05D5\u05E8 \u05D4\u05E9\u05DE\u05D9\u05E8\u05D4 \u05E9\u05DC \u05D4\u05D0\u05EA\u05E8 \u05D4\u05D6\u05DE\u05E0\u05D9: {url}",
21977
21979
  pulled: "\u05D4\u05D5\u05E8\u05D3\u05E0\u05D5 \u05D0\u05EA \u05D4\u05E7\u05D5\u05D3 \u05E9\u05DC \u05D2\u05E8\u05E1\u05D4 v{v}: {n} \u05E7\u05D1\u05E6\u05D9\u05DD.",
21978
- pullNotLinked: "\u05D4\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05D4\u05D6\u05D5 \u05DC\u05D0 \u05DE\u05D7\u05D5\u05D1\u05E8\u05EA \u05DC\u05D0\u05EA\u05E8. \u05D4\u05E2\u05EA\u05D9\u05E7\u05D5 \u05E9\u05D5\u05D1 \u05D0\u05EA \u05D4\u05E9\u05D5\u05E8\u05D4 \u05DE\u05D3\u05E3 \u05D4\u05D0\u05EA\u05E8 \u05D1-DeployAI.",
21980
+ pullNotLinked: "\u05D4\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05D4\u05D6\u05D5 \u05DC\u05D0 \u05DE\u05D7\u05D5\u05D1\u05E8\u05EA \u05DC\u05D0\u05EA\u05E8. \u05D4\u05E2\u05EA\u05D9\u05E7\u05D5 \u05E9\u05D5\u05D1 \u05D0\u05EA \u05D4\u05E9\u05D5\u05E8\u05D4 \u05DE\u05D3\u05E3 \u05D4\u05D0\u05EA\u05E8 \u05D1\u05BEDeployAI.",
21979
21981
  pullNotEmpty: "\u05D1\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05D4\u05D6\u05D5 \u05DB\u05D1\u05E8 \u05D9\u05E9 \u05E7\u05D1\u05E6\u05D9\u05DD, \u05D0\u05D6 \u05DC\u05D0 \u05D4\u05D5\u05E8\u05D3\u05E0\u05D5 \u05DB\u05DC\u05D5\u05DD. \u05D4\u05E9\u05EA\u05DE\u05E9\u05D5 \u05D1\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05E8\u05D9\u05E7\u05D4.",
21980
21982
  pullNoSource: "\u05DC\u05D0\u05EA\u05E8 \u05D4\u05D6\u05D4 \u05E2\u05D5\u05D3 \u05D0\u05D9\u05DF \u05D2\u05E8\u05E1\u05D4 \u05DC\u05D4\u05D5\u05E8\u05D9\u05D3.",
21981
- pullTooLarge: "\u05D4\u05E7\u05D5\u05D3 \u05E9\u05DC \u05D4\u05D2\u05E8\u05E1\u05D4 \u05D4\u05D6\u05D5 \u05D2\u05D3\u05D5\u05DC \u05DE-50MB, \u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9 \u05DC\u05D4\u05D5\u05E8\u05D3\u05D4.",
21983
+ pullTooLarge: "\u05D4\u05E7\u05D5\u05D3 \u05E9\u05DC \u05D4\u05D2\u05E8\u05E1\u05D4 \u05D4\u05D6\u05D5 \u05D2\u05D3\u05D5\u05DC \u05DE\u05BE50MB, \u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9 \u05DC\u05D4\u05D5\u05E8\u05D3\u05D4.",
21982
21984
  pullDamaged: "\u05D4\u05D4\u05D5\u05E8\u05D3\u05D4 \u05E4\u05D2\u05D5\u05DE\u05D4. \u05E0\u05E1\u05D5 \u05E9\u05D5\u05D1.",
21983
21985
  guestEmailHint: "\u05DC\u05E7\u05D1\u05DC \u05D0\u05D5\u05EA\u05D5 \u05D1\u05DE\u05D9\u05D9\u05DC, \u05E2\u05DD \u05EA\u05D6\u05DB\u05D5\u05E8\u05EA \u05DC\u05E4\u05E0\u05D9 \u05D4\u05DE\u05D7\u05D9\u05E7\u05D4: npx deployai@latest claim --email <email>",
21984
- claimEmailed: "\u05E9\u05DC\u05D7\u05E0\u05D5 \u05D0\u05EA \u05E7\u05D9\u05E9\u05D5\u05E8 \u05D4\u05E9\u05DE\u05D9\u05E8\u05D4 \u05DC-{email}. \u05EA\u05D6\u05DB\u05D5\u05E8\u05EA \u05EA\u05D2\u05D9\u05E2 3 \u05D9\u05DE\u05D9\u05DD \u05DC\u05E4\u05E0\u05D9 \u05E9\u05D4\u05D0\u05EA\u05E8 \u05E0\u05DE\u05D7\u05E7.",
21986
+ claimEmailed: "\u05E9\u05DC\u05D7\u05E0\u05D5 \u05D0\u05EA \u05E7\u05D9\u05E9\u05D5\u05E8 \u05D4\u05E9\u05DE\u05D9\u05E8\u05D4 \u05DC\u05BE{email}. \u05EA\u05D6\u05DB\u05D5\u05E8\u05EA \u05EA\u05D2\u05D9\u05E2 3 \u05D9\u05DE\u05D9\u05DD \u05DC\u05E4\u05E0\u05D9 \u05E9\u05D4\u05D0\u05EA\u05E8 \u05E0\u05DE\u05D7\u05E7.",
21985
21987
  claimNoLink: "\u05DE\u05D4\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05D4\u05D6\u05D5 \u05DC\u05D0 \u05D4\u05D5\u05E2\u05DC\u05D4 \u05D0\u05EA\u05E8 \u05D6\u05DE\u05E0\u05D9 \u05DE\u05D4\u05DE\u05D7\u05E9\u05D1 \u05D4\u05D6\u05D4, \u05D0\u05D6 \u05D0\u05D9\u05DF \u05DB\u05D0\u05DF \u05E7\u05D9\u05E9\u05D5\u05E8 \u05E9\u05DE\u05D9\u05E8\u05D4.",
21986
- rollbackQueued: "\u05D4\u05D7\u05D6\u05E8\u05D4 \u05DC v{n} \u05D1\u05EA\u05D5\u05E8. \u05D0\u05D9\u05DF \u05E6\u05D5\u05E8\u05DA \u05D1\u05D1\u05E0\u05D9\u05D9\u05D4 \u05DE\u05D7\u05D3\u05E9.",
21988
+ rollbackQueued: "\u05D4\u05D7\u05D6\u05E8\u05D4 \u05DC\u05BEv{n} \u05D1\u05EA\u05D5\u05E8. \u05D0\u05D9\u05DF \u05E6\u05D5\u05E8\u05DA \u05D1\u05D1\u05E0\u05D9\u05D9\u05D4 \u05DE\u05D7\u05D3\u05E9.",
21987
21989
  promoteQueued: "\u05D4\u05E2\u05DC\u05D0\u05EA v{n} \u05DC\u05D0\u05D5\u05D5\u05D9\u05E8 \u05D1\u05EA\u05D5\u05E8.",
21988
21990
  runStatus: " \u05D4\u05E8\u05D9\u05E6\u05D5: npx deployai@latest status",
21989
21991
  statusTitle: "DeployAI status",
21990
21992
  state: "\u05DE\u05E6\u05D1",
21991
21993
  liveVersion: "\u05D2\u05E8\u05E1\u05D4 \u05D7\u05D9\u05D4",
21994
+ newestVersion: "\u05D2\u05E8\u05E1\u05D4 \u05D0\u05D7\u05E8\u05D5\u05E0\u05D4",
21995
+ promoteReady: " \u05D0\u05D7\u05E8\u05D9 \u05E9\u05D1\u05E2\u05DC \u05D4\u05D0\u05EA\u05E8 \u05D0\u05D9\u05E9\u05E8 \u05D0\u05EA \u05D4\u05EA\u05E6\u05D5\u05D2\u05D4 \u05D4\u05DE\u05E7\u05D3\u05D9\u05DE\u05D4: npx deployai@latest promote v{n} (\u05DB\u05D3\u05D9 \u05DC\u05D4\u05E2\u05DC\u05D5\u05EA \u05D0\u05D5\u05EA\u05D4 \u05DC\u05D0\u05D5\u05D5\u05D9\u05E8)",
21992
21996
  notPublished: "\u05E2\u05D3\u05D9\u05D9\u05DF \u05DC\u05D0 \u05D1\u05D0\u05D5\u05D5\u05D9\u05E8",
21993
21997
  none: "\u05D0\u05D9\u05DF",
21994
21998
  buildingNow: "\u05D1\u05D5\u05E0\u05D9\u05DD \u05E2\u05DB\u05E9\u05D9\u05D5",
@@ -22003,7 +22007,7 @@ var M = {
22003
22007
  envRemoved: "\u05D4\u05E1\u05E8\u05E0\u05D5 \u05D0\u05EA {key}. \u05D4\u05D5\u05D0 \u05D9\u05D9\u05E2\u05DC\u05DD \u05DE\u05D4\u05D0\u05EA\u05E8 \u05D4\u05D7\u05D9 \u05EA\u05D5\u05DA \u05DB\u05D3\u05E7\u05D4.",
22004
22008
  guestNoEnv: "\u05DC\u05D0\u05EA\u05E8 \u05D6\u05DE\u05E0\u05D9 \u05D0\u05D9\u05DF \u05DE\u05E9\u05EA\u05E0\u05D9 \u05E1\u05D1\u05D9\u05D1\u05D4. \u05E9\u05DE\u05E8\u05D5 \u05D0\u05D5\u05EA\u05D5 \u05DC\u05D7\u05E9\u05D1\u05D5\u05DF \u05E7\u05D5\u05D3\u05DD: npx deployai@latest claim",
22005
22009
  envInvalidKey: "\u05E9\u05DD \u05DE\u05E9\u05EA\u05E0\u05D4: \u05D0\u05D5\u05EA\u05D9\u05D5\u05EA \u05D1\u05D0\u05E0\u05D2\u05DC\u05D9\u05EA, \u05E1\u05E4\u05E8\u05D5\u05EA \u05D5-_, \u05DC\u05D0 \u05DE\u05EA\u05D7\u05D9\u05DC \u05D1\u05E1\u05E4\u05E8\u05D4, \u05E2\u05D3 64 \u05EA\u05D5\u05D5\u05D9\u05DD.",
22006
- envTooLong: "\u05D4\u05E2\u05E8\u05DA \u05D2\u05D3\u05D5\u05DC \u05DE-5KB, \u05D0\u05E8\u05D5\u05DA \u05DE\u05D3\u05D9 \u05DC\u05DE\u05E9\u05EA\u05E0\u05D4.",
22010
+ envTooLong: "\u05D4\u05E2\u05E8\u05DA \u05D2\u05D3\u05D5\u05DC \u05DE\u05BE5KB, \u05D0\u05E8\u05D5\u05DA \u05DE\u05D3\u05D9 \u05DC\u05DE\u05E9\u05EA\u05E0\u05D4.",
22007
22011
  envSendFailed: "\u05D4\u05E1\u05D5\u05D3 \u05DC\u05D0 \u05D4\u05D2\u05D9\u05E2 \u05DC\u05D0\u05EA\u05E8. \u05E0\u05E1\u05D5 \u05E9\u05D5\u05D1 \u05D1\u05E2\u05D5\u05D3 \u05D3\u05E7\u05D4.",
22008
22012
  envNoKey: "\u05DC\u05D0\u05EA\u05E8 \u05D0\u05D9\u05DF \u05DE\u05E9\u05EA\u05E0\u05D4 \u05D1\u05E9\u05DD \u05D4\u05D6\u05D4. \u05DC\u05E8\u05E9\u05D9\u05DE\u05D4: npx deployai@latest env list",
22009
22013
  buildFailed: "\u05D4\u05D1\u05E0\u05D9\u05D9\u05D4 \u05E9\u05DC v{n} \u05E0\u05DB\u05E9\u05DC\u05D4. \u05D4\u05D0\u05EA\u05E8 \u05D4\u05D7\u05D9 \u05DC\u05D0 \u05D4\u05E9\u05EA\u05E0\u05D4.",
@@ -22019,17 +22023,17 @@ var M = {
22019
22023
  help: "\u05E2\u05D6\u05E8\u05D4",
22020
22024
  notLoggedIn: "\u05DC\u05D0 \u05DE\u05D7\u05D5\u05D1\u05E8\u05D9\u05DD. \u05D4\u05E8\u05D9\u05E6\u05D5: npx deployai@latest login",
22021
22025
  sessionExpired: "\u05DC\u05D0 \u05DE\u05D7\u05D5\u05D1\u05E8\u05D9\u05DD, \u05D0\u05D5 \u05E9\u05D4\u05D7\u05D9\u05D1\u05D5\u05E8 \u05E4\u05D2. \u05D4\u05E8\u05D9\u05E6\u05D5: npx deployai@latest login",
22022
- siteDeleted: "\u05D4\u05D0\u05EA\u05E8 \u05E0\u05DE\u05D7\u05E7 \u05D1\u05D3\u05E9\u05D1\u05D5\u05E8\u05D3 \u05E9\u05DC DeployAI. \u05D1\u05E2\u05DC \u05D4\u05D0\u05EA\u05E8 \u05D9\u05DB\u05D5\u05DC \u05DC\u05E9\u05D7\u05D6\u05E8 \u05D0\u05D5\u05EA\u05D5 \u05DE\u05D4\u05D3\u05E9\u05D1\u05D5\u05E8\u05D3 (\u05D4\u05D0\u05EA\u05E8\u05D9\u05DD \u05E9\u05DC\u05D9, \u05D0\u05EA\u05E8\u05D9\u05DD \u05E9\u05E0\u05DE\u05D7\u05E7\u05D5) \u05EA\u05D5\u05DA 7 \u05D9\u05DE\u05D9\u05DD. \u05DB\u05D3\u05D9 \u05DC\u05D4\u05E2\u05DC\u05D5\u05EA \u05DC\u05D0\u05EA\u05E8 \u05D0\u05D7\u05E8, \u05D4\u05E8\u05D9\u05E6\u05D5: npx deployai@latest link",
22026
+ siteDeleted: "\u05D4\u05D0\u05EA\u05E8 \u05E0\u05DE\u05D7\u05E7 \u05D1\u05DC\u05D5\u05D7 \u05D4\u05D1\u05E7\u05E8\u05D4 \u05E9\u05DC DeployAI. \u05D1\u05E2\u05DC \u05D4\u05D0\u05EA\u05E8 \u05D9\u05DB\u05D5\u05DC \u05DC\u05E9\u05D7\u05D6\u05E8 \u05D0\u05D5\u05EA\u05D5 \u05DE\u05DC\u05D5\u05D7 \u05D4\u05D1\u05E7\u05E8\u05D4 (\u05D4\u05D0\u05EA\u05E8\u05D9\u05DD \u05E9\u05DC\u05D9, \u05D0\u05EA\u05E8\u05D9\u05DD \u05E9\u05E0\u05DE\u05D7\u05E7\u05D5) \u05EA\u05D5\u05DA 7 \u05D9\u05DE\u05D9\u05DD. \u05DB\u05D3\u05D9 \u05DC\u05D4\u05E2\u05DC\u05D5\u05EA \u05DC\u05D0\u05EA\u05E8 \u05D0\u05D7\u05E8, \u05D4\u05E8\u05D9\u05E6\u05D5: npx deployai@latest link",
22023
22027
  notEntitled: "\u05DC\u05D0\u05EA\u05E8 \u05D4\u05D6\u05D4 \u05D0\u05D9\u05DF \u05D0\u05EA \u05D4\u05EA\u05D5\u05E1\u05E3 \u05D4\u05D6\u05D4. \u05D1\u05E2\u05DC \u05D4\u05D0\u05EA\u05E8 \u05D9\u05DB\u05D5\u05DC \u05DC\u05E7\u05E0\u05D5\u05EA \u05D0\u05D5\u05EA\u05D5 \u05DC\u05D0\u05EA\u05E8 \u05DB\u05D0\u05DF: {url}",
22024
22028
  forbidden: "\u05D4\u05D7\u05E9\u05D1\u05D5\u05DF \u05D4\u05D6\u05D4 \u05DC\u05D0 \u05D9\u05DB\u05D5\u05DC \u05DC\u05E9\u05E0\u05D5\u05EA \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8 \u05D4\u05D6\u05D4. \u05D1\u05D3\u05E7\u05D5 \u05E9\u05E0\u05DB\u05E0\u05E1\u05EA\u05DD \u05E2\u05DD \u05D4\u05D7\u05E9\u05D1\u05D5\u05DF \u05E9\u05D4\u05D0\u05EA\u05E8 \u05E9\u05D9\u05D9\u05DA \u05DC\u05D5.",
22025
22029
  notFound: "DeployAI \u05DC\u05D0 \u05DE\u05E6\u05D0 \u05D0\u05EA \u05D6\u05D4, \u05D0\u05D5 \u05E9\u05D4\u05D7\u05E9\u05D1\u05D5\u05DF \u05D4\u05D6\u05D4 \u05DC\u05D0 \u05E8\u05D5\u05D0\u05D4 \u05D0\u05EA \u05D6\u05D4. \u05D1\u05D3\u05E7\u05D5 \u05D0\u05EA \u05D4\u05E9\u05DD \u05D0\u05D5 \u05D4\u05E7\u05D9\u05E9\u05D5\u05E8, \u05D5\u05E9\u05E0\u05DB\u05E0\u05E1\u05EA\u05DD \u05E2\u05DD \u05D4\u05D7\u05E9\u05D1\u05D5\u05DF \u05E9\u05D9\u05E6\u05E8 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8: npx deployai@latest whoami",
22026
- badArchive: "\u05D4\u05D4\u05E2\u05DC\u05D0\u05D4 \u05D4\u05D2\u05D9\u05E2\u05D4 \u05E4\u05D2\u05D5\u05DE\u05D4 \u05D0\u05D5 \u05E8\u05D9\u05E7\u05D4. \u05D4\u05E8\u05D9\u05E6\u05D5 \u05E9\u05D5\u05D1 \u05D0\u05EA \u05D0\u05D5\u05EA\u05D4 \u05E4\u05E7\u05D5\u05D3\u05D4. \u05D0\u05DD \u05D6\u05D4 \u05D7\u05D5\u05D6\u05E8, \u05E2\u05D3\u05DB\u05E0\u05D5 \u05D0\u05EA \u05D4-CLI: npx deployai@latest",
22027
- invalidRequest: "DeployAI \u05DC\u05D0 \u05E7\u05D9\u05D1\u05DC \u05D0\u05EA \u05D4\u05D1\u05E7\u05E9\u05D4. \u05D4\u05E8\u05D9\u05E6\u05D5 \u05D0\u05D5\u05EA\u05D4 \u05E9\u05D5\u05D1 \u05E2\u05DD \u05D4-CLI \u05D4\u05E2\u05D3\u05DB\u05E0\u05D9: npx deployai@latest",
22030
+ badArchive: "\u05D4\u05D4\u05E2\u05DC\u05D0\u05D4 \u05D4\u05D2\u05D9\u05E2\u05D4 \u05E4\u05D2\u05D5\u05DE\u05D4 \u05D0\u05D5 \u05E8\u05D9\u05E7\u05D4. \u05D4\u05E8\u05D9\u05E6\u05D5 \u05E9\u05D5\u05D1 \u05D0\u05EA \u05D0\u05D5\u05EA\u05D4 \u05E4\u05E7\u05D5\u05D3\u05D4. \u05D0\u05DD \u05D6\u05D4 \u05D7\u05D5\u05D6\u05E8, \u05E2\u05D3\u05DB\u05E0\u05D5 \u05D0\u05EA \u05D4\u05BECLI: npx deployai@latest",
22031
+ invalidRequest: "DeployAI \u05DC\u05D0 \u05E7\u05D9\u05D1\u05DC \u05D0\u05EA \u05D4\u05D1\u05E7\u05E9\u05D4. \u05D4\u05E8\u05D9\u05E6\u05D5 \u05D0\u05D5\u05EA\u05D4 \u05E9\u05D5\u05D1 \u05E2\u05DD \u05D4\u05BECLI \u05D4\u05E2\u05D3\u05DB\u05E0\u05D9: npx deployai@latest",
22028
22032
  invalidEmail: "\u05DB\u05EA\u05D5\u05D1\u05EA \u05D4\u05DE\u05D9\u05D9\u05DC \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4. \u05D1\u05D3\u05E7\u05D5 \u05D0\u05D5\u05EA\u05D4 \u05D5\u05D4\u05E8\u05D9\u05E6\u05D5 \u05E9\u05D5\u05D1.",
22029
22033
  emailSet: "\u05DB\u05D1\u05E8 \u05D4\u05D5\u05D2\u05D3\u05E8 \u05DE\u05D9\u05D9\u05DC \u05EA\u05D6\u05DB\u05D5\u05E8\u05EA \u05DC\u05D0\u05EA\u05E8 \u05D4\u05D6\u05D4.",
22030
22034
  addonsClosed: "\u05D4\u05EA\u05D5\u05E1\u05E4\u05D9\u05DD \u05E2\u05D5\u05D3 \u05DC\u05D0 \u05E4\u05EA\u05D5\u05D7\u05D9\u05DD, \u05D5\u05DC\u05DB\u05DF \u05D0\u05D9 \u05D0\u05E4\u05E9\u05E8 \u05DC\u05D4\u05E8\u05D9\u05E5 \u05D0\u05EA \u05D6\u05D4 \u05E2\u05DB\u05E9\u05D9\u05D5.",
22031
- timeout: "DeployAI \u05DC\u05D0 \u05E2\u05E0\u05D4 \u05D1\u05D6\u05DE\u05DF \u05D1-{url}. \u05D1\u05D3\u05E7\u05D5 \u05D0\u05EA \u05D4\u05D7\u05D9\u05D1\u05D5\u05E8 \u05D5\u05D4\u05E8\u05D9\u05E6\u05D5 \u05E9\u05D5\u05D1 \u05D0\u05EA \u05D0\u05D5\u05EA\u05D4 \u05E4\u05E7\u05D5\u05D3\u05D4.",
22032
- unreachable: "\u05D0\u05D9\u05DF \u05D7\u05D9\u05D1\u05D5\u05E8 \u05DC-DeployAI \u05D1-{url}. \u05D1\u05D3\u05E7\u05D5 \u05D0\u05EA \u05D4\u05D7\u05D9\u05D1\u05D5\u05E8 \u05D5\u05D4\u05E8\u05D9\u05E6\u05D5 \u05E9\u05D5\u05D1 \u05D0\u05EA \u05D0\u05D5\u05EA\u05D4 \u05E4\u05E7\u05D5\u05D3\u05D4.",
22035
+ timeout: "DeployAI \u05DC\u05D0 \u05E2\u05E0\u05D4 \u05D1\u05D6\u05DE\u05DF \u05D1\u05BE{url}. \u05D1\u05D3\u05E7\u05D5 \u05D0\u05EA \u05D4\u05D7\u05D9\u05D1\u05D5\u05E8 \u05D5\u05D4\u05E8\u05D9\u05E6\u05D5 \u05E9\u05D5\u05D1 \u05D0\u05EA \u05D0\u05D5\u05EA\u05D4 \u05E4\u05E7\u05D5\u05D3\u05D4.",
22036
+ unreachable: "\u05D0\u05D9\u05DF \u05D7\u05D9\u05D1\u05D5\u05E8 \u05DC\u05BEDeployAI \u05D1\u05BE{url}. \u05D1\u05D3\u05E7\u05D5 \u05D0\u05EA \u05D4\u05D7\u05D9\u05D1\u05D5\u05E8 \u05D5\u05D4\u05E8\u05D9\u05E6\u05D5 \u05E9\u05D5\u05D1 \u05D0\u05EA \u05D0\u05D5\u05EA\u05D4 \u05E4\u05E7\u05D5\u05D3\u05D4.",
22033
22037
  noProjectNamed: "\u05D0\u05D9\u05DF \u05D0\u05EA\u05E8 \u05D1\u05E9\u05DD {name}. \u05D4\u05E8\u05D9\u05E6\u05D5: npx deployai@latest link",
22034
22038
  noNameGiven: "\u05DC\u05D0 \u05E0\u05D1\u05D7\u05E8 \u05E9\u05DD.",
22035
22039
  noProjectPicked: "\u05DC\u05D0 \u05E0\u05D1\u05D7\u05E8 \u05D0\u05EA\u05E8.",
@@ -22038,7 +22042,7 @@ var M = {
22038
22042
  sampleDownloadFailed: "\u05DC\u05D0 \u05D4\u05E6\u05DC\u05D7\u05E0\u05D5 \u05DC\u05D4\u05D5\u05E8\u05D9\u05D3 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8 \u05DC\u05D3\u05D5\u05D2\u05DE\u05D4 {key} (HTTP {status}). \u05D4\u05E8\u05D9\u05E6\u05D5 \u05E9\u05D5\u05D1 \u05D0\u05EA \u05D0\u05D5\u05EA\u05D4 \u05E4\u05E7\u05D5\u05D3\u05D4.",
22039
22043
  sampleTooLarge: "\u05D4\u05D4\u05D5\u05E8\u05D3\u05D4 \u05E9\u05DC \u05D4\u05D0\u05EA\u05E8 \u05DC\u05D3\u05D5\u05D2\u05DE\u05D4 \u05D2\u05D3\u05D5\u05DC\u05D4 \u05DE\u05D3\u05D9.",
22040
22044
  noSampleNamed: "\u05D0\u05D9\u05DF \u05D0\u05EA\u05E8 \u05DC\u05D3\u05D5\u05D2\u05DE\u05D4 \u05D1\u05E9\u05DD {key}. \u05D4\u05E8\u05D9\u05E6\u05D5: npx deployai@latest samples",
22041
- unknownSample: "\u05D4-CLI \u05D4\u05D6\u05D4 \u05DC\u05D0 \u05DE\u05DB\u05D9\u05E8 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8 \u05DC\u05D3\u05D5\u05D2\u05DE\u05D4 {key}. \u05D4\u05E8\u05D9\u05E6\u05D5 \u05D0\u05D5\u05EA\u05D5 \u05E2\u05DD npx deployai@latest.",
22045
+ unknownSample: "\u05D4\u05BECLI \u05D4\u05D6\u05D4 \u05DC\u05D0 \u05DE\u05DB\u05D9\u05E8 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8 \u05DC\u05D3\u05D5\u05D2\u05DE\u05D4 {key}. \u05D4\u05E8\u05D9\u05E6\u05D5 \u05D0\u05D5\u05EA\u05D5 \u05E2\u05DD npx deployai@latest.",
22042
22046
  loginNoToken: "\u05D4\u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA \u05D0\u05D5\u05E9\u05E8\u05D4 \u05D0\u05D1\u05DC \u05DC\u05D0 \u05D7\u05D6\u05E8 \u05DE\u05E4\u05EA\u05D7. \u05D4\u05E8\u05D9\u05E6\u05D5: npx deployai@latest login",
22043
22047
  rateLimited: "\u05D9\u05D5\u05EA\u05E8 \u05DE\u05D3\u05D9 \u05E0\u05D9\u05E1\u05D9\u05D5\u05E0\u05D5\u05EA \u05D1\u05D6\u05DE\u05DF \u05E7\u05E6\u05E8. \u05D7\u05DB\u05D5 \u05D3\u05E7\u05D4 \u05D5\u05E0\u05E1\u05D5 \u05E9\u05D5\u05D1.",
22044
22048
  apiError: "DeployAI \u05DC\u05D0 \u05D4\u05E6\u05DC\u05D9\u05D7 \u05DC\u05E2\u05E9\u05D5\u05EA \u05D0\u05EA \u05D6\u05D4 \u05E2\u05DB\u05E9\u05D9\u05D5 ({code}). \u05E0\u05E1\u05D5 \u05E9\u05D5\u05D1 \u05D1\u05E2\u05D5\u05D3 \u05D3\u05E7\u05D4.",
@@ -22060,7 +22064,7 @@ var M = {
22060
22064
  uploadTooLargeGuest: "\u05D4\u05D4\u05E2\u05DC\u05D0\u05D4 \u05D2\u05D3\u05D5\u05DC\u05D4 \u05DE\u05D3\u05D9 \u05DC\u05D0\u05EA\u05E8 \u05D1\u05DC\u05D9 \u05D7\u05E9\u05D1\u05D5\u05DF: {size} \u05D0\u05D7\u05E8\u05D9 \u05DB\u05D9\u05D5\u05D5\u05E5, \u05D4\u05DE\u05E7\u05E1\u05D9\u05DE\u05D5\u05DD {max}. \u05D4\u05EA\u05D7\u05D1\u05E8\u05D5 \u05DB\u05D3\u05D9 \u05DC\u05D4\u05E2\u05DC\u05D5\u05EA \u05D9\u05D5\u05EA\u05E8: npx deployai@latest login",
22061
22065
  notLinked: "\u05D4\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05D4\u05D6\u05D5 \u05DC\u05D0 \u05DE\u05D7\u05D5\u05D1\u05E8\u05EA \u05DC\u05D0\u05EA\u05E8. \u05D4\u05E8\u05D9\u05E6\u05D5: npx deployai@latest link",
22062
22066
  askGuest: "\u05DC\u05D4\u05E2\u05DC\u05D5\u05EA \u05D1\u05DC\u05D9 \u05D7\u05E9\u05D1\u05D5\u05DF? \u05EA\u05E7\u05D1\u05DC\u05D5 \u05D0\u05EA\u05E8 \u05D6\u05DE\u05E0\u05D9 \u05E9\u05D0\u05E4\u05E9\u05E8 \u05DC\u05E9\u05DE\u05D5\u05E8 \u05D0\u05D7\u05E8 \u05DB\u05DA. (y/N) ",
22063
- inviteOnly: "\u05D4\u05E2\u05DC\u05D0\u05D4 \u05D1\u05DC\u05D9 \u05D7\u05E9\u05D1\u05D5\u05DF \u05DE\u05D5\u05E9\u05D4\u05D9\u05EA \u05DB\u05DC \u05E2\u05D5\u05D3 \u05D4\u05D4\u05E8\u05E9\u05DE\u05D4 \u05DC DeployAI \u05D1\u05D4\u05D6\u05DE\u05E0\u05D4 \u05D1\u05DC\u05D1\u05D3. \u05D0\u05DD \u05D9\u05E9 \u05DC\u05DB\u05DD \u05D7\u05E9\u05D1\u05D5\u05DF \u05D0\u05D5 \u05D4\u05D6\u05DE\u05E0\u05D4, \u05D4\u05E8\u05D9\u05E6\u05D5: npx deployai@latest login",
22067
+ inviteOnly: "\u05D4\u05E2\u05DC\u05D0\u05D4 \u05D1\u05DC\u05D9 \u05D7\u05E9\u05D1\u05D5\u05DF \u05DE\u05D5\u05E9\u05D4\u05D9\u05EA \u05DB\u05DC \u05E2\u05D5\u05D3 \u05D4\u05D4\u05E8\u05E9\u05DE\u05D4 \u05DC\u05BEDeployAI \u05D1\u05D4\u05D6\u05DE\u05E0\u05D4 \u05D1\u05DC\u05D1\u05D3. \u05D0\u05DD \u05D9\u05E9 \u05DC\u05DB\u05DD \u05D7\u05E9\u05D1\u05D5\u05DF \u05D0\u05D5 \u05D4\u05D6\u05DE\u05E0\u05D4, \u05D4\u05E8\u05D9\u05E6\u05D5: npx deployai@latest login",
22064
22068
  guestOneSite: "\u05D0\u05EA\u05E8 \u05D6\u05DE\u05E0\u05D9 \u05DC\u05D0 \u05D9\u05DB\u05D5\u05DC \u05DC\u05D9\u05E6\u05D5\u05E8 \u05D0\u05EA\u05E8\u05D9\u05DD \u05E0\u05D5\u05E1\u05E4\u05D9\u05DD. \u05E7\u05D5\u05D3\u05DD \u05E9\u05DE\u05E8\u05D5 \u05D0\u05D5\u05EA\u05D5 \u05D1\u05D7\u05E9\u05D1\u05D5\u05DF \u05D7\u05D9\u05E0\u05DD: npx deployai@latest claim",
22065
22069
  siteLimit: "\u05D4\u05DE\u05E1\u05DC\u05D5\u05DC \u05E9\u05DC\u05DB\u05DD \u05DE\u05D0\u05E4\u05E9\u05E8 {max} \u05D0\u05EA\u05E8\u05D9\u05DD, \u05D5\u05DB\u05D5\u05DC\u05DD \u05D1\u05E9\u05D9\u05DE\u05D5\u05E9. \u05E2\u05D3\u05DB\u05E0\u05D5 \u05D0\u05D7\u05D3 \u05DE\u05D4\u05DD \u05D1\u05DE\u05E7\u05D5\u05DD (npx deployai@latest link), \u05D0\u05D5 \u05E9\u05D3\u05E8\u05D2\u05D5 \u05D0\u05EA \u05D4\u05DE\u05E1\u05DC\u05D5\u05DC: {url}",
22066
22070
  siteLimitNoMax: "\u05D1\u05DE\u05E1\u05DC\u05D5\u05DC \u05E9\u05DC\u05DB\u05DD \u05D0\u05D9\u05DF \u05DE\u05E7\u05D5\u05DD \u05DC\u05D0\u05EA\u05E8 \u05E0\u05D5\u05E1\u05E3. \u05E2\u05D3\u05DB\u05E0\u05D5 \u05D0\u05D7\u05D3 \u05DE\u05D4\u05D0\u05EA\u05E8\u05D9\u05DD \u05E9\u05DC\u05DB\u05DD \u05D1\u05DE\u05E7\u05D5\u05DD (npx deployai@latest link), \u05D0\u05D5 \u05E9\u05D3\u05E8\u05D2\u05D5 \u05D0\u05EA \u05D4\u05DE\u05E1\u05DC\u05D5\u05DC: {url}",
@@ -22071,9 +22075,9 @@ var M = {
22071
22075
  startUsedUp: "\u05DB\u05D1\u05E8 \u05D4\u05E9\u05EA\u05DE\u05E9\u05D5 \u05D1\u05D4\u05D5\u05E8\u05D0\u05D5\u05EA \u05D4\u05D0\u05DC\u05D4 5 \u05E4\u05E2\u05DE\u05D9\u05DD. \u05D4\u05E2\u05EA\u05D9\u05E7\u05D5 \u05D0\u05D5\u05EA\u05DF \u05E9\u05D5\u05D1 \u05DE\u05D4\u05D0\u05EA\u05E8 \u05E9\u05DC DeployAI.",
22072
22076
  loginExpired: "\u05E7\u05D5\u05D3 \u05D4\u05DB\u05E0\u05D9\u05E1\u05D4 \u05E4\u05D2. \u05D4\u05E8\u05D9\u05E6\u05D5: npx deployai@latest login",
22073
22077
  loggedOut: "\u05D4\u05EA\u05E0\u05EA\u05E7\u05EA\u05DD. \u05D4\u05D8\u05D5\u05E7\u05DF \u05D1\u05D5\u05D8\u05DC \u05D5\u05E0\u05DE\u05D7\u05E7 \u05DE\u05D4\u05DE\u05D7\u05E9\u05D1 \u05D4\u05D6\u05D4.",
22074
- protocol: "\u05EA\u05E9\u05D5\u05D1\u05D4 \u05DC\u05D0 \u05E6\u05E4\u05D5\u05D9\u05D4 \u05DE DeployAI. \u05D4\u05E8\u05D9\u05E6\u05D5 \u05D0\u05EA \u05D4\u05D2\u05E8\u05E1\u05D4 \u05D4\u05D0\u05D7\u05E8\u05D5\u05E0\u05D4: npx deployai@latest",
22078
+ protocol: "\u05EA\u05E9\u05D5\u05D1\u05D4 \u05DC\u05D0 \u05E6\u05E4\u05D5\u05D9\u05D4 \u05DE\u05BEDeployAI. \u05D4\u05E8\u05D9\u05E6\u05D5 \u05D0\u05EA \u05D4\u05D2\u05E8\u05E1\u05D4 \u05D4\u05D0\u05D7\u05E8\u05D5\u05E0\u05D4: npx deployai@latest",
22075
22079
  guestClaimFirst: "\u05D1\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05D4\u05D6\u05D5 \u05D9\u05E9 \u05D0\u05EA\u05E8 \u05D6\u05DE\u05E0\u05D9, \u05D5\u05D0\u05EA\u05DD \u05DE\u05D7\u05D5\u05D1\u05E8\u05D9\u05DD \u05DC\u05D7\u05E9\u05D1\u05D5\u05DF. \u05E7\u05D5\u05D3\u05DD \u05E9\u05DE\u05E8\u05D5 \u05D0\u05EA \u05D4\u05D0\u05EA\u05E8 \u05D1\u05D7\u05E9\u05D1\u05D5\u05DF: {url}",
22076
- guestClaimFirstNoLink: "\u05D1\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05D4\u05D6\u05D5 \u05D9\u05E9 \u05D0\u05EA\u05E8 \u05D6\u05DE\u05E0\u05D9, \u05D5\u05D0\u05EA\u05DD \u05DE\u05D7\u05D5\u05D1\u05E8\u05D9\u05DD \u05DC\u05D7\u05E9\u05D1\u05D5\u05DF. \u05E7\u05D5\u05D3\u05DD \u05E9\u05DE\u05E8\u05D5 \u05D0\u05D5\u05EA\u05D5 \u05D1\u05D7\u05E9\u05D1\u05D5\u05DF \u05E2\u05DD \u05E7\u05D9\u05E9\u05D5\u05E8 \u05D4\u05E9\u05DE\u05D9\u05E8\u05D4 \u05E9 deploy --guest \u05D4\u05D3\u05E4\u05D9\u05E1.",
22080
+ guestClaimFirstNoLink: "\u05D1\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05D4\u05D6\u05D5 \u05D9\u05E9 \u05D0\u05EA\u05E8 \u05D6\u05DE\u05E0\u05D9, \u05D5\u05D0\u05EA\u05DD \u05DE\u05D7\u05D5\u05D1\u05E8\u05D9\u05DD \u05DC\u05D7\u05E9\u05D1\u05D5\u05DF. \u05E7\u05D5\u05D3\u05DD \u05E9\u05DE\u05E8\u05D5 \u05D0\u05D5\u05EA\u05D5 \u05D1\u05D7\u05E9\u05D1\u05D5\u05DF \u05E2\u05DD \u05E7\u05D9\u05E9\u05D5\u05E8 \u05D4\u05E9\u05DE\u05D9\u05E8\u05D4 \u05E9\u05BEdeploy --guest \u05D4\u05D3\u05E4\u05D9\u05E1.",
22077
22081
  guestAccountSite: "\u05D4\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05D4\u05D6\u05D5 \u05E9\u05D9\u05D9\u05DB\u05EA \u05DC\u05D0\u05EA\u05E8 \u05D1\u05D7\u05E9\u05D1\u05D5\u05DF, \u05D5\u05DC\u05DB\u05DF \u05D4\u05D9\u05D0 \u05DC\u05D0 \u05D9\u05DB\u05D5\u05DC\u05D4 \u05DC\u05E2\u05DC\u05D5\u05EA \u05DB\u05D0\u05EA\u05E8 \u05D6\u05DE\u05E0\u05D9. \u05D4\u05E8\u05D9\u05E6\u05D5: npx deployai@latest login, \u05D5\u05D0\u05D6: npx deployai@latest deploy",
22078
22082
  sqlWaitingLine: "\u05E9\u05D9\u05E0\u05D5\u05D9\u05D9\u05DD \u05D1\u05DE\u05E1\u05D3 \u05D4\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD (SQL) \u05DE\u05D7\u05DB\u05D9\u05DD \u05DC\u05D0\u05D9\u05E9\u05D5\u05E8 \u05E9\u05DC\u05DB\u05DD \u05DC\u05E4\u05E0\u05D9 \u05E9\u05D4\u05D2\u05E8\u05E1\u05D4 \u05D4\u05D6\u05D5 \u05E2\u05D5\u05DC\u05D4 \u05DC\u05D0\u05D5\u05D5\u05D9\u05E8: {url}",
22079
22083
  sqlWaiting: "\u05D1\u05D2\u05E8\u05E1\u05D4 \u05D4\u05D6\u05D5 \u05D9\u05E9 \u05E9\u05D9\u05E0\u05D5\u05D9\u05D9\u05DD \u05D1\u05DE\u05E1\u05D3 \u05D4\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD (SQL) \u05E9\u05E2\u05D5\u05D3 \u05DC\u05D0 \u05E8\u05E6\u05D5. \u05D0\u05E9\u05E8\u05D5 \u05D0\u05D5\u05EA\u05DD \u05E7\u05D5\u05D3\u05DD \u05D1\u05DC\u05D5\u05D7 \u05D4\u05D1\u05E7\u05E8\u05D4, \u05D5\u05D0\u05D6 \u05D4\u05E2\u05DC\u05D5 \u05DC\u05D0\u05D5\u05D5\u05D9\u05E8 \u05E9\u05D5\u05D1: {url}",
@@ -22081,7 +22085,7 @@ var M = {
22081
22085
  linkConfirm: "\u05DC\u05D7\u05D1\u05E8 \u05D0\u05EA \u05D4\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05D4\u05D6\u05D5 \u05DC {name} ({address})? (y/N) ",
22082
22086
  linkOnlyOne: "\u05D9\u05E9 \u05DC\u05DB\u05DD \u05D0\u05EA\u05E8 \u05D0\u05D7\u05D3: {name} ({address}). \u05DB\u05D3\u05D9 \u05DC\u05D7\u05D1\u05E8 \u05D0\u05D5\u05EA\u05D5, \u05D0\u05D5 \u05D0\u05EA\u05E8 \u05D7\u05D3\u05E9, \u05D4\u05E8\u05D9\u05E6\u05D5:",
22083
22087
  linkCancelled: "\u05DC\u05D0 \u05D7\u05D5\u05D1\u05E8. \u05E9\u05D5\u05DD \u05D3\u05D1\u05E8 \u05DC\u05D0 \u05D4\u05E9\u05EA\u05E0\u05D4.",
22084
- loggedOutLocalOnly: "\u05D4\u05EA\u05E0\u05EA\u05E7\u05EA\u05DD \u05D1\u05DE\u05D7\u05E9\u05D1 \u05D4\u05D6\u05D4. \u05DC\u05D0 \u05D4\u05E6\u05DC\u05D7\u05E0\u05D5 \u05DC\u05D4\u05D2\u05D9\u05E2 \u05DC DeployAI, \u05D0\u05D6 \u05D4\u05D8\u05D5\u05E7\u05DF \u05EA\u05E7\u05E3 \u05E2\u05D3 \u05E9\u05D9\u05E4\u05D5\u05D2 (30 \u05D9\u05D5\u05DD).",
22088
+ loggedOutLocalOnly: "\u05D4\u05EA\u05E0\u05EA\u05E7\u05EA\u05DD \u05D1\u05DE\u05D7\u05E9\u05D1 \u05D4\u05D6\u05D4. \u05DC\u05D0 \u05D4\u05E6\u05DC\u05D7\u05E0\u05D5 \u05DC\u05D4\u05D2\u05D9\u05E2 \u05DC\u05BEDeployAI, \u05D0\u05D6 \u05D4\u05D8\u05D5\u05E7\u05DF \u05EA\u05E7\u05E3 \u05E2\u05D3 \u05E9\u05D9\u05E4\u05D5\u05D2 (30 \u05D9\u05D5\u05DD).",
22085
22089
  savedIn: "\u05E0\u05E9\u05DE\u05E8 \u05D1 .deployai/project.json",
22086
22090
  createdProject: "\u05E0\u05D5\u05E6\u05E8 \u05D4\u05D0\u05EA\u05E8 {name}.",
22087
22091
  noProjects: "\u05D0\u05D9\u05DF \u05E2\u05D3\u05D9\u05D9\u05DF \u05D0\u05EA\u05E8\u05D9\u05DD.",
@@ -22091,7 +22095,7 @@ var M = {
22091
22095
  runLinkPick: ' \u05D4\u05E8\u05D9\u05E6\u05D5: npx deployai@latest link <slug>, \u05D0\u05D5: npx deployai@latest link --create "<name>"',
22092
22096
  runLink: " \u05D4\u05E8\u05D9\u05E6\u05D5: npx deployai@latest link",
22093
22097
  nextSteps: "\u05D4\u05E9\u05DC\u05D1\u05D9\u05DD \u05D4\u05D1\u05D0\u05D9\u05DD",
22094
- readme: "\u05D1 README.md \u05E9\u05D1\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05DB\u05EA\u05D5\u05D1 \u05DE\u05D4 \u05DB\u05DC \u05E7\u05D5\u05D1\u05E5 \u05E2\u05D5\u05E9\u05D4.",
22098
+ readme: "\u05D1\u05BEREADME.md \u05E9\u05D1\u05EA\u05D9\u05E7\u05D9\u05D9\u05D4 \u05DB\u05EA\u05D5\u05D1 \u05DE\u05D4 \u05DB\u05DC \u05E7\u05D5\u05D1\u05E5 \u05E2\u05D5\u05E9\u05D4.",
22095
22099
  states: { online: "\u05D1\u05D0\u05D5\u05D5\u05D9\u05E8", building: "\u05D1\u05D1\u05E0\u05D9\u05D9\u05D4", ready: "\u05DE\u05D7\u05DB\u05D4 \u05DC\u05D0\u05D9\u05E9\u05D5\u05E8", failed: "\u05E0\u05DB\u05E9\u05DC", paused: "\u05DE\u05D5\u05E9\u05D4\u05D4", off: "\u05DB\u05D1\u05D5\u05D9", queued: "\u05D1\u05EA\u05D5\u05E8", replaced: "\u05D4\u05D5\u05D7\u05DC\u05E4\u05D4 \u05D1\u05D4\u05E2\u05DC\u05D0\u05D4 \u05D7\u05D3\u05E9\u05D4 \u05D9\u05D5\u05EA\u05E8", deleted: "\u05E0\u05DE\u05D7\u05E7", new: "\u05D7\u05D3\u05E9" }
22096
22100
  }
22097
22101
  };
@@ -22105,7 +22109,7 @@ function messages(root) {
22105
22109
  }
22106
22110
 
22107
22111
  // src/version.ts
22108
- var CLI_VERSION = "0.1.0-beta.3";
22112
+ var CLI_VERSION = "0.1.0-beta.5";
22109
22113
 
22110
22114
  // src/api.ts
22111
22115
  function apiContext(apiFlag) {
@@ -23925,6 +23929,7 @@ async function statusCommand(root, ctx) {
23925
23929
  const s = await apiRequest(ctx, `/api/cli/status?projectId=${encodeURIComponent(projectId)}`, StatusResponse);
23926
23930
  const p = s.project;
23927
23931
  const t = messages(root);
23932
+ const newer = s.latest && s.latest.number !== p.liveVersion ? s.latest : null;
23928
23933
  out(t("statusTitle"));
23929
23934
  out();
23930
23935
  out(
@@ -23933,9 +23938,16 @@ async function statusCommand(root, ctx) {
23933
23938
  [t("state"), stateName(p.status, root)],
23934
23939
  [t("address"), p.url ?? t("notPublished")],
23935
23940
  [t("liveVersion"), p.liveVersion ? `v${p.liveVersion}` : t("none")],
23941
+ // A newer upload than the live one: its state, so "follow the build" after deploy has something to follow.
23942
+ ...newer ? [[t("newestVersion"), `v${newer.number} ${stateName(newer.status, root)}`]] : [],
23936
23943
  [t("queue"), s.queue.running ? t("buildingNow") : s.queue.position > 0 ? queueText(s.queue.position, root) : t("idle")]
23937
23944
  ])
23938
23945
  );
23946
+ if (newer?.status === "ready") {
23947
+ out();
23948
+ out(t("nextStep"));
23949
+ out(t("promoteReady", { n: newer.number }));
23950
+ }
23939
23951
  if (s.latest?.migrationStatus === "waiting") {
23940
23952
  out();
23941
23953
  out(t("sqlWaitingLine", { url: versionsPage(ctx, projectId) }));
package/package.json CHANGED
@@ -1,24 +1,61 @@
1
1
  {
2
2
  "name": "deployai",
3
- "version": "0.1.0-beta.3",
3
+ "version": "0.1.0-beta.5",
4
4
  "description": "Check a site built with an AI editor, see what has to change, and publish it to DeployAI. Hebrew first.",
5
- "keywords": ["deployai", "deploy", "hosting", "cli", "ai", "claude-code", "cursor", "copilot", "codex", "antigravity", "static-site", "astro", "vite", "hebrew", "israel"],
5
+ "keywords": [
6
+ "deployai",
7
+ "deploy",
8
+ "hosting",
9
+ "cli",
10
+ "ai",
11
+ "claude-code",
12
+ "cursor",
13
+ "copilot",
14
+ "codex",
15
+ "antigravity",
16
+ "static-site",
17
+ "astro",
18
+ "vite",
19
+ "hebrew",
20
+ "israel"
21
+ ],
6
22
  "homepage": "https://deployai.co.il/developers",
7
- "repository": { "type": "git", "url": "git+https://github.com/yobotn/deployai.git", "directory": "packages/cli" },
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "git+https://github.com/yobotn/deployai.git",
26
+ "directory": "packages/cli"
27
+ },
8
28
  "license": "MIT",
9
29
  "author": "DeployAI <info@deployai.co.il>",
10
30
  "type": "module",
11
- "bin": { "deployai": "./dist/index.js" },
12
- "files": ["dist"],
13
- "engines": { "node": ">=20" },
31
+ "bin": {
32
+ "deployai": "./dist/index.js"
33
+ },
34
+ "files": [
35
+ "dist"
36
+ ],
37
+ "engines": {
38
+ "node": ">=20"
39
+ },
40
+ "dependencies": {
41
+ "commander": "15.0.0"
42
+ },
43
+ "devDependencies": {
44
+ "@deployai/shared": "0.1.0",
45
+ "@eslint/js": "9.39.5",
46
+ "eslint": "9.39.5",
47
+ "typescript-eslint": "8.71.1",
48
+ "typescript": "^5",
49
+ "vitest": "5.0.3",
50
+ "tsx": "^4",
51
+ "tsup": "^8",
52
+ "@types/node": "^22"
53
+ },
14
54
  "scripts": {
15
55
  "start": "tsx src/index.ts",
16
56
  "build": "tsup",
17
57
  "typecheck": "tsc --noEmit",
18
58
  "test": "vitest run",
19
- "lint": "eslint",
20
- "prepublishOnly": "npm run build && npm test"
21
- },
22
- "dependencies": { "commander": "15.0.0" },
23
- "devDependencies": { "@deployai/shared": "workspace:*", "@eslint/js": "9.39.5", "eslint": "9.39.5", "typescript-eslint": "8.71.1", "typescript": "^5", "vitest": "5.0.3", "tsx": "^4", "tsup": "^8", "@types/node": "^22" }
24
- }
59
+ "lint": "eslint"
60
+ }
61
+ }