From a7ccb415ec294c2d5945101895fd58b5c51bcee9 Mon Sep 17 00:00:00 2001
From: AliceJump <2630923991@qq.com>
Date: Tue, 6 Oct 2026 22:50:45 +0800
Subject: [PATCH 01/13] feat: contribute native getting started walkthrough
---
package.json | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 69 insertions(+), 2 deletions(-)
diff --git a/package.json b/package.json
index 166d42e..45cf3b1 100644
--- a/package.json
+++ b/package.json
@@ -35,12 +35,19 @@
"activationEvents": [
"onLanguage:python",
"onLanguage:json",
- "onLanguage:jsonc"
+ "onLanguage:jsonc",
+ "workspaceContains:config.py",
+ "workspaceContains:src/config.py"
],
- "main": "./out/extension.js",
+ "main": "./out/entrypoint.js",
"l10n": "./l10n",
"contributes": {
"commands": [
+ {
+ "command": "okScriptToolkit.openGettingStarted",
+ "title": "%command.openGettingStarted%",
+ "category": "%command.category%"
+ },
{
"command": "okScriptToolkit.showTemplates",
"title": "%command.showTemplates%",
@@ -66,6 +73,11 @@
"title": "%command.openTemplateAssets%",
"category": "%command.category%"
},
+ {
+ "command": "okScriptToolkit.openResourcePublisher",
+ "title": "%command.openResourcePublisher%",
+ "category": "%command.category%"
+ },
{
"command": "okScriptToolkit.openAnnotationEditor",
"title": "%command.openAnnotationEditor%",
@@ -87,6 +99,61 @@
"category": "%command.category%"
}
],
+ "walkthroughs": [
+ {
+ "id": "okScriptToolkit.getStarted",
+ "title": "%walkthrough.title%",
+ "description": "%walkthrough.description%",
+ "steps": [
+ {
+ "id": "chooseGoal",
+ "title": "%walkthrough.goal.title%",
+ "description": "%walkthrough.goal.description%"
+ },
+ {
+ "id": "loadProject",
+ "title": "%walkthrough.project.title%",
+ "description": "%walkthrough.project.description%",
+ "completionEvents": [
+ "onContext:okScriptToolkit.projectReady"
+ ]
+ },
+ {
+ "id": "visualResources",
+ "title": "%walkthrough.visual.title%",
+ "description": "%walkthrough.visual.description%",
+ "media": {
+ "image": "media/gettingStarted/visual-workflow.svg",
+ "altText": "%walkthrough.visual.mediaAlt%"
+ },
+ "completionEvents": [
+ "onCommand:okScriptToolkit.openTemplateAssets"
+ ]
+ },
+ {
+ "id": "publishResources",
+ "title": "%walkthrough.publish.title%",
+ "description": "%walkthrough.publish.description%",
+ "completionEvents": [
+ "onCommand:okScriptToolkit.openResourcePublisher"
+ ]
+ },
+ {
+ "id": "runTask",
+ "title": "%walkthrough.run.title%",
+ "description": "%walkthrough.run.description%",
+ "completionEvents": [
+ "onCommand:okScriptToolkit.showTaskLauncher"
+ ]
+ },
+ {
+ "id": "resources",
+ "title": "%walkthrough.links.title%",
+ "description": "%walkthrough.links.description%"
+ }
+ ]
+ }
+ ],
"viewsContainers": {
"activitybar": [
{
From 3ad0f6c97e4a5b3b17a0de700485c6570a5c18fc Mon Sep 17 00:00:00 2001
From: AliceJump <2630923991@qq.com>
Date: Tue, 6 Oct 2026 22:51:10 +0800
Subject: [PATCH 02/13] feat: wire getting started commands and project state
---
src/entrypoint.ts | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
create mode 100644 src/entrypoint.ts
diff --git a/src/entrypoint.ts b/src/entrypoint.ts
new file mode 100644
index 0000000..7508a67
--- /dev/null
+++ b/src/entrypoint.ts
@@ -0,0 +1,38 @@
+import * as vscode from 'vscode';
+import { activate as activateCore, deactivate as deactivateCore } from './extension';
+import { resolveProjectDir } from './projectConfig';
+
+const WALKTHROUGH_ID = 'okScriptToolkit.getStarted';
+const PROJECT_READY_CONTEXT = 'okScriptToolkit.projectReady';
+
+export function activate(context: vscode.ExtensionContext): void {
+ activateCore(context);
+
+ const updateProjectReady = () => vscode.commands.executeCommand(
+ 'setContext',
+ PROJECT_READY_CONTEXT,
+ resolveProjectDir().length > 0,
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand('okScriptToolkit.openGettingStarted', () => {
+ const walkthrough = `${context.extension.id}#${WALKTHROUGH_ID}`;
+ return vscode.commands.executeCommand('workbench.action.openWalkthrough', walkthrough);
+ }),
+ vscode.commands.registerCommand('okScriptToolkit.openResourcePublisher', () => {
+ return vscode.commands.executeCommand('okScriptToolkit.openTemplateAssets');
+ }),
+ vscode.workspace.onDidChangeWorkspaceFolders(() => { void updateProjectReady(); }),
+ vscode.workspace.onDidChangeConfiguration((event) => {
+ if (event.affectsConfiguration('okScriptToolkit.okScriptProjectPath')) {
+ void updateProjectReady();
+ }
+ }),
+ );
+
+ void updateProjectReady();
+}
+
+export function deactivate(): void {
+ deactivateCore();
+}
From 06e36f36cd35dd1b32e500329b284a1ee591ae87 Mon Sep 17 00:00:00 2001
From: AliceJump <2630923991@qq.com>
Date: Tue, 6 Oct 2026 22:51:32 +0800
Subject: [PATCH 03/13] feat: add walkthrough workflow illustration
---
media/gettingStarted/visual-workflow.svg | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
create mode 100644 media/gettingStarted/visual-workflow.svg
diff --git a/media/gettingStarted/visual-workflow.svg b/media/gettingStarted/visual-workflow.svg
new file mode 100644
index 0000000..c89189e
--- /dev/null
+++ b/media/gettingStarted/visual-workflow.svg
@@ -0,0 +1,24 @@
+
From e580f4a355c8d79dca15f6b4e31323c9551e76de Mon Sep 17 00:00:00 2001
From: AliceJump <2630923991@qq.com>
Date: Tue, 6 Oct 2026 22:52:27 +0800
Subject: [PATCH 04/13] feat: localize getting started manifest
---
package.nls.json | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/package.nls.json b/package.nls.json
index 4982db4..f68f49a 100644
--- a/package.nls.json
+++ b/package.nls.json
@@ -2,15 +2,32 @@
"extension.displayName": "ok-script Toolkit",
"extension.description": "IntelliSense, inline hints, template previews, task launching, character data tools, and more for ok-script projects.",
"command.category": "ok-script Toolkit",
+ "command.openGettingStarted": "Getting Started",
"command.showTemplates": "Open Resource Preview",
"command.screenshotToTemplate": "Screenshot to Annotation Management",
"command.openTemplatesEditor": "Open Resource Preview in Editor",
"command.showTaskLauncher": "Open Console",
"command.openCharacterManager": "Open Character & Skill Manager",
"command.openTemplateAssets": "Open Annotation Management",
+ "command.openResourcePublisher": "Open Resource Publishing",
"command.openAnnotationEditor": "Open Annotation Editor",
"command.showTempScreenshots": "Open Temp Screenshots",
"command.showConventionSources": "Project Convention vs My Settings",
+ "walkthrough.title": "Get Started with ok-script Toolkit",
+ "walkthrough.description": "Choose what you want to do and follow the project → resources → run workflow.",
+ "walkthrough.goal.title": "What do you want to do?",
+ "walkthrough.goal.description": "[Write or run tasks](command:okScriptToolkit.showTaskLauncher) · [Create visual resources](command:okScriptToolkit.openTemplateAssets) · [Publish resources](command:okScriptToolkit.openResourcePublisher)",
+ "walkthrough.project.title": "1. Load an ok-script project",
+ "walkthrough.project.description": "Open a workspace containing `config.py` or `src/config.py`, or configure `okScriptToolkit.okScriptProjectPath`. This step completes automatically when a supported project is detected.",
+ "walkthrough.visual.title": "2. Create visual resources",
+ "walkthrough.visual.description": "[Open Annotation Management](command:okScriptToolkit.openTemplateAssets) to capture or import images and create Template, Rect, and Point annotations in one editor.",
+ "walkthrough.visual.mediaAlt": "Image to Template, Rect, and Point annotation and publishing workflow",
+ "walkthrough.publish.title": "3. Publish resources",
+ "walkthrough.publish.description": "[Open Resource Publishing](command:okScriptToolkit.openResourcePublisher), select Template / Rect / Point, then publish. Position resources can be exported as JSON or Python.",
+ "walkthrough.run.title": "4. Run and debug",
+ "walkthrough.run.description": "[Open the runner](command:okScriptToolkit.showTaskLauncher), choose a task, adjust parameters, start it, and follow runtime status and logs.",
+ "walkthrough.links.title": "Keep exploring",
+ "walkthrough.links.description": "[Documentation](https://github.com/AliceJump/ok-script-toolkit#readme) · [GitHub](https://github.com/AliceJump/ok-script-toolkit) · [Issues / Feedback](https://github.com/AliceJump/ok-script-toolkit/issues) · [Release Notes](https://github.com/AliceJump/ok-script-toolkit/releases)",
"viewContainer.title": "ok-script Tools",
"viewContainer.tools.title": "ok-script Tools",
"viewContainer.templates.title": "ok-script Resources",
From a05cb7a2e269ef0eeedaef7d5a06c543465b87c5 Mon Sep 17 00:00:00 2001
From: AliceJump <2630923991@qq.com>
Date: Tue, 6 Oct 2026 22:53:11 +0800
Subject: [PATCH 05/13] feat: localize getting started Chinese manifest
---
package.nls.zh-cn.json | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/package.nls.zh-cn.json b/package.nls.zh-cn.json
index 0db3fcf..3d8ca9f 100644
--- a/package.nls.zh-cn.json
+++ b/package.nls.zh-cn.json
@@ -2,15 +2,32 @@
"extension.displayName": "ok-script 工具箱",
"extension.description": "为 ok-script 项目提供智能补全、行内提示、模板预览、任务启动、角色数据工具等完整开发辅助。",
"command.category": "ok-script 工具箱",
+ "command.openGettingStarted": "入门指南",
"command.showTemplates": "打开资源预览",
"command.screenshotToTemplate": "截图并打开标注管理",
"command.openTemplatesEditor": "在编辑器中打开资源预览",
"command.showTaskLauncher": "打开控制台",
"command.openCharacterManager": "打开角色技能管理面板",
"command.openTemplateAssets": "打开标注管理",
+ "command.openResourcePublisher": "打开资源发布",
"command.openAnnotationEditor": "打开标注编辑器",
"command.showTempScreenshots": "打开临时截图",
"command.showConventionSources": "项目约定 vs 我的设置",
+ "walkthrough.title": "开始使用 ok-script 工具箱",
+ "walkthrough.description": "先选择你想做的事,再按“项目 → 资源 → 运行”的流程开始工作。",
+ "walkthrough.goal.title": "你想做什么?",
+ "walkthrough.goal.description": "[编写或运行任务](command:okScriptToolkit.showTaskLauncher) · [制作视觉资源](command:okScriptToolkit.openTemplateAssets) · [发布资源](command:okScriptToolkit.openResourcePublisher)",
+ "walkthrough.project.title": "1. 加载 ok-script 项目",
+ "walkthrough.project.description": "打开包含 `config.py` 或 `src/config.py` 的工作区,或配置 `okScriptToolkit.okScriptProjectPath`。识别到支持的项目后本步骤会自动完成。",
+ "walkthrough.visual.title": "2. 制作视觉资源",
+ "walkthrough.visual.description": "[打开标注管理](command:okScriptToolkit.openTemplateAssets),截图或导入图片,并在一个编辑器中创建 Template、Rect、Point 标注。",
+ "walkthrough.visual.mediaAlt": "图片经过 Template、Rect、Point 标注后进入统一发布流程",
+ "walkthrough.publish.title": "3. 发布资源",
+ "walkthrough.publish.description": "[打开资源发布](command:okScriptToolkit.openResourcePublisher),选择 Template / Rect / Point 后发布;位置资源可导出为 JSON 或 Python。",
+ "walkthrough.run.title": "4. 运行和调试",
+ "walkthrough.run.description": "[打开运行器](command:okScriptToolkit.showTaskLauncher),选择任务、调整参数、启动,并查看运行状态与日志。",
+ "walkthrough.links.title": "长期入口",
+ "walkthrough.links.description": "[文档](https://github.com/AliceJump/ok-script-toolkit#readme) · [GitHub](https://github.com/AliceJump/ok-script-toolkit) · [Issue / 反馈](https://github.com/AliceJump/ok-script-toolkit/issues) · [更新日志](https://github.com/AliceJump/ok-script-toolkit/releases)",
"viewContainer.title": "ok-script 工具",
"viewContainer.tools.title": "ok-script 工具",
"viewContainer.templates.title": "ok-script 资源",
From 2ebe3bf9ad3782a9d4911bcb995129a920192422 Mon Sep 17 00:00:00 2001
From: AliceJump <2630923991@qq.com>
Date: Tue, 6 Oct 2026 22:54:40 +0800
Subject: [PATCH 06/13] feat: localize getting started Spanish manifest
---
package.nls.es.json | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/package.nls.es.json b/package.nls.es.json
index c4614ae..7657d3a 100644
--- a/package.nls.es.json
+++ b/package.nls.es.json
@@ -2,15 +2,32 @@
"extension.displayName": "ok-script Toolkit",
"extension.description": "Autocompletado, sugerencias en línea, vista previa de plantillas, lanzamiento de tareas, herramientas de datos de personajes y más para proyectos ok-script.",
"command.category": "ok-script Toolkit",
+ "command.openGettingStarted": "Primeros pasos",
"command.showTemplates": "Abrir galería de plantillas",
"command.screenshotToTemplate": "Capturar en Recursos de Plantilla",
"command.openTemplatesEditor": "Abrir galería de plantillas en el editor",
"command.showTaskLauncher": "Abrir consola",
"command.openCharacterManager": "Abrir gestor de personajes y habilidades",
"command.openTemplateAssets": "Abrir recursos de plantillas",
+ "command.openResourcePublisher": "Abrir publicación de recursos",
"command.openAnnotationEditor": "Abrir editor de anotaciones",
"command.showTempScreenshots": "Abrir capturas temporales",
"command.showConventionSources": "Convención del proyecto vs. mi configuración",
+ "walkthrough.title": "Primeros pasos con ok-script Toolkit",
+ "walkthrough.description": "Elige lo que quieres hacer y sigue el flujo proyecto → recursos → ejecución.",
+ "walkthrough.goal.title": "¿Qué quieres hacer?",
+ "walkthrough.goal.description": "[Escribir o ejecutar tareas](command:okScriptToolkit.showTaskLauncher) · [Crear recursos visuales](command:okScriptToolkit.openTemplateAssets) · [Publicar recursos](command:okScriptToolkit.openResourcePublisher)",
+ "walkthrough.project.title": "1. Cargar un proyecto ok-script",
+ "walkthrough.project.description": "Abre un espacio de trabajo con `config.py` o `src/config.py`, o configura `okScriptToolkit.okScriptProjectPath`. Este paso se completa automáticamente al detectar un proyecto compatible.",
+ "walkthrough.visual.title": "2. Crear recursos visuales",
+ "walkthrough.visual.description": "[Abrir gestión de anotaciones](command:okScriptToolkit.openTemplateAssets) para capturar o importar imágenes y crear anotaciones Template, Rect y Point en un único editor.",
+ "walkthrough.visual.mediaAlt": "Flujo de imagen a anotaciones Template, Rect y Point y publicación",
+ "walkthrough.publish.title": "3. Publicar recursos",
+ "walkthrough.publish.description": "[Abrir publicación de recursos](command:okScriptToolkit.openResourcePublisher), selecciona Template / Rect / Point y publica. Los recursos de posición pueden exportarse como JSON o Python.",
+ "walkthrough.run.title": "4. Ejecutar y depurar",
+ "walkthrough.run.description": "[Abrir el ejecutor](command:okScriptToolkit.showTaskLauncher), elige una tarea, ajusta parámetros, ejecútala y consulta el estado y los registros.",
+ "walkthrough.links.title": "Seguir explorando",
+ "walkthrough.links.description": "[Documentación](https://github.com/AliceJump/ok-script-toolkit#readme) · [GitHub](https://github.com/AliceJump/ok-script-toolkit) · [Issues / Comentarios](https://github.com/AliceJump/ok-script-toolkit/issues) · [Notas de versión](https://github.com/AliceJump/ok-script-toolkit/releases)",
"viewContainer.title": "Herramientas de ok-script",
"viewContainer.tools.title": "Herramientas de ok-script",
"viewContainer.templates.title": "Plantillas de ok-script",
From 9aae7193a98a515823f266daa5e122ad29154d22 Mon Sep 17 00:00:00 2001
From: AliceJump <2630923991@qq.com>
Date: Tue, 6 Oct 2026 22:55:31 +0800
Subject: [PATCH 07/13] feat: localize getting started Japanese manifest
---
package.nls.ja.json | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/package.nls.ja.json b/package.nls.ja.json
index 01917fa..100113c 100644
--- a/package.nls.ja.json
+++ b/package.nls.ja.json
@@ -2,15 +2,32 @@
"extension.displayName": "ok-script ツールキット",
"extension.description": "ok-script プロジェクト向けの補完、インラインヒント、テンプレートプレビュー、タスク起動、キャラクターデータツールなど。",
"command.category": "ok-script ツールキット",
+ "command.openGettingStarted": "はじめに",
"command.showTemplates": "テンプレートギャラリーを開く",
"command.screenshotToTemplate": "スクリーンショットをテンプレート素材へ",
"command.openTemplatesEditor": "テンプレートギャラリーをエディターで開く",
"command.showTaskLauncher": "コンソールを開く",
"command.openCharacterManager": "キャラクター・スキル管理を開く",
"command.openTemplateAssets": "テンプレートアセットを開く",
+ "command.openResourcePublisher": "リソース公開を開く",
"command.openAnnotationEditor": "アノテーションエディターを開く",
"command.showTempScreenshots": "一時スクリーンショットを開く",
"command.showConventionSources": "プロジェクト規約と自分の設定",
+ "walkthrough.title": "ok-script ツールキットを始める",
+ "walkthrough.description": "やりたいことを選び、プロジェクト → リソース → 実行の流れで進めます。",
+ "walkthrough.goal.title": "何をしますか?",
+ "walkthrough.goal.description": "[タスクを書く・実行する](command:okScriptToolkit.showTaskLauncher) · [ビジュアルリソースを作る](command:okScriptToolkit.openTemplateAssets) · [リソースを公開する](command:okScriptToolkit.openResourcePublisher)",
+ "walkthrough.project.title": "1. ok-script プロジェクトを読み込む",
+ "walkthrough.project.description": "`config.py` または `src/config.py` を含むワークスペースを開くか、`okScriptToolkit.okScriptProjectPath` を設定します。対応プロジェクトを検出すると自動で完了します。",
+ "walkthrough.visual.title": "2. ビジュアルリソースを作る",
+ "walkthrough.visual.description": "[アノテーション管理を開く](command:okScriptToolkit.openTemplateAssets)と、画像のキャプチャやインポート、Template・Rect・Point の注釈を 1 つのエディターで行えます。",
+ "walkthrough.visual.mediaAlt": "画像から Template、Rect、Point の注釈を作り公開するワークフロー",
+ "walkthrough.publish.title": "3. リソースを公開する",
+ "walkthrough.publish.description": "[リソース公開を開く](command:okScriptToolkit.openResourcePublisher)から Template / Rect / Point を選択して公開します。位置リソースは JSON または Python で出力できます。",
+ "walkthrough.run.title": "4. 実行とデバッグ",
+ "walkthrough.run.description": "[ランナーを開く](command:okScriptToolkit.showTaskLauncher)からタスクを選び、パラメータを調整して起動し、実行状態とログを確認します。",
+ "walkthrough.links.title": "さらに使う",
+ "walkthrough.links.description": "[ドキュメント](https://github.com/AliceJump/ok-script-toolkit#readme) · [GitHub](https://github.com/AliceJump/ok-script-toolkit) · [Issue / フィードバック](https://github.com/AliceJump/ok-script-toolkit/issues) · [リリースノート](https://github.com/AliceJump/ok-script-toolkit/releases)",
"viewContainer.title": "ok-script ツール",
"viewContainer.tools.title": "ok-script ツール",
"viewContainer.templates.title": "ok-script テンプレート",
From 3552f8a8e8a76ce012bc347878b426b59c375cb1 Mon Sep 17 00:00:00 2001
From: AliceJump <2630923991@qq.com>
Date: Tue, 6 Oct 2026 22:56:20 +0800
Subject: [PATCH 08/13] feat: localize getting started Korean manifest
---
package.nls.ko.json | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/package.nls.ko.json b/package.nls.ko.json
index 0dc8f7c..f063125 100644
--- a/package.nls.ko.json
+++ b/package.nls.ko.json
@@ -2,15 +2,32 @@
"extension.displayName": "ok-script 툴킷",
"extension.description": "ok-script 프로젝트용 자동 완성, 인라인 힌트, 템플릿 미리보기, 작업 실행, 캐릭터 데이터 도구 등.",
"command.category": "ok-script 툴킷",
+ "command.openGettingStarted": "시작하기",
"command.showTemplates": "템플릿 갤러리 열기",
"command.screenshotToTemplate": "스크린샷을 템플릿 에셋으로",
"command.openTemplatesEditor": "편집기에서 템플릿 갤러리 열기",
"command.showTaskLauncher": "콘솔 열기",
"command.openCharacterManager": "캐릭터·스킬 관리자 열기",
"command.openTemplateAssets": "템플릿 에셋 열기",
+ "command.openResourcePublisher": "리소스 게시 열기",
"command.openAnnotationEditor": "어노테이션 편집기 열기",
"command.showTempScreenshots": "임시 스크린샷 열기",
"command.showConventionSources": "프로젝트 규약과 내 설정",
+ "walkthrough.title": "ok-script 툴킷 시작하기",
+ "walkthrough.description": "원하는 작업을 선택하고 프로젝트 → 리소스 → 실행 흐름을 따라가세요.",
+ "walkthrough.goal.title": "무엇을 하시겠어요?",
+ "walkthrough.goal.description": "[작업 작성 또는 실행](command:okScriptToolkit.showTaskLauncher) · [시각 리소스 제작](command:okScriptToolkit.openTemplateAssets) · [리소스 게시](command:okScriptToolkit.openResourcePublisher)",
+ "walkthrough.project.title": "1. ok-script 프로젝트 불러오기",
+ "walkthrough.project.description": "`config.py` 또는 `src/config.py`가 있는 작업 영역을 열거나 `okScriptToolkit.okScriptProjectPath`를 설정하세요. 지원 프로젝트가 감지되면 자동으로 완료됩니다.",
+ "walkthrough.visual.title": "2. 시각 리소스 제작",
+ "walkthrough.visual.description": "[주석 관리 열기](command:okScriptToolkit.openTemplateAssets)에서 이미지를 캡처하거나 가져오고 하나의 편집기에서 Template, Rect, Point 주석을 만드세요.",
+ "walkthrough.visual.mediaAlt": "이미지에서 Template, Rect, Point 주석을 만들고 게시하는 워크플로",
+ "walkthrough.publish.title": "3. 리소스 게시",
+ "walkthrough.publish.description": "[리소스 게시 열기](command:okScriptToolkit.openResourcePublisher)에서 Template / Rect / Point를 선택해 게시하세요. 위치 리소스는 JSON 또는 Python으로 내보낼 수 있습니다.",
+ "walkthrough.run.title": "4. 실행 및 디버깅",
+ "walkthrough.run.description": "[러너 열기](command:okScriptToolkit.showTaskLauncher)에서 작업을 선택하고 매개변수를 조정해 실행한 뒤 상태와 로그를 확인하세요.",
+ "walkthrough.links.title": "더 알아보기",
+ "walkthrough.links.description": "[문서](https://github.com/AliceJump/ok-script-toolkit#readme) · [GitHub](https://github.com/AliceJump/ok-script-toolkit) · [Issue / 피드백](https://github.com/AliceJump/ok-script-toolkit/issues) · [릴리스 노트](https://github.com/AliceJump/ok-script-toolkit/releases)",
"viewContainer.title": "ok-script 도구",
"viewContainer.tools.title": "ok-script 도구",
"viewContainer.templates.title": "ok-script 템플릿",
From 5cccf4780adf0ec88460767dd6db17712ece6906 Mon Sep 17 00:00:00 2001
From: AliceJump <2630923991@qq.com>
Date: Tue, 6 Oct 2026 22:57:07 +0800
Subject: [PATCH 09/13] feat: localize getting started Traditional Chinese
manifest
---
package.nls.zh-tw.json | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/package.nls.zh-tw.json b/package.nls.zh-tw.json
index 06aa241..022d01d 100644
--- a/package.nls.zh-tw.json
+++ b/package.nls.zh-tw.json
@@ -2,15 +2,32 @@
"extension.displayName": "ok-script 工具箱",
"extension.description": "為 ok-script 專案提供智慧補全、行內提示、模板預覽、任務啟動、角色資料工具等完整開發輔助。",
"command.category": "ok-script 工具箱",
+ "command.openGettingStarted": "入門指南",
"command.showTemplates": "開啟模板面板",
"command.screenshotToTemplate": "截圖並開啟模板素材",
"command.openTemplatesEditor": "在編輯器中開啟模板面板",
"command.showTaskLauncher": "開啟控制台",
"command.openCharacterManager": "開啟角色技能管理面板",
"command.openTemplateAssets": "開啟模板素材",
+ "command.openResourcePublisher": "開啟資源發布",
"command.openAnnotationEditor": "開啟標註編輯器",
"command.showTempScreenshots": "開啟臨時截圖",
"command.showConventionSources": "專案約定 vs 我的設定",
+ "walkthrough.title": "開始使用 ok-script 工具箱",
+ "walkthrough.description": "先選擇你想做的事,再依照「專案 → 資源 → 執行」的流程開始工作。",
+ "walkthrough.goal.title": "你想做什麼?",
+ "walkthrough.goal.description": "[編寫或執行任務](command:okScriptToolkit.showTaskLauncher) · [製作視覺資源](command:okScriptToolkit.openTemplateAssets) · [發布資源](command:okScriptToolkit.openResourcePublisher)",
+ "walkthrough.project.title": "1. 載入 ok-script 專案",
+ "walkthrough.project.description": "開啟包含 `config.py` 或 `src/config.py` 的工作區,或設定 `okScriptToolkit.okScriptProjectPath`。偵測到支援的專案後本步驟會自動完成。",
+ "walkthrough.visual.title": "2. 製作視覺資源",
+ "walkthrough.visual.description": "[開啟標註管理](command:okScriptToolkit.openTemplateAssets),截圖或匯入圖片,並在同一個編輯器中建立 Template、Rect、Point 標註。",
+ "walkthrough.visual.mediaAlt": "圖片經過 Template、Rect、Point 標註後進入統一發布流程",
+ "walkthrough.publish.title": "3. 發布資源",
+ "walkthrough.publish.description": "[開啟資源發布](command:okScriptToolkit.openResourcePublisher),選擇 Template / Rect / Point 後發布;位置資源可匯出為 JSON 或 Python。",
+ "walkthrough.run.title": "4. 執行和除錯",
+ "walkthrough.run.description": "[開啟執行器](command:okScriptToolkit.showTaskLauncher),選擇任務、調整參數、啟動,並查看執行狀態與日誌。",
+ "walkthrough.links.title": "長期入口",
+ "walkthrough.links.description": "[文件](https://github.com/AliceJump/ok-script-toolkit#readme) · [GitHub](https://github.com/AliceJump/ok-script-toolkit) · [Issue / 回饋](https://github.com/AliceJump/ok-script-toolkit/issues) · [更新日誌](https://github.com/AliceJump/ok-script-toolkit/releases)",
"viewContainer.title": "ok-script 工具",
"viewContainer.tools.title": "ok-script 工具",
"viewContainer.templates.title": "ok-script 模板",
From 058d0030d8ba286575eea7c4e82a090a6b3ec86e Mon Sep 17 00:00:00 2001
From: AliceJump <2630923991@qq.com>
Date: Wed, 7 Oct 2026 02:04:36 +0800
Subject: [PATCH 10/13] fix: keep walkthrough project readiness accurate
---
src/entrypoint.ts | 33 ++++++++++++++++++++++++++++++++-
1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/src/entrypoint.ts b/src/entrypoint.ts
index 7508a67..ff3eb89 100644
--- a/src/entrypoint.ts
+++ b/src/entrypoint.ts
@@ -1,3 +1,5 @@
+import * as fs from 'fs';
+import * as path from 'path';
import * as vscode from 'vscode';
import { activate as activateCore, deactivate as deactivateCore } from './extension';
import { resolveProjectDir } from './projectConfig';
@@ -5,15 +7,38 @@ import { resolveProjectDir } from './projectConfig';
const WALKTHROUGH_ID = 'okScriptToolkit.getStarted';
const PROJECT_READY_CONTEXT = 'okScriptToolkit.projectReady';
+function isSupportedProject(projectDir: string): boolean {
+ if (!projectDir) return false;
+ try {
+ if (!fs.statSync(projectDir).isDirectory()) return false;
+ } catch {
+ return false;
+ }
+
+ return [
+ path.join(projectDir, 'config.py'),
+ path.join(projectDir, 'src', 'config.py'),
+ ].some((file) => {
+ try {
+ return fs.statSync(file).isFile();
+ } catch {
+ return false;
+ }
+ });
+}
+
export function activate(context: vscode.ExtensionContext): void {
activateCore(context);
const updateProjectReady = () => vscode.commands.executeCommand(
'setContext',
PROJECT_READY_CONTEXT,
- resolveProjectDir().length > 0,
+ isSupportedProject(resolveProjectDir()),
);
+ const rootConfigWatcher = vscode.workspace.createFileSystemWatcher('**/config.py');
+ const srcConfigWatcher = vscode.workspace.createFileSystemWatcher('**/src/config.py');
+
context.subscriptions.push(
vscode.commands.registerCommand('okScriptToolkit.openGettingStarted', () => {
const walkthrough = `${context.extension.id}#${WALKTHROUGH_ID}`;
@@ -28,6 +53,12 @@ export function activate(context: vscode.ExtensionContext): void {
void updateProjectReady();
}
}),
+ rootConfigWatcher,
+ rootConfigWatcher.onDidCreate(() => { void updateProjectReady(); }),
+ rootConfigWatcher.onDidDelete(() => { void updateProjectReady(); }),
+ srcConfigWatcher,
+ srcConfigWatcher.onDidCreate(() => { void updateProjectReady(); }),
+ srcConfigWatcher.onDidDelete(() => { void updateProjectReady(); }),
);
void updateProjectReady();
From 9cc95ad5ac8c908adcece570088315f56f79b3c7 Mon Sep 17 00:00:00 2001
From: AliceJump <2630923991@qq.com>
Date: Wed, 7 Oct 2026 02:32:11 +0800
Subject: [PATCH 11/13] fix: provide media for every walkthrough step
---
package.json | 26 +++++++++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)
diff --git a/package.json b/package.json
index 45cf3b1..4cd3633 100644
--- a/package.json
+++ b/package.json
@@ -108,12 +108,20 @@
{
"id": "chooseGoal",
"title": "%walkthrough.goal.title%",
- "description": "%walkthrough.goal.description%"
+ "description": "%walkthrough.goal.description%",
+ "media": {
+ "image": "media/gettingStarted/visual-workflow.svg",
+ "altText": "%walkthrough.visual.mediaAlt%"
+ }
},
{
"id": "loadProject",
"title": "%walkthrough.project.title%",
"description": "%walkthrough.project.description%",
+ "media": {
+ "image": "media/gettingStarted/visual-workflow.svg",
+ "altText": "%walkthrough.visual.mediaAlt%"
+ },
"completionEvents": [
"onContext:okScriptToolkit.projectReady"
]
@@ -134,6 +142,10 @@
"id": "publishResources",
"title": "%walkthrough.publish.title%",
"description": "%walkthrough.publish.description%",
+ "media": {
+ "image": "media/gettingStarted/visual-workflow.svg",
+ "altText": "%walkthrough.visual.mediaAlt%"
+ },
"completionEvents": [
"onCommand:okScriptToolkit.openResourcePublisher"
]
@@ -142,6 +154,10 @@
"id": "runTask",
"title": "%walkthrough.run.title%",
"description": "%walkthrough.run.description%",
+ "media": {
+ "image": "media/gettingStarted/visual-workflow.svg",
+ "altText": "%walkthrough.visual.mediaAlt%"
+ },
"completionEvents": [
"onCommand:okScriptToolkit.showTaskLauncher"
]
@@ -149,7 +165,11 @@
{
"id": "resources",
"title": "%walkthrough.links.title%",
- "description": "%walkthrough.links.description%"
+ "description": "%walkthrough.links.description%",
+ "media": {
+ "image": "media/gettingStarted/visual-workflow.svg",
+ "altText": "%walkthrough.visual.mediaAlt%"
+ }
}
]
}
@@ -472,4 +492,4 @@
"dependencies": {
"jpeg-js": "^0.4.4"
}
-}
+}
\ No newline at end of file
From f56bd39914dde514169e6f7047291e9ae4a555ff Mon Sep 17 00:00:00 2001
From: AliceJump <2630923991@qq.com>
Date: Wed, 7 Oct 2026 02:56:41 +0800
Subject: [PATCH 12/13] chore: sync JetBrains onboarding implementation
---
jetbrains | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/jetbrains b/jetbrains
index 8830e7c..6c0d7f6 160000
--- a/jetbrains
+++ b/jetbrains
@@ -1 +1 @@
-Subproject commit 8830e7c7e6c9139578c2d37403f4c69fa899ef8e
+Subproject commit 6c0d7f671ba5000db78b56faa5366331cfea837f
From 6df27346c8d89b91dda233cea7a91d7b3c4122cf Mon Sep 17 00:00:00 2001
From: AliceJump <2630923991@qq.com>
Date: Wed, 7 Oct 2026 04:17:36 +0800
Subject: [PATCH 13/13] fix: watch configured projects outside workspace
---
src/entrypoint.ts | 54 +++++++++++++++++++++++++++++++++++++++--------
1 file changed, 45 insertions(+), 9 deletions(-)
diff --git a/src/entrypoint.ts b/src/entrypoint.ts
index ff3eb89..606a961 100644
--- a/src/entrypoint.ts
+++ b/src/entrypoint.ts
@@ -36,8 +36,45 @@ export function activate(context: vscode.ExtensionContext): void {
isSupportedProject(resolveProjectDir()),
);
- const rootConfigWatcher = vscode.workspace.createFileSystemWatcher('**/config.py');
- const srcConfigWatcher = vscode.workspace.createFileSystemWatcher('**/src/config.py');
+ let configWatcherDisposables: vscode.Disposable[] = [];
+
+ const disposeConfigWatchers = () => {
+ for (const disposable of configWatcherDisposables) disposable.dispose();
+ configWatcherDisposables = [];
+ };
+
+ const addConfigWatcher = (pattern: string | vscode.RelativePattern) => {
+ const watcher = vscode.workspace.createFileSystemWatcher(pattern);
+ configWatcherDisposables.push(
+ watcher,
+ watcher.onDidCreate(() => { void updateProjectReady(); }),
+ watcher.onDidDelete(() => { void updateProjectReady(); }),
+ );
+ };
+
+ const bindConfigWatchers = () => {
+ disposeConfigWatchers();
+
+ // Workspace globs keep automatic project detection responsive.
+ addConfigWatcher('**/config.py');
+ addConfigWatcher('**/src/config.py');
+
+ // A configured project may live outside the open workspace. String globs only
+ // watch workspace folders, so bind additional RelativePatterns to that directory.
+ const configuredPath = vscode.workspace
+ .getConfiguration('okScriptToolkit')
+ .get('okScriptProjectPath')
+ ?.trim();
+ if (configuredPath) {
+ const configuredProjectDir = resolveProjectDir();
+ if (configuredProjectDir) {
+ addConfigWatcher(new vscode.RelativePattern(configuredProjectDir, 'config.py'));
+ addConfigWatcher(new vscode.RelativePattern(configuredProjectDir, 'src/config.py'));
+ }
+ }
+ };
+
+ bindConfigWatchers();
context.subscriptions.push(
vscode.commands.registerCommand('okScriptToolkit.openGettingStarted', () => {
@@ -47,18 +84,17 @@ export function activate(context: vscode.ExtensionContext): void {
vscode.commands.registerCommand('okScriptToolkit.openResourcePublisher', () => {
return vscode.commands.executeCommand('okScriptToolkit.openTemplateAssets');
}),
- vscode.workspace.onDidChangeWorkspaceFolders(() => { void updateProjectReady(); }),
+ vscode.workspace.onDidChangeWorkspaceFolders(() => {
+ bindConfigWatchers();
+ void updateProjectReady();
+ }),
vscode.workspace.onDidChangeConfiguration((event) => {
if (event.affectsConfiguration('okScriptToolkit.okScriptProjectPath')) {
+ bindConfigWatchers();
void updateProjectReady();
}
}),
- rootConfigWatcher,
- rootConfigWatcher.onDidCreate(() => { void updateProjectReady(); }),
- rootConfigWatcher.onDidDelete(() => { void updateProjectReady(); }),
- srcConfigWatcher,
- srcConfigWatcher.onDidCreate(() => { void updateProjectReady(); }),
- srcConfigWatcher.onDidDelete(() => { void updateProjectReady(); }),
+ new vscode.Disposable(disposeConfigWatchers),
);
void updateProjectReady();