makefx 2.0.0 → 2.0.1
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/CHANGELOG.md +4 -0
- package/README.md +13 -0
- package/dist/makefx.js +15 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
The 1.x packages were built from the first version of makefx.app and do not
|
|
4
4
|
work with the current service.
|
|
5
5
|
|
|
6
|
+
## 2.0.1 — 2026-09-24
|
|
7
|
+
|
|
8
|
+
- Always print the login authorization URL, callback port, and an SSH tunnel command with the detected hostname so remote login can be completed from a local browser.
|
|
9
|
+
|
|
6
10
|
## 2.0.0 — 2026-09-24
|
|
7
11
|
|
|
8
12
|
### One canvas for you and your agent
|
package/README.md
CHANGED
|
@@ -16,6 +16,19 @@ npm install -g makefx
|
|
|
16
16
|
makefx login
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
+
Login always prints the authorization URL and callback address
|
|
20
|
+
(`http://127.0.0.1:8765/callback`), then tries to open a browser. If the CLI is
|
|
21
|
+
running on a remote host, keep login running and open a separate terminal on
|
|
22
|
+
the computer with your browser. Start the printed SSH tunnel before opening
|
|
23
|
+
the authorization URL:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
ssh -N -L 8765:127.0.0.1:8765 user@remote-host
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
The CLI suggests the detected hostname; replace it with your usual SSH
|
|
30
|
+
destination or alias if needed. Keep the tunnel open until login finishes.
|
|
31
|
+
|
|
19
32
|
Use `--env production|stage|local` to keep separate credentials and select the
|
|
20
33
|
endpoint. Production is the default. `makefx logout` revokes the grant when the
|
|
21
34
|
service is reachable and always removes the stored credentials; a grant can
|
package/dist/makefx.js
CHANGED
|
@@ -13,7 +13,7 @@ var ENVIRONMENT_ORIGINS = {
|
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
// src/lib/version.ts
|
|
16
|
-
var CLI_VERSION = true ? "2.0.
|
|
16
|
+
var CLI_VERSION = true ? "2.0.1" : "0.0.0-dev";
|
|
17
17
|
|
|
18
18
|
// src/commands/convenience.ts
|
|
19
19
|
import { randomUUID } from "node:crypto";
|
|
@@ -1398,6 +1398,7 @@ async function handleCreate(parsed, dependencies = defaults2) {
|
|
|
1398
1398
|
|
|
1399
1399
|
// src/commands/login.ts
|
|
1400
1400
|
import process2 from "node:process";
|
|
1401
|
+
import { hostname } from "node:os";
|
|
1401
1402
|
async function handleLogin(parsed) {
|
|
1402
1403
|
const isLocal = parsed.options.local === "true";
|
|
1403
1404
|
const env = isLocal ? "local" : parsed.options.env ?? DEFAULT_ENVIRONMENT;
|
|
@@ -1424,12 +1425,22 @@ async function handleLogin(parsed) {
|
|
|
1424
1425
|
authUrl.searchParams.set("code_challenge_method", "S256");
|
|
1425
1426
|
authUrl.searchParams.set("state", state);
|
|
1426
1427
|
authUrl.searchParams.set("resource", mcpResourceFor(baseUrl));
|
|
1428
|
+
console.log(`
|
|
1429
|
+
Open this URL in your browser to authenticate:
|
|
1430
|
+
|
|
1431
|
+
${authUrl.toString()}
|
|
1432
|
+
`);
|
|
1433
|
+
console.log(`The OAuth callback uses ${redirectUri} (port ${redirectPort}).`);
|
|
1434
|
+
const detectedHost = hostname();
|
|
1435
|
+
const sshHost = /^[a-zA-Z0-9][a-zA-Z0-9.-]*$/.test(detectedHost) ? detectedHost : "YOUR_SSH_HOST";
|
|
1436
|
+
console.log("If this CLI is on a remote host, run this in a separate terminal on the computer with your browser before opening the URL:");
|
|
1437
|
+
console.log(` ssh -N -L ${redirectPort}:127.0.0.1:${redirectPort} ${sshHost}`);
|
|
1438
|
+
console.log("Use your usual SSH destination (user@host or SSH alias) if the detected hostname is not reachable. Keep the tunnel open until login finishes.\n");
|
|
1427
1439
|
console.log("Opening browser for Google authentication...");
|
|
1428
1440
|
try {
|
|
1429
1441
|
await openBrowser(authUrl.toString());
|
|
1430
1442
|
} catch {
|
|
1431
|
-
console.warn("Unable to open browser automatically. Please
|
|
1432
|
-
console.log(authUrl.toString());
|
|
1443
|
+
console.warn("Unable to open browser automatically. Please open the URL above in your browser.");
|
|
1433
1444
|
}
|
|
1434
1445
|
const { code } = await waitForAuthorizationCode(redirectPort, state);
|
|
1435
1446
|
console.log("Received authorization code. Exchanging for access token...");
|
|
@@ -2958,7 +2969,7 @@ Run makefx <command> --help, makefx space help, makefx asset help, makefx audio
|
|
|
2958
2969
|
}
|
|
2959
2970
|
function helpForCommand(command) {
|
|
2960
2971
|
const staticUsage = {
|
|
2961
|
-
login: "Usage: makefx login [--env production|stage|local] [--local]",
|
|
2972
|
+
login: "Usage: makefx login [--env production|stage|local] [--local]\n\nPrints the browser authorization URL and loopback callback port (8765).\nFor remote hosts, also prints an SSH tunnel command to run on your browser computer.",
|
|
2962
2973
|
logout: "Usage: makefx logout [--env production|stage|local] [--local]",
|
|
2963
2974
|
mcp: "Usage: makefx mcp [--env production|stage|local] [--local]",
|
|
2964
2975
|
create: "Usage: makefx create --space ACCOUNT/SPACE --kind image|video|audio --model MODEL [--prompt TEXT] [--ref ASSET:SLOT]... [--param NAME=VALUE]... [--count 1..8] [--name TEXT] [--seed INTEGER] [--position JSON] [--tags JSON] [--note TEXT] [--from-asset ASSET] [--recipe-mode current|exact] [--request-id ID] [--wait] [--json]\nRepeated --ref values preserve left-to-right order as reference order 0, 1, and so on. Reads the live catalog for the paying Space before calling create_asset.",
|