wp-studio 1.7.9-beta1 → 1.7.10
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/cli/{_events-B4SgBSK4.mjs → _events-BcapW3eh.mjs} +5 -5
- package/dist/cli/{certificate-manager-Bp1E0km4.mjs → certificate-manager-SVYcCL_i.mjs} +6 -1
- package/dist/cli/{delete-D1lAYFtg.mjs → delete-D1924O3o.mjs} +8 -4
- package/dist/cli/{helpers-Bh-WikQr.mjs → helpers-oQuItT8n.mjs} +4 -153
- package/dist/cli/{index-CyYXE85k.mjs → index-4lan3TI_.mjs} +24 -4
- package/dist/cli/{index-OxXT9432.mjs → index-BjzOJKPi.mjs} +525 -256
- package/dist/cli/{index-DmTRufJL.mjs → index-DRQnCQvM.mjs} +510 -365
- package/dist/cli/{list-COLca0rr.mjs → list-DOFyyV1f.mjs} +4 -3
- package/dist/cli/{login-Bg8Yr4Vj.mjs → login-BtPZeZ4G.mjs} +3 -3
- package/dist/cli/{logout-Bs_IccB6.mjs → logout-Cr631QzG.mjs} +3 -3
- package/dist/cli/main.mjs +2 -2
- package/dist/cli/paths-CqXGLB7R.mjs +195 -0
- package/dist/cli/plugin/.claude-plugin/plugin.json +5 -0
- package/dist/cli/plugin/skills/need-for-speed/SKILL.md +55 -0
- package/dist/cli/plugin/skills/site-spec/SKILL.md +35 -0
- package/dist/cli/plugin/skills/taxonomist/SKILL.md +270 -0
- package/dist/cli/plugin/skills/taxonomist/scripts/apply-changes.php +223 -0
- package/dist/cli/plugin/skills/taxonomist/scripts/backup.php +112 -0
- package/dist/cli/plugin/skills/taxonomist/scripts/export-posts.php +119 -0
- package/dist/cli/plugin/skills/taxonomist/scripts/restore.php +233 -0
- package/dist/cli/process-manager-daemon.mjs +11 -4
- package/dist/cli/{process-manager-ipc-heiF195f.mjs → process-manager-ipc-BisO0qtU.mjs} +1 -1
- package/dist/cli/proxy-daemon.mjs +1 -1
- package/dist/cli/prune-pm-logs-COryxqeo.mjs +41 -0
- package/dist/cli/resume-BwDwdJtq.mjs +113 -0
- package/dist/cli/{rewrite-wp-cli-post-content-DH3hRTU5.mjs → rewrite-wp-cli-post-content-2zlfFnKT.mjs} +1 -1
- package/dist/cli/{set-DxtbeOvA.mjs → set-D5eeqHbp.mjs} +3 -3
- package/dist/cli/{set-y3OaX4fb.mjs → set-DYnzUz_G.mjs} +4 -4
- package/dist/cli/{status-fRRrs5ay.mjs → status-DNvMZBqD.mjs} +2 -2
- package/dist/cli/{well-known-paths-CG_o9mSO.mjs → well-known-paths-BYA1Bw5o.mjs} +1 -1
- package/dist/cli/wordpress-server-child.mjs +2 -2
- package/dist/cli/{wp-D9GM4SP_.mjs → wp-DD2-QiiP.mjs} +2 -2
- package/dist/cli/wp-files/latest/available-site-translations.json +1 -1
- package/dist/cli/wp-files/skills/STUDIO.md +1 -1
- package/dist/cli/wp-files/skills/studio-cli/SKILL.md +1 -1
- package/package.json +9 -10
- package/patches/@mariozechner+pi-tui+0.54.0.patch +12 -0
- package/scripts/postinstall-npm.mjs +1 -0
- package/dist/cli/paths-BPK_RySX.mjs +0 -31
- package/dist/cli/resume-w_27EU23.mjs +0 -62
|
@@ -97,7 +97,7 @@ Use the Studio CLI to manage this site. All `studio` commands accept a `--path <
|
|
|
97
97
|
studio site start # Start the WordPress server
|
|
98
98
|
studio site stop # Stop the WordPress server
|
|
99
99
|
studio site status # Show URL, admin credentials, PHP/WP versions
|
|
100
|
-
studio site set --php 8.
|
|
100
|
+
studio site set --php 8.4 # Change PHP version
|
|
101
101
|
studio site set --wp 6.8 # Update WordPress version
|
|
102
102
|
```
|
|
103
103
|
|
|
@@ -31,7 +31,7 @@ studio site set # Update site settings
|
|
|
31
31
|
studio site create --name "My Site" --path ~/Studio/my-site
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
**Options:** `--name`, `--wp` (default: "latest", min: 6.2.1), `--php` (default: 8.
|
|
34
|
+
**Options:** `--name`, `--wp` (default: "latest", min: 6.2.1), `--php` (default: 8.4, choices: 8.5/8.4/8.3/8.2/8.1/8.0/7.4), `--domain`, `--https`, `--blueprint` (local JSON file path), `--admin-username` (default: "admin"), `--admin-password` (auto-generated if omitted), `--admin-email` (default: "admin@localhost.com"), `--start` (default: true, use `--no-start` to skip), `--skip-browser`, `--skip-log-details`.
|
|
35
35
|
|
|
36
36
|
Without flags in a TTY, the CLI prompts interactively for name, path, WP/PHP versions, and domain.
|
|
37
37
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wp-studio",
|
|
3
3
|
"author": "Automattic Inc.",
|
|
4
|
-
"version": "1.7.
|
|
4
|
+
"version": "1.7.10",
|
|
5
5
|
"productName": "Studio CLI",
|
|
6
6
|
"description": "WordPress Studio CLI",
|
|
7
7
|
"license": "GPL-2.0-or-later",
|
|
@@ -28,19 +28,18 @@
|
|
|
28
28
|
"@inquirer/prompts": "^8.3.2",
|
|
29
29
|
"@mariozechner/pi-tui": "^0.54.0",
|
|
30
30
|
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
31
|
-
"@php-wasm/node": "3.1.
|
|
32
|
-
"@php-wasm/universal": "3.1.
|
|
33
|
-
"@php-wasm/util": "3.1.
|
|
31
|
+
"@php-wasm/node": "3.1.20",
|
|
32
|
+
"@php-wasm/universal": "3.1.20",
|
|
33
|
+
"@php-wasm/util": "3.1.20",
|
|
34
34
|
"@vscode/sudo-prompt": "^9.3.2",
|
|
35
35
|
"@wordpress/i18n": "^6.14.0",
|
|
36
|
-
"@wp-playground/blueprints": "3.1.
|
|
37
|
-
"@wp-playground/cli": "3.1.
|
|
38
|
-
"@wp-playground/common": "3.1.
|
|
39
|
-
"@wp-playground/storage": "3.1.
|
|
40
|
-
"@wp-playground/wordpress": "3.1.
|
|
36
|
+
"@wp-playground/blueprints": "3.1.20",
|
|
37
|
+
"@wp-playground/cli": "3.1.20",
|
|
38
|
+
"@wp-playground/common": "3.1.20",
|
|
39
|
+
"@wp-playground/storage": "3.1.20",
|
|
40
|
+
"@wp-playground/wordpress": "3.1.20",
|
|
41
41
|
"archiver": "^7.0.1",
|
|
42
42
|
"atomically": "^2.1.1",
|
|
43
|
-
"chalk": "^5.6.2",
|
|
44
43
|
"cli-table3": "^0.6.5",
|
|
45
44
|
"fs-extra": "^11.3.4",
|
|
46
45
|
"http-proxy": "^1.18.1",
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
diff --git a/node_modules/@mariozechner/pi-tui/package.json b/node_modules/@mariozechner/pi-tui/package.json
|
|
2
|
+
index 80fa14a..c1e0eac 100644
|
|
3
|
+
--- a/node_modules/@mariozechner/pi-tui/package.json
|
|
4
|
+
+++ b/node_modules/@mariozechner/pi-tui/package.json
|
|
5
|
+
@@ -37,7 +37,6 @@
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"@types/mime-types": "^2.1.4",
|
|
9
|
+
- "chalk": "^5.5.0",
|
|
10
|
+
"get-east-asian-width": "^1.3.0",
|
|
11
|
+
"koffi": "^2.9.0",
|
|
12
|
+
"marked": "^15.0.12",
|
|
@@ -20,6 +20,7 @@ const packageDir = resolve( scriptDir, '..' );
|
|
|
20
20
|
const patchedPackages = [
|
|
21
21
|
join( packageDir, 'node_modules', '@wp-playground', 'wordpress' ),
|
|
22
22
|
join( packageDir, 'node_modules', 'ps-man' ),
|
|
23
|
+
join( packageDir, 'node_modules', '@mariozechner', 'pi-tui' ),
|
|
23
24
|
];
|
|
24
25
|
if ( ! patchedPackages.some( ( pkg ) => existsSync( pkg ) ) ) {
|
|
25
26
|
process.exit( 0 );
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import path__default from "path";
|
|
2
|
-
import { G as getAppdataDirectory } from "./rewrite-wp-cli-post-content-DH3hRTU5.mjs";
|
|
3
|
-
const SESSION_FILE_EXTENSION = ".jsonl";
|
|
4
|
-
const SESSION_ID_REGEX = /\b([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\b/i;
|
|
5
|
-
function buildAiSessionFileName(startedAt, sessionId) {
|
|
6
|
-
const sortableTimestamp = startedAt.toISOString().replace(/:/g, "-").replace(/\.\d{3}Z$/, "");
|
|
7
|
-
return `${sortableTimestamp}-${sessionId}${SESSION_FILE_EXTENSION}`;
|
|
8
|
-
}
|
|
9
|
-
function extractAiSessionIdFromFilePath(filePath) {
|
|
10
|
-
const fileName = path__default.basename(filePath, SESSION_FILE_EXTENSION);
|
|
11
|
-
const uuidMatch = fileName.match(SESSION_ID_REGEX);
|
|
12
|
-
return uuidMatch?.[1] ?? fileName;
|
|
13
|
-
}
|
|
14
|
-
function formatDatePart(value) {
|
|
15
|
-
return String(value).padStart(2, "0");
|
|
16
|
-
}
|
|
17
|
-
function getAiSessionsRootDirectory() {
|
|
18
|
-
return path__default.join(getAppdataDirectory(), "sessions");
|
|
19
|
-
}
|
|
20
|
-
function getAiSessionsDirectoryForDate(date) {
|
|
21
|
-
const year = String(date.getFullYear());
|
|
22
|
-
const month = formatDatePart(date.getMonth() + 1);
|
|
23
|
-
const day = formatDatePart(date.getDate());
|
|
24
|
-
return path__default.join(getAiSessionsRootDirectory(), year, month, day);
|
|
25
|
-
}
|
|
26
|
-
export {
|
|
27
|
-
getAiSessionsRootDirectory as a,
|
|
28
|
-
buildAiSessionFileName as b,
|
|
29
|
-
extractAiSessionIdFromFilePath as e,
|
|
30
|
-
getAiSessionsDirectoryForDate as g
|
|
31
|
-
};
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { __ } from "@wordpress/i18n";
|
|
2
|
-
import { c as chooseSessionForAction, l as listAiSessions, b as loadAiSession } from "./helpers-Bh-WikQr.mjs";
|
|
3
|
-
import { r as runCommand$1, A as AiChatUI } from "./index-OxXT9432.mjs";
|
|
4
|
-
import { L as LoggerError, d as Logger } from "./well-known-paths-CG_o9mSO.mjs";
|
|
5
|
-
const logger = new Logger();
|
|
6
|
-
async function runCommand(sessionIdOrPrefix, options = {}) {
|
|
7
|
-
let resolvedSessionIdOrPrefix = sessionIdOrPrefix?.trim();
|
|
8
|
-
if (!resolvedSessionIdOrPrefix) {
|
|
9
|
-
const selectedSession = await chooseSessionForAction(
|
|
10
|
-
__("Select a session to resume:"),
|
|
11
|
-
__("No code sessions found")
|
|
12
|
-
);
|
|
13
|
-
if (!selectedSession) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
resolvedSessionIdOrPrefix = selectedSession.id;
|
|
17
|
-
}
|
|
18
|
-
if (resolvedSessionIdOrPrefix.toLowerCase() === "latest") {
|
|
19
|
-
const sessions = await listAiSessions();
|
|
20
|
-
if (sessions.length === 0) {
|
|
21
|
-
throw new Error(__("No code sessions found"));
|
|
22
|
-
}
|
|
23
|
-
resolvedSessionIdOrPrefix = sessions[0].id;
|
|
24
|
-
}
|
|
25
|
-
const session = await loadAiSession(resolvedSessionIdOrPrefix);
|
|
26
|
-
await runCommand$1({
|
|
27
|
-
adapter: new AiChatUI(),
|
|
28
|
-
resumeSession: session,
|
|
29
|
-
noSessionPersistence: options.noSessionPersistence === true
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
const registerCommand = (yargs) => {
|
|
33
|
-
return yargs.command({
|
|
34
|
-
command: "resume [id]",
|
|
35
|
-
describe: __('Resume a code session (id, prefix, "latest", or picker)'),
|
|
36
|
-
builder: (resumeYargs) => {
|
|
37
|
-
return resumeYargs.positional("id", {
|
|
38
|
-
type: "string",
|
|
39
|
-
describe: __('Session id, id prefix, or "latest"')
|
|
40
|
-
});
|
|
41
|
-
},
|
|
42
|
-
handler: async (argv) => {
|
|
43
|
-
try {
|
|
44
|
-
const noSessionPersistence = argv.sessionPersistence === false;
|
|
45
|
-
await runCommand(typeof argv.id === "string" ? argv.id : void 0, {
|
|
46
|
-
noSessionPersistence
|
|
47
|
-
});
|
|
48
|
-
} catch (error) {
|
|
49
|
-
if (error instanceof LoggerError) {
|
|
50
|
-
logger.reportError(error);
|
|
51
|
-
} else {
|
|
52
|
-
const loggerError = new LoggerError(__("Failed to resume code session"), error);
|
|
53
|
-
logger.reportError(loggerError);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
};
|
|
59
|
-
export {
|
|
60
|
-
registerCommand,
|
|
61
|
-
runCommand
|
|
62
|
-
};
|