@synkro-sh/cli 1.4.11 → 1.4.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bootstrap.js CHANGED
@@ -1247,15 +1247,20 @@ if synkro_channel_up || { [ "$SYNKRO_INFERENCE_TIER" = "free" ] && command -v cl
1247
1247
  printf 'Diff:\\n' >> "$GRADER_PROMPT_FILE"
1248
1248
  printf '%s\\n' "$PROPOSED" >> "$GRADER_PROMPT_FILE"
1249
1249
 
1250
+ ROUTE_TAG=""
1250
1251
  if synkro_channel_up && [ -n "\${SYNKRO_CLI_BIN:-}" ] && [ -f "$SYNKRO_CLI_BIN" ] && command -v node >/dev/null 2>&1; then
1252
+ ROUTE_TAG="local-cc"
1251
1253
  synkro_log "editGuard $FILE_SHORT \u2192 routing via local-cc"
1252
1254
  CC_RESP=$(node "$SYNKRO_CLI_BIN" grade edit < "$GRADER_PROMPT_FILE" 2>/dev/null || echo "")
1253
1255
  elif synkro_channel_up && command -v synkro >/dev/null 2>&1; then
1256
+ ROUTE_TAG="local-cc"
1254
1257
  synkro_log "editGuard $FILE_SHORT \u2192 routing via local-cc (PATH)"
1255
1258
  CC_RESP=$(synkro grade edit < "$GRADER_PROMPT_FILE" 2>/dev/null || echo "")
1256
1259
  else
1260
+ ROUTE_TAG="cc-print"
1257
1261
  CC_RESP=$(claude --print --model claude-sonnet-4-6 --no-session-persistence < "$GRADER_PROMPT_FILE" 2>/dev/null || echo "")
1258
1262
  fi
1263
+ SYNKRO_PREFIX="[synkro:\${ROUTE_TAG:-cloud}]"
1259
1264
 
1260
1265
  # Wrapper extraction (greedy \u2014 tolerates nested XML tags).
1261
1266
  V_INNER=$(printf '%s' "$CC_RESP" | tr '\\n' ' ' | sed -nE 's|.*<synkro-verdict>(.*)</synkro-verdict>.*|\\1|p' | tail -1)
@@ -1354,6 +1359,7 @@ if synkro_channel_up || { [ "$SYNKRO_INFERENCE_TIER" = "free" ] && command -v cl
1354
1359
  fi
1355
1360
  else
1356
1361
  # \u2500\u2500\u2500 Server-side grading. \u2500\u2500\u2500
1362
+ SYNKRO_PREFIX="[synkro:cloud]"
1357
1363
  RESP=$(curl -sS -X POST "\${GATEWAY_URL}/api/v1/precheck-edit" \\
1358
1364
  -H "Content-Type: application/json" \\
1359
1365
  -H "Authorization: Bearer $JWT" \\
@@ -1373,13 +1379,13 @@ fi
1373
1379
 
1374
1380
  if [ -z "$RESP" ]; then
1375
1381
  synkro_log "editGuard $FILE_SHORT \u2192 error (timeout)"
1376
- jq -n --arg m "[synkro] editGuard $FILE_SHORT \u2192 error (timeout)" '{systemMessage: $m}'
1382
+ jq -n --arg m "$SYNKRO_PREFIX editGuard $FILE_SHORT \u2192 error (timeout)" '{systemMessage: $m}'
1377
1383
  exit 0
1378
1384
  fi
1379
1385
 
1380
1386
  if ! echo "$RESP" | jq -e 'type == "object"' >/dev/null 2>&1; then
1381
1387
  synkro_log "editGuard $FILE_SHORT \u2192 error (bad response)"
1382
- jq -n --arg m "[synkro] editGuard $FILE_SHORT \u2192 error (bad response)" '{systemMessage: $m}'
1388
+ jq -n --arg m "$SYNKRO_PREFIX editGuard $FILE_SHORT \u2192 error (bad response)" '{systemMessage: $m}'
1383
1389
  exit 0
1384
1390
  fi
1385
1391
 
@@ -1392,10 +1398,10 @@ else
1392
1398
  VERDICT_REASON=$(echo "$RESP" | jq -r '.reason // empty' 2>/dev/null)
1393
1399
  if [ -n "$VERDICT_REASON" ]; then
1394
1400
  synkro_log "editGuard $FILE_SHORT \u2192 pass: $VERDICT_REASON"
1395
- RESP_WITH_MSG=$(echo "$RESP" | jq --arg m "[synkro] editGuard $FILE_SHORT \u2192 pass: $VERDICT_REASON" '. + {systemMessage: $m}')
1401
+ RESP_WITH_MSG=$(echo "$RESP" | jq --arg m "$SYNKRO_PREFIX editGuard $FILE_SHORT \u2192 pass: $VERDICT_REASON" '. + {systemMessage: $m}')
1396
1402
  else
1397
1403
  synkro_log "editGuard $FILE_SHORT \u2192 pass"
1398
- RESP_WITH_MSG=$(echo "$RESP" | jq --arg m "[synkro] editGuard $FILE_SHORT \u2192 pass" '. + {systemMessage: $m}')
1404
+ RESP_WITH_MSG=$(echo "$RESP" | jq --arg m "$SYNKRO_PREFIX editGuard $FILE_SHORT \u2192 pass" '. + {systemMessage: $m}')
1399
1405
  fi
1400
1406
  echo "$RESP_WITH_MSG"
1401
1407
  fi
@@ -1700,15 +1706,20 @@ if synkro_channel_up || { [ "$SYNKRO_INFERENCE_TIER" = "free" ] && command -v cl
1700
1706
  printf 'Content:\\n' >> "$GRADER_PROMPT_FILE"
1701
1707
  printf '%s\\n' "$FILE_CONTENT" >> "$GRADER_PROMPT_FILE"
1702
1708
 
1709
+ ROUTE_TAG=""
1703
1710
  if synkro_channel_up && [ -n "\${SYNKRO_CLI_BIN:-}" ] && [ -f "$SYNKRO_CLI_BIN" ] && command -v node >/dev/null 2>&1; then
1711
+ ROUTE_TAG="local-cc"
1704
1712
  synkro_log "editGuard $BASENAME \u2192 routing via local-cc"
1705
1713
  CC_RESP=$(node "$SYNKRO_CLI_BIN" grade edit < "$GRADER_PROMPT_FILE" 2>/dev/null || echo "")
1706
1714
  elif synkro_channel_up && command -v synkro >/dev/null 2>&1; then
1715
+ ROUTE_TAG="local-cc"
1707
1716
  synkro_log "editGuard $BASENAME \u2192 routing via local-cc (PATH)"
1708
1717
  CC_RESP=$(synkro grade edit < "$GRADER_PROMPT_FILE" 2>/dev/null || echo "")
1709
1718
  else
1719
+ ROUTE_TAG="cc-print"
1710
1720
  CC_RESP=$(claude --print --model claude-sonnet-4-6 --no-session-persistence < "$GRADER_PROMPT_FILE" 2>/dev/null || echo "")
1711
1721
  fi
1722
+ SYNKRO_PREFIX="[synkro:\${ROUTE_TAG:-cloud}]"
1712
1723
 
1713
1724
  # Wait for CVE scan
1714
1725
  wait $CVE_PID 2>/dev/null
@@ -1765,6 +1776,7 @@ if synkro_channel_up || { [ "$SYNKRO_INFERENCE_TIER" = "free" ] && command -v cl
1765
1776
  fi
1766
1777
  else
1767
1778
  # \u2500\u2500\u2500 Server-side grading. \u2500\u2500\u2500
1779
+ SYNKRO_PREFIX="[synkro:cloud]"
1768
1780
  RESP=$(curl -sS -X POST "\${GATEWAY_URL}/api/v1/judge-edit" \\
1769
1781
  -H "Content-Type: application/json" \\
1770
1782
  -H "Authorization: Bearer $JWT" \\
@@ -1784,7 +1796,7 @@ fi
1784
1796
 
1785
1797
  if [ -z "$RESP" ] || ! echo "$RESP" | jq -e 'type == "object"' >/dev/null 2>&1; then
1786
1798
  synkro_log "editScan $BASENAME \u2192 error (no response)"
1787
- jq -n --arg m "[synkro] editScan $BASENAME \u2192 error (no response)" '{systemMessage: $m}'
1799
+ jq -n --arg m "$SYNKRO_PREFIX editScan $BASENAME \u2192 error (no response)" '{systemMessage: $m}'
1788
1800
  exit 0
1789
1801
  fi
1790
1802
 
@@ -1853,8 +1865,8 @@ fi
1853
1865
 
1854
1866
  if [ "$OK" = "false" ] && [ -n "$REASON" ]; then
1855
1867
  synkro_log "editScan $BASENAME \u2192 FAIL ($CATEGORY): $REASON"
1856
- SYS_MSG="[synkro] editScan $BASENAME \u2192 FAIL: \${REASON}"
1857
- ADDITIONAL_CTX="Synkro post-edit grader flagged \${BASENAME} (severity: \${SEVERITY}, category: \${CATEGORY}). Re-edit the file applying the retry guidance: \${REASON}"
1868
+ SYS_MSG="$SYNKRO_PREFIX editScan $BASENAME \u2192 FAIL: \${REASON}"
1869
+ ADDITIONAL_CTX="Synkro post-edit grader flagged \${BASENAME} (severity: \${SEVERITY}, category: \${CATEGORY}, route: \${ROUTE_TAG:-cloud}). Re-edit the file applying the retry guidance: \${REASON}"
1858
1870
  jq -n \\
1859
1871
  --arg sys_msg "$SYS_MSG" \\
1860
1872
  --arg ctx "$ADDITIONAL_CTX" \\
@@ -1870,10 +1882,10 @@ fi
1870
1882
 
1871
1883
  if [ -n "$REASON" ]; then
1872
1884
  synkro_log "editScan $BASENAME \u2192 pass ($CATEGORY): $REASON"
1873
- jq -n --arg m "[synkro] editScan $BASENAME \u2192 pass ($CATEGORY): $REASON" '{systemMessage: $m}'
1885
+ jq -n --arg m "$SYNKRO_PREFIX editScan $BASENAME \u2192 pass ($CATEGORY): $REASON" '{systemMessage: $m}'
1874
1886
  else
1875
1887
  synkro_log "editScan $BASENAME \u2192 pass"
1876
- jq -n --arg m "[synkro] editScan $BASENAME \u2192 pass" '{systemMessage: $m}'
1888
+ jq -n --arg m "$SYNKRO_PREFIX editScan $BASENAME \u2192 pass" '{systemMessage: $m}'
1877
1889
  fi
1878
1890
  exit 0
1879
1891
  `;
@@ -4825,7 +4837,7 @@ function writeConfigEnv(opts) {
4825
4837
  `SYNKRO_CREDENTIALS_PATH=${shellQuoteSingle(credsPath)}`,
4826
4838
  `SYNKRO_TIER=${shellQuoteSingle(safeTier)}`,
4827
4839
  `SYNKRO_INFERENCE=${shellQuoteSingle(safeInference)}`,
4828
- `SYNKRO_VERSION=${shellQuoteSingle("1.4.11")}`
4840
+ `SYNKRO_VERSION=${shellQuoteSingle("1.4.12")}`
4829
4841
  ];
4830
4842
  if (safeSynkroBin) lines.push(`SYNKRO_CLI_BIN=${shellQuoteSingle(safeSynkroBin)}`);
4831
4843
  if (safeUserId) lines.push(`SYNKRO_USER_ID=${shellQuoteSingle(safeUserId)}`);