windmill-cli 1.762.3 → 1.763.1-gitsync.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/esm/main.js +146 -72
  2. package/package.json +1 -1
package/esm/main.js CHANGED
@@ -16784,7 +16784,7 @@ var init_OpenAPI = __esm(() => {
16784
16784
  PASSWORD: undefined,
16785
16785
  TOKEN: getEnv3("WM_TOKEN"),
16786
16786
  USERNAME: undefined,
16787
- VERSION: "1.762.2",
16787
+ VERSION: "1.764.0",
16788
16788
  WITH_CREDENTIALS: true,
16789
16789
  interceptors: {
16790
16790
  request: new Interceptors,
@@ -17251,7 +17251,7 @@ __export(exports_services_gen, {
17251
17251
  logout: () => logout,
17252
17252
  loginWithOauth: () => loginWithOauth,
17253
17253
  login: () => login,
17254
- logAiChat: () => logAiChat,
17254
+ logFeatureUsage: () => logFeatureUsage,
17255
17255
  loadTableRowCount: () => loadTableRowCount,
17256
17256
  loadParquetPreview: () => loadParquetPreview,
17257
17257
  loadGitRepoFilePreview: () => loadGitRepoFilePreview,
@@ -17354,6 +17354,7 @@ __export(exports_services_gen, {
17354
17354
  listDataTables: () => listDataTables,
17355
17355
  listDataTableTables: () => listDataTableTables,
17356
17356
  listDataTableSchemas: () => listDataTableSchemas,
17357
+ listDataMetrics: () => listDataMetrics,
17357
17358
  listCustomInstanceDbs: () => listCustomInstanceDbs,
17358
17359
  listConversationMessages: () => listConversationMessages,
17359
17360
  listContextualVariables: () => listContextualVariables,
@@ -17529,6 +17530,7 @@ __export(exports_services_gen, {
17529
17530
  getGlobal: () => getGlobal,
17530
17531
  getGithubAppToken: () => getGithubAppToken,
17531
17532
  getGitSyncEnabled: () => getGitSyncEnabled,
17533
+ getGitSyncDeployMode: () => getGitSyncDeployMode,
17532
17534
  getGitCommitHash: () => getGitCommitHash,
17533
17535
  getGhesConfig: () => getGhesConfig,
17534
17536
  getGcpTrigger: () => getGcpTrigger,
@@ -19212,6 +19214,23 @@ var backendVersion = () => {
19212
19214
  workspace: data3.workspace
19213
19215
  }
19214
19216
  });
19217
+ }, listDataMetrics = (data3) => {
19218
+ return request(OpenAPI, {
19219
+ method: "GET",
19220
+ url: "/w/{workspace}/data_metrics/list",
19221
+ path: {
19222
+ workspace: data3.workspace
19223
+ },
19224
+ query: {
19225
+ table: data3.table,
19226
+ path_prefix: data3.pathPrefix,
19227
+ per_page: data3.perPage,
19228
+ cursor_table: data3.cursorTable,
19229
+ cursor_kind: data3.cursorKind,
19230
+ cursor_name: data3.cursorName,
19231
+ cursor_script: data3.cursorScript
19232
+ }
19233
+ });
19215
19234
  }, listDataTables = (data3) => {
19216
19235
  return request(OpenAPI, {
19217
19236
  method: "GET",
@@ -19436,6 +19455,17 @@ var backendVersion = () => {
19436
19455
  workspace: data3.workspace
19437
19456
  }
19438
19457
  });
19458
+ }, getGitSyncDeployMode = (data3) => {
19459
+ return request(OpenAPI, {
19460
+ method: "GET",
19461
+ url: "/w/{workspace}/workspaces/git_sync_deploy_mode",
19462
+ path: {
19463
+ workspace: data3.workspace
19464
+ },
19465
+ query: {
19466
+ branch: data3.branch
19467
+ }
19468
+ });
19439
19469
  }, editWorkspaceGitSyncConfig = (data3) => {
19440
19470
  return request(OpenAPI, {
19441
19471
  method: "POST",
@@ -19936,10 +19966,10 @@ var backendVersion = () => {
19936
19966
  400: "invalid input or request closed"
19937
19967
  }
19938
19968
  });
19939
- }, logAiChat = (data3) => {
19969
+ }, logFeatureUsage = (data3) => {
19940
19970
  return request(OpenAPI, {
19941
19971
  method: "POST",
19942
- url: "/w/{workspace}/workspaces/log_chat",
19972
+ url: "/w/{workspace}/workspaces/log_feature_usage",
19943
19973
  path: {
19944
19974
  workspace: data3.workspace
19945
19975
  },
@@ -25978,7 +26008,7 @@ __export(exports_gen, {
25978
26008
  logout: () => logout,
25979
26009
  loginWithOauth: () => loginWithOauth,
25980
26010
  login: () => login,
25981
- logAiChat: () => logAiChat,
26011
+ logFeatureUsage: () => logFeatureUsage,
25982
26012
  loadTableRowCount: () => loadTableRowCount,
25983
26013
  loadParquetPreview: () => loadParquetPreview,
25984
26014
  loadGitRepoFilePreview: () => loadGitRepoFilePreview,
@@ -26081,6 +26111,7 @@ __export(exports_gen, {
26081
26111
  listDataTables: () => listDataTables,
26082
26112
  listDataTableTables: () => listDataTableTables,
26083
26113
  listDataTableSchemas: () => listDataTableSchemas,
26114
+ listDataMetrics: () => listDataMetrics,
26084
26115
  listCustomInstanceDbs: () => listCustomInstanceDbs,
26085
26116
  listConversationMessages: () => listConversationMessages,
26086
26117
  listContextualVariables: () => listContextualVariables,
@@ -26256,6 +26287,7 @@ __export(exports_gen, {
26256
26287
  getGlobal: () => getGlobal,
26257
26288
  getGithubAppToken: () => getGithubAppToken,
26258
26289
  getGitSyncEnabled: () => getGitSyncEnabled,
26290
+ getGitSyncDeployMode: () => getGitSyncDeployMode,
26259
26291
  getGitCommitHash: () => getGitCommitHash,
26260
26292
  getGhesConfig: () => getGhesConfig,
26261
26293
  getGcpTrigger: () => getGcpTrigger,
@@ -26667,7 +26699,7 @@ var init_auth = __esm(async () => {
26667
26699
  });
26668
26700
 
26669
26701
  // src/core/constants.ts
26670
- var WM_FORK_PREFIX = "wm-fork", VERSION = "1.762.2";
26702
+ var WM_FORK_PREFIX = "wm-fork", VERSION = "1.763.1-gitsync.0";
26671
26703
 
26672
26704
  // src/utils/git.ts
26673
26705
  var exports_git = {};
@@ -26768,18 +26800,20 @@ function computeGitSyncDeployBranch(params) {
26768
26800
  groupByFolder,
26769
26801
  clonedBranchName
26770
26802
  } = params;
26771
- if (isForkWorkspace(workspaceId, parentWorkspaceId)) {
26803
+ const isDevWorkspace = !!devWorkspaceLabel;
26804
+ if (isForkWorkspace(workspaceId, parentWorkspaceId) && !(isDevWorkspace && useIndividualBranch)) {
26772
26805
  return forkBranchName(workspaceId, clonedBranchName, devWorkspaceLabel);
26773
26806
  }
26807
+ const fallback = isDevWorkspace ? forkBranchName(workspaceId, clonedBranchName, devWorkspaceLabel) : null;
26774
26808
  if (items.length === 0)
26775
- return null;
26809
+ return fallback;
26776
26810
  const first = items[0];
26777
26811
  if (!useIndividualBranch || first.path_type === "user" || first.path_type === "group") {
26778
- return null;
26812
+ return fallback;
26779
26813
  }
26780
- const ref = first.path ?? first.parent_path;
26814
+ const ref = first.path || first.parent_path;
26781
26815
  if (!ref)
26782
- return null;
26816
+ return fallback;
26783
26817
  return groupByFolder ? `wm_deploy/${workspaceId}/${ref.split("/").slice(0, 2).join("__")}` : `wm_deploy/${workspaceId}/${first.path_type}/${ref.replaceAll("/", "__")}`;
26784
26818
  }
26785
26819
  function composeGitSyncCommitHeader(items) {
@@ -69597,8 +69631,9 @@ async function pull(opts) {
69597
69631
  }
69598
69632
  const clonedBranchName = getCurrentGitBranch() ?? "main";
69599
69633
  const targetIsFork = isForkWorkspace(workspace.workspaceId, opts.parentWorkspaceId);
69600
- const useIndividualBranch = targetIsFork ? false : !!opts.useIndividualBranch;
69601
- const groupByFolder = targetIsFork ? false : !!opts.groupByFolder;
69634
+ const forceOffPromotion = targetIsFork && !opts.devWorkspaceLabel;
69635
+ const useIndividualBranch = forceOffPromotion ? false : !!opts.useIndividualBranch;
69636
+ const groupByFolder = forceOffPromotion ? false : !!opts.groupByFolder;
69602
69637
  const parentBranch = opts.parentDevWorkspaceLabel ? opts.parentDevWorkspaceLabel : opts.parentWorkspaceId && isForkWorkspace(opts.parentWorkspaceId) ? computeGitSyncDeployBranch({
69603
69638
  workspaceId: opts.parentWorkspaceId,
69604
69639
  items: deployItems,
@@ -69879,7 +69914,7 @@ async function gitDeploy(opts) {
69879
69914
  }
69880
69915
  }
69881
69916
  const isFork = isForkWorkspace(opts.workspace ?? "", opts.parentWorkspaceId);
69882
- const useIndividualBranch = isFork ? false : !!opts.useIndividualBranch;
69917
+ const useIndividualBranch = isFork && !opts.devWorkspaceLabel ? false : !!opts.useIndividualBranch;
69883
69918
  const includes = deriveGitSyncDeployIncludes(items, useIndividualBranch);
69884
69919
  const promotion = useIndividualBranch && !opts.promotion ? getCurrentGitBranch() ?? undefined : opts.promotion;
69885
69920
  await pull({
@@ -80340,11 +80375,45 @@ var init_push = __esm(async () => {
80340
80375
  ]);
80341
80376
  });
80342
80377
 
80378
+ // src/commands/gitsync-settings/status.ts
80379
+ async function gitSyncStatus(opts) {
80380
+ const workspace = await resolveWorkspace(opts);
80381
+ await requireLogin(opts);
80382
+ const branch = isGitRepository() ? getCurrentGitBranch() : null;
80383
+ const mode = await getGitSyncDeployMode({
80384
+ workspace: workspace.workspaceId,
80385
+ branch: branch ?? undefined
80386
+ });
80387
+ const deployCommand = mode.deploy_on_push ? "git push" : null;
80388
+ if (opts.jsonOutput) {
80389
+ console.log(JSON.stringify({ ...mode, current_branch: branch, deploy_command: deployCommand }, null, 2));
80390
+ return;
80391
+ }
80392
+ if (mode.deploy_on_push) {
80393
+ info(colors.green(`Git-sync auto-pull deploys this branch: pushing '${branch}' deploys to the workspace.`));
80394
+ info(`Recommended deploy command: ${colors.bold("git push")}`);
80395
+ } else {
80396
+ info(colors.yellow(mode.configured ? "Couldn't confirm a backend auto-pull deploy for this checkout (no single repo unambiguously tracks this branch)." : "No git-sync repository is configured for this workspace on the backend."));
80397
+ info("This is not confirmed deploy-on-push, not a definite no. Ask the user how this repo deploys: `git push` (a CI workflow, or a git-sync repo that couldn't be disambiguated) or `wmill sync push`. Record the answer as a `Deploy mode:` line in AGENTS.md so later sessions skip the question (see the Deploying section).");
80398
+ }
80399
+ }
80400
+ var init_status = __esm(async () => {
80401
+ init_colors2();
80402
+ init_log();
80403
+ init_services_gen();
80404
+ init_git();
80405
+ await __promiseAll([
80406
+ init_auth(),
80407
+ init_context()
80408
+ ]);
80409
+ });
80410
+
80343
80411
  // src/commands/gitsync-settings/gitsync-settings.ts
80344
80412
  var exports_gitsync_settings = {};
80345
80413
  __export(exports_gitsync_settings, {
80346
80414
  pushGitSyncSettings: () => pushGitSyncSettings,
80347
80415
  pullGitSyncSettings: () => pullGitSyncSettings,
80416
+ gitSyncStatus: () => gitSyncStatus,
80348
80417
  default: () => gitsync_settings_default
80349
80418
  });
80350
80419
  var command23, gitsync_settings_default;
@@ -80352,9 +80421,10 @@ var init_gitsync_settings = __esm(async () => {
80352
80421
  init_mod3();
80353
80422
  await __promiseAll([
80354
80423
  init_pull2(),
80355
- init_push()
80424
+ init_push(),
80425
+ init_status()
80356
80426
  ]);
80357
- command23 = new Command().description("Manage git-sync settings between local wmill.yaml and Windmill backend").command("pull").description("Pull git-sync settings from Windmill backend to local wmill.yaml").option("--repository <repo:string>", "Specify repository path (e.g., u/user/repo)").option("--default", "Write settings to top-level defaults instead of overrides").option("--replace", "Replace existing settings (non-interactive mode)").option("--override", "Add branch-specific override (non-interactive mode)").option("--diff", "Show differences without applying changes").option("--json-output", "Output in JSON format").option("--with-backend-settings <json:string>", "Use provided JSON settings instead of querying backend (for testing)").option("--yes", "Skip interactive prompts and use default behavior").option("--promotion <branch:string>", "Use promotionOverrides from the specified branch instead of regular overrides").action(pullGitSyncSettings).command("push").description("Push git-sync settings from local wmill.yaml to Windmill backend").option("--repository <repo:string>", "Specify repository path (e.g., u/user/repo)").option("--diff", "Show what would be pushed without applying changes").option("--json-output", "Output in JSON format").option("--with-backend-settings <json:string>", "Use provided JSON settings instead of querying backend (for testing)").option("--yes", "Skip interactive prompts and use default behavior").option("--promotion <branch:string>", "Use promotionOverrides from the specified branch instead of regular overrides").action(pushGitSyncSettings);
80427
+ command23 = new Command().description("Manage git-sync settings between local wmill.yaml and Windmill backend").command("pull").description("Pull git-sync settings from Windmill backend to local wmill.yaml").option("--repository <repo:string>", "Specify repository path (e.g., u/user/repo)").option("--default", "Write settings to top-level defaults instead of overrides").option("--replace", "Replace existing settings (non-interactive mode)").option("--override", "Add branch-specific override (non-interactive mode)").option("--diff", "Show differences without applying changes").option("--json-output", "Output in JSON format").option("--with-backend-settings <json:string>", "Use provided JSON settings instead of querying backend (for testing)").option("--yes", "Skip interactive prompts and use default behavior").option("--promotion <branch:string>", "Use promotionOverrides from the specified branch instead of regular overrides").action(pullGitSyncSettings).command("push").description("Push git-sync settings from local wmill.yaml to Windmill backend").option("--repository <repo:string>", "Specify repository path (e.g., u/user/repo)").option("--diff", "Show what would be pushed without applying changes").option("--json-output", "Output in JSON format").option("--with-backend-settings <json:string>", "Use provided JSON settings instead of querying backend (for testing)").option("--yes", "Skip interactive prompts and use default behavior").option("--promotion <branch:string>", "Use promotionOverrides from the specified branch instead of regular overrides").action(pushGitSyncSettings).command("status").description("Report how local changes deploy to the workspace (git push vs wmill sync push)").option("--json-output", "Output in JSON format").action(gitSyncStatus);
80358
80428
  gitsync_settings_default = command23;
80359
80429
  });
80360
80430
 
@@ -80460,23 +80530,24 @@ There are two ways local changes reach the workspace. Pick based on how the repo
80460
80530
 
80461
80531
  ### Detecting the setup
80462
80532
 
80463
- Before deploying, check whether this repo has a **GitHub Actions (or other CI) workflow that runs \`wmill sync push\` on push**. That workflow is the signal that pushing a branch will deploy:
80533
+ A \`git push\` deploys when either mechanism is in place: **server-handled git sync** (the workspace auto-pulls the remote, so Windmill deploys what you push) or a **CI workflow that runs \`wmill sync push\` on push**. Check for either:
80464
80534
 
80465
- - Look for \`.github/workflows/*.yml\` (or other CI configs) that invoke \`wmill sync push\`, \`wmill\` deployment commands, or similar.
80535
+ - Run \`wmill gitsync-settings status\`. If it reports \`deploy_on_push\`, pushing the current branch deploys via backend auto-pull no CI needed.
80536
+ - Otherwise look for a \`.github/workflows/*.yml\` (or other CI config) that invokes \`wmill sync push\` or similar \`wmill\` deployment commands.
80466
80537
 
80467
- If such a workflow exists → **use \`git push\`** (Option A). Otherwise**use \`wmill sync push\`** directly (Option B).
80538
+ If either is present → **use \`git push\`** (Option A). If \`status\` reports no auto-pull and there is no CI wiring, **ask the user** how this repo deploys (a CI pipeline you didn't recognize \`git push\`, or manual → \`wmill sync push\`) rather than assuming — then record the answer (below). Only use \`wmill sync push\` directly (Option B) once you've confirmed there is no deploy-on-push path.
80468
80539
 
80469
- **Save the preference so you don't re-detect it every session.** Once you've determined which option this repo uses (or the user tells you), record it in the **project-specific instructions** section of \`AGENTS.md\` (user-owned — never overwritten by \`wmill refresh prompts\`), e.g. a line like \`Deploy mode: git push (CI runs wmill sync push)\` or \`Deploy mode: wmill sync push (no CI wiring)\`. On later sessions, read that line first and skip the scan. Re-detect only if the CI wiring visibly changed.
80540
+ **Save the preference so you don't re-detect it every session.** Once you've determined which option this repo uses (or the user tells you), record it in the **project-specific instructions** section of \`AGENTS.md\` (user-owned — never overwritten by \`wmill refresh prompts\`), e.g. a line like \`Deploy mode: git push (backend auto-pull)\`, \`Deploy mode: git push (CI runs wmill sync push)\`, or \`Deploy mode: wmill sync push (no git-push deploy)\`. On later sessions, read that line first and skip the scan. Re-detect only if the wiring visibly changed.
80470
80541
 
80471
- ### Option A — \`git push\` (CI is wired to sync)
80542
+ ### Option A — \`git push\` (backend auto-pull or CI deploys on push)
80472
80543
 
80473
- The CI workflow will pick up the commit and run \`wmill sync push\` on the backend, which is how deployments are intended to happen in this repo. Don't bypass it.
80544
+ Pushing the commit deploys it: the backend auto-pulls the remote, or a CI workflow runs \`wmill sync push\`. This is how deployments are intended to happen in this repo. Don't bypass it.
80474
80545
 
80475
80546
  1. \`git add\` + \`git commit\` the local changes.
80476
- 2. \`git push\` to the branch the CI runs on.
80477
- 3. The workflow deploys to the workspace.
80547
+ 2. \`git push\` to the tracked branch (the one the backend pulls or CI runs on).
80548
+ 3. The deploy happens on the backend.
80478
80549
 
80479
- Only fall back to Option B if the user explicitly asks to bypass CI for this change (e.g. CI is broken, urgent hotfix), or if the workflow doesn't cover the current branch.
80550
+ Only fall back to Option B if the user explicitly asks to bypass this for this change (e.g. the pipeline is broken, urgent hotfix), or if the tracked branch doesn't cover the current branch.
80480
80551
 
80481
80552
  ### Option B — \`wmill sync push\` (no CI wiring)
80482
80553
 
@@ -80584,7 +80655,7 @@ After writing, tell the user which command fits what they want to do:
80584
80655
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
80585
80656
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
80586
80657
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
80587
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
80658
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
80588
80659
 
80589
80660
  ### Preview vs run — choose by intent, not habit
80590
80661
 
@@ -80614,7 +80685,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
80614
80685
 
80615
80686
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
80616
80687
 
80617
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
80688
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
80618
80689
 
80619
80690
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
80620
80691
 
@@ -80724,7 +80795,7 @@ After writing, tell the user which command fits what they want to do:
80724
80795
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
80725
80796
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
80726
80797
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
80727
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
80798
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
80728
80799
 
80729
80800
  ### Preview vs run — choose by intent, not habit
80730
80801
 
@@ -80754,7 +80825,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
80754
80825
 
80755
80826
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
80756
80827
 
80757
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
80828
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
80758
80829
 
80759
80830
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
80760
80831
 
@@ -80824,7 +80895,7 @@ After writing, tell the user which command fits what they want to do:
80824
80895
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
80825
80896
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
80826
80897
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
80827
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
80898
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
80828
80899
 
80829
80900
  ### Preview vs run — choose by intent, not habit
80830
80901
 
@@ -80854,7 +80925,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
80854
80925
 
80855
80926
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
80856
80927
 
80857
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
80928
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
80858
80929
 
80859
80930
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
80860
80931
 
@@ -80917,7 +80988,7 @@ After writing, tell the user which command fits what they want to do:
80917
80988
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
80918
80989
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
80919
80990
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
80920
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
80991
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
80921
80992
 
80922
80993
  ### Preview vs run — choose by intent, not habit
80923
80994
 
@@ -80947,7 +81018,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
80947
81018
 
80948
81019
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
80949
81020
 
80950
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
81021
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
80951
81022
 
80952
81023
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
80953
81024
 
@@ -81681,7 +81752,7 @@ After writing, tell the user which command fits what they want to do:
81681
81752
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
81682
81753
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
81683
81754
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
81684
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
81755
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
81685
81756
 
81686
81757
  ### Preview vs run — choose by intent, not habit
81687
81758
 
@@ -81711,7 +81782,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
81711
81782
 
81712
81783
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
81713
81784
 
81714
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
81785
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
81715
81786
 
81716
81787
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
81717
81788
 
@@ -82445,7 +82516,7 @@ After writing, tell the user which command fits what they want to do:
82445
82516
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
82446
82517
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
82447
82518
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
82448
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
82519
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
82449
82520
 
82450
82521
  ### Preview vs run — choose by intent, not habit
82451
82522
 
@@ -82475,7 +82546,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
82475
82546
 
82476
82547
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
82477
82548
 
82478
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
82549
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
82479
82550
 
82480
82551
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
82481
82552
 
@@ -82537,7 +82608,7 @@ After writing, tell the user which command fits what they want to do:
82537
82608
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
82538
82609
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
82539
82610
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
82540
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
82611
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
82541
82612
 
82542
82613
  ### Preview vs run — choose by intent, not habit
82543
82614
 
@@ -82567,7 +82638,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
82567
82638
 
82568
82639
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
82569
82640
 
82570
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
82641
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
82571
82642
 
82572
82643
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
82573
82644
 
@@ -83301,7 +83372,7 @@ After writing, tell the user which command fits what they want to do:
83301
83372
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
83302
83373
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
83303
83374
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
83304
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
83375
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
83305
83376
 
83306
83377
  ### Preview vs run — choose by intent, not habit
83307
83378
 
@@ -83331,7 +83402,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
83331
83402
 
83332
83403
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
83333
83404
 
83334
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
83405
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
83335
83406
 
83336
83407
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
83337
83408
 
@@ -83427,7 +83498,7 @@ After writing, tell the user which command fits what they want to do:
83427
83498
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
83428
83499
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
83429
83500
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
83430
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
83501
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
83431
83502
 
83432
83503
  ### Preview vs run — choose by intent, not habit
83433
83504
 
@@ -83457,7 +83528,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
83457
83528
 
83458
83529
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
83459
83530
 
83460
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
83531
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
83461
83532
 
83462
83533
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
83463
83534
 
@@ -83536,7 +83607,7 @@ After writing, tell the user which command fits what they want to do:
83536
83607
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
83537
83608
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
83538
83609
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
83539
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
83610
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
83540
83611
 
83541
83612
  ### Preview vs run — choose by intent, not habit
83542
83613
 
@@ -83566,7 +83637,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
83566
83637
 
83567
83638
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
83568
83639
 
83569
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
83640
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
83570
83641
 
83571
83642
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
83572
83643
 
@@ -83632,7 +83703,7 @@ After writing, tell the user which command fits what they want to do:
83632
83703
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
83633
83704
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
83634
83705
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
83635
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
83706
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
83636
83707
 
83637
83708
  ### Preview vs run — choose by intent, not habit
83638
83709
 
@@ -83662,7 +83733,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
83662
83733
 
83663
83734
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
83664
83735
 
83665
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
83736
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
83666
83737
 
83667
83738
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
83668
83739
 
@@ -83721,7 +83792,7 @@ After writing, tell the user which command fits what they want to do:
83721
83792
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
83722
83793
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
83723
83794
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
83724
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
83795
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
83725
83796
 
83726
83797
  ### Preview vs run — choose by intent, not habit
83727
83798
 
@@ -83751,7 +83822,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
83751
83822
 
83752
83823
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
83753
83824
 
83754
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
83825
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
83755
83826
 
83756
83827
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
83757
83828
 
@@ -83813,7 +83884,7 @@ After writing, tell the user which command fits what they want to do:
83813
83884
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
83814
83885
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
83815
83886
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
83816
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
83887
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
83817
83888
 
83818
83889
  ### Preview vs run — choose by intent, not habit
83819
83890
 
@@ -83843,7 +83914,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
83843
83914
 
83844
83915
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
83845
83916
 
83846
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
83917
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
83847
83918
 
83848
83919
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
83849
83920
 
@@ -83906,7 +83977,7 @@ After writing, tell the user which command fits what they want to do:
83906
83977
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
83907
83978
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
83908
83979
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
83909
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
83980
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
83910
83981
 
83911
83982
  ### Preview vs run — choose by intent, not habit
83912
83983
 
@@ -83936,7 +84007,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
83936
84007
 
83937
84008
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
83938
84009
 
83939
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
84010
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
83940
84011
 
83941
84012
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
83942
84013
 
@@ -84014,7 +84085,7 @@ After writing, tell the user which command fits what they want to do:
84014
84085
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
84015
84086
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
84016
84087
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
84017
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
84088
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
84018
84089
 
84019
84090
  ### Preview vs run — choose by intent, not habit
84020
84091
 
@@ -84044,7 +84115,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
84044
84115
 
84045
84116
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
84046
84117
 
84047
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
84118
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
84048
84119
 
84049
84120
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
84050
84121
 
@@ -84105,7 +84176,7 @@ After writing, tell the user which command fits what they want to do:
84105
84176
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
84106
84177
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
84107
84178
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
84108
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
84179
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
84109
84180
 
84110
84181
  ### Preview vs run — choose by intent, not habit
84111
84182
 
@@ -84135,7 +84206,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
84135
84206
 
84136
84207
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
84137
84208
 
84138
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
84209
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
84139
84210
 
84140
84211
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
84141
84212
 
@@ -84211,7 +84282,7 @@ After writing, tell the user which command fits what they want to do:
84211
84282
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
84212
84283
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
84213
84284
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
84214
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
84285
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
84215
84286
 
84216
84287
  ### Preview vs run — choose by intent, not habit
84217
84288
 
@@ -84241,7 +84312,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
84241
84312
 
84242
84313
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
84243
84314
 
84244
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
84315
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
84245
84316
 
84246
84317
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
84247
84318
 
@@ -85114,7 +85185,7 @@ After writing, tell the user which command fits what they want to do:
85114
85185
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
85115
85186
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
85116
85187
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
85117
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
85188
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
85118
85189
 
85119
85190
  ### Preview vs run — choose by intent, not habit
85120
85191
 
@@ -85144,7 +85215,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
85144
85215
 
85145
85216
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
85146
85217
 
85147
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
85218
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
85148
85219
 
85149
85220
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
85150
85221
 
@@ -85250,7 +85321,7 @@ After writing, tell the user which command fits what they want to do:
85250
85321
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
85251
85322
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
85252
85323
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
85253
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
85324
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
85254
85325
 
85255
85326
  ### Preview vs run — choose by intent, not habit
85256
85327
 
@@ -85280,7 +85351,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
85280
85351
 
85281
85352
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
85282
85353
 
85283
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
85354
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
85284
85355
 
85285
85356
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
85286
85357
 
@@ -85376,7 +85447,7 @@ After writing, tell the user which command fits what they want to do:
85376
85447
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
85377
85448
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
85378
85449
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
85379
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
85450
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
85380
85451
 
85381
85452
  ### Preview vs run — choose by intent, not habit
85382
85453
 
@@ -85406,7 +85477,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
85406
85477
 
85407
85478
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
85408
85479
 
85409
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
85480
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
85410
85481
 
85411
85482
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
85412
85483
 
@@ -85506,7 +85577,7 @@ After writing, act on the user's intent instead of just listing commands. Run \`
85506
85577
  - \`wmill flow preview <flow_path>\` — **default when iterating on a local flow.** Runs the local \`flow.yaml\` against local inline scripts without deploying. Add \`--remote\` to use deployed workspace scripts for PathScript steps instead of local files. Add \`--step <step_id>\` to run only one module in isolation (see "Single-step vs whole-flow preview" below).
85507
85578
  - \`wmill flow run <path>\` — runs the flow **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
85508
85579
  - \`wmill generate-metadata\` — regenerate stale local \`.lock\` files for the flow and its inline scripts and refresh their content hashes in \`wmill-lock.yaml\`. Writes local files only (not a deploy). Run it after editing inline scripts whose imports or arguments changed, so \`wmill-lock.yaml\` doesn't drift and add noise to git-sync/CI. By default it scans **scripts, flows, and apps** across the workspace but only regenerates stale ones; pass the flow's folder as an argument (or run from that subdirectory) to limit the scope to the flow you edited. Note a flow (or script) that imports a changed shared script is pulled in too — run \`wmill generate-metadata --dry-run\` to see exactly what is stale and why (\`content changed\` vs \`depends on <path>\`) before applying.
85509
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
85580
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
85510
85581
 
85511
85582
  ### Preview vs run — choose by intent, not habit
85512
85583
 
@@ -86317,7 +86388,7 @@ Text/HTML/inline parts are placed inline in \`body\` as strings.
86317
86388
 
86318
86389
  ## CLI Commands
86319
86390
 
86320
- \`wmill sync push\` deploys local changes to the workspace and can be destructive to remote state — only suggest/run it when the user explicitly asks to deploy/publish/push, not when they say "run", "try", or "test". \`sync pull\` is safe to run yourself — it never mutates remote state, though it does overwrite local files to match the remote (use \`sync pull --dry-run\` to only preview).
86391
+ Deploying local changes to the workspace can be destructive to remote state — only suggest/run a deploy when the user explicitly asks to deploy/publish/push, not when they say "run", "try", or "test". Deploy via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). \`sync pull\` is safe to run yourself — it never mutates remote state, though it does overwrite local files to match the remote (use \`sync pull --dry-run\` to only preview).
86321
86392
 
86322
86393
  \`\`\`bash
86323
86394
  # Push trigger configuration — only when the user explicitly asks to deploy
@@ -86368,7 +86439,7 @@ Windmill uses 6-field cron expressions (includes seconds):
86368
86439
 
86369
86440
  ## CLI Commands
86370
86441
 
86371
- \`wmill sync push\` deploys local changes to the workspace and can be destructive to remote state — only suggest/run it when the user explicitly asks to deploy/publish/push, not when they say "run", "try", or "test". The commands below never mutate remote state, so they're safe to run yourself — note that \`sync pull\` does overwrite local files to match the remote (use \`sync pull --dry-run\` to only preview), while \`schedule\` just lists.
86442
+ Deploying local changes to the workspace can be destructive to remote state — only suggest/run a deploy when the user explicitly asks to deploy/publish/push, not when they say "run", "try", or "test". Deploy via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). The commands below never mutate remote state, so they're safe to run yourself — note that \`sync pull\` does overwrite local files to match the remote (use \`sync pull --dry-run\` to only preview), while \`schedule\` just lists.
86372
86443
 
86373
86444
  \`\`\`bash
86374
86445
  # Push schedules to Windmill — only when the user explicitly asks to deploy
@@ -86625,8 +86696,9 @@ wmill resource-type list --schema
86625
86696
  # Get specific resource type schema
86626
86697
  wmill resource-type get postgresql
86627
86698
 
86628
- # Push resources to Windmilldeploys to the workspace and can be destructive to
86629
- # remote state, so only run it when the user explicitly asks to deploy/publish/push
86699
+ # Deploy resources to the workspace destructive to remote state, so only run when
86700
+ # the user explicitly asks to deploy/publish/push. Depending on how the repo is wired,
86701
+ # deploy via \`git push\` or \`wmill sync push\` (see the Deploying section in AGENTS.wmill.md).
86630
86702
  wmill sync push
86631
86703
  \`\`\`
86632
86704
  `,
@@ -86644,7 +86716,7 @@ After writing, tell the user which command fits what they want to do:
86644
86716
  - \`wmill script preview <script_path>\` — **default when iterating on a local script.** Runs the local file without deploying.
86645
86717
  - \`wmill script run <path>\` — runs the script **already deployed** in the workspace. Use only when the user explicitly wants to test the deployed version, not local edits.
86646
86718
  - \`wmill generate-metadata\` — regenerate the local \`.script.yaml\` (input schema) and \`.lock\` (resolved dependencies) for scripts you changed, and refresh their content hashes in \`wmill-lock.yaml\`. Local files only — **not** a deploy. See "Keep metadata in sync" below.
86647
- - \`wmill sync push\` deploy local changes to the workspace. Only suggest/run this when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
86719
+ - Deploy local changes to the workspace — via \`git push\` or \`wmill sync push\` depending on how the repo is wired (see the **Deploying** section in \`AGENTS.wmill.md\`). Only suggest/run a deploy when the user explicitly asks to deploy/publish/push — not when they say "run", "try", or "test".
86648
86720
 
86649
86721
  ### Preview vs run — choose by intent, not habit
86650
86722
 
@@ -86674,7 +86746,7 @@ If the user hasn't already told you to run/test/preview the script, offer it as
86674
86746
 
86675
86747
  If the user already asked to test/run/try the script in their original request, skip the offer and just execute \`wmill script preview <path> -d '<args>'\` directly — pick plausible args from the script's declared parameters. The shape varies by language: \`main(...)\` for code languages, the SQL dialect's own placeholder syntax (\`$1\` for PostgreSQL, \`?\` for MySQL/Snowflake, \`@P1\` for MSSQL, \`@name\` for BigQuery, etc.), positional \`$1\`, \`$2\`, … for Bash, \`param(...)\` for PowerShell.
86676
86748
 
86677
- \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Only \`wmill sync push\` deploys to the workspacerun it only when the user explicitly asks to deploy/publish/push.
86749
+ \`wmill script preview\` does not deploy, but it still executes script code and may cause side effects; run it yourself when the user asked to test/preview (or after confirming that execution is intended). \`wmill generate-metadata\` does not deploy either — it only writes local files (locks, schemas, hashes) — but offer it before running (or run automatically if the project's \`AGENTS.md\` opts in), per "Keep metadata in sync" above. Deploying to the workspace (\`git push\` or \`wmill sync push\` depending on how the repo is wired see the **Deploying** section) is the only step that mutates remote state — do it only when the user explicitly asks to deploy/publish/push.
86678
86750
 
86679
86751
  For a **visual** open-the-script-in-the-dev-page preview (rather than \`script preview\`'s run-and-print-result), use the \`preview\` skill.
86680
86752
 
@@ -87338,6 +87410,8 @@ Manage git-sync settings between local wmill.yaml and Windmill backend
87338
87410
  - \`--with-backend-settings <json:string>\` - Use provided JSON settings instead of querying backend (for testing)
87339
87411
  - \`--yes\` - Skip interactive prompts and use default behavior
87340
87412
  - \`--promotion <branch:string>\` - Use promotionOverrides from the specified branch instead of regular overrides
87413
+ - \`gitsync-settings status\` - Report how local changes deploy to the workspace (git push vs wmill sync push)
87414
+ - \`--json-output\` - Output in JSON format
87341
87415
 
87342
87416
  ### group
87343
87417
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "windmill-cli",
3
- "version": "1.762.3",
3
+ "version": "1.763.1-gitsync.0",
4
4
  "description": "CLI for Windmill",
5
5
  "license": "Apache 2.0",
6
6
  "type": "module",