diff --git a/.vscode/settings.json b/.vscode/settings.json index 6f2af93..8456eec 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,6 +6,7 @@ "HITL", "innerhtml", "llms", + "npmmirror", "onwarn", "opensource", "qwen", diff --git a/AGENTS.md b/AGENTS.md index b173657..8f22fd1 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -74,28 +74,14 @@ const pageInfo = await this.pageController.getPageInfo() 3. **LLM Processing**: AI returns action plans (page-agent) 4. **Indexed Operations**: PageAgent calls PageController by element index -### IIFE Builds (`packages/page-agent/dist/iife/`) - -Two IIFE builds for script tag usage: - -| Build | File | Description | -| ----- | -------------------- | -------------------------------- | -| Demo | `page-agent.demo.js` | Auto-init with built-in test API | -| Full | `page-agent.js` | Exposes `PageAgent` class only | - -Demo build supports query params (e.g., `?model=gpt-4&lang=en-US`). - -Build with `npm run build:iife --workspace=page-agent`. - ## Key Files Reference ### Page Agent (`packages/page-agent/`) -| File | Description | -| ------------------------ | -------------------------------------------- | -| `src/PageAgent.ts` | ⭐ Main class with UI, extends PageAgentCore | -| `src/entry-iife.ts` | IIFE entry (exposes PageAgent class) | -| `src/entry-iife-demo.ts` | IIFE demo entry (auto-init with demo API) | +| File | Description | +| ------------------ | -------------------------------------------- | +| `src/PageAgent.ts` | ⭐ Main class with UI, extends PageAgentCore | +| `src/demo.ts` | IIFE demo entry (auto-init with demo API) | ### Core (`packages/core/`) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 500da7b..473e537 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -122,13 +122,13 @@ npm start - Start and serve a local `iife` script ```bash - npm run dev:iife # Serving IIFE with auto rebuild at http://localhost:5174/page-agent.js + npm run dev:demo # Serving IIFE with auto rebuild at http://localhost:5174/page-agent.demo.js ``` - Add a new bookmark ```javascript - javascript:(function(){var s=document.createElement('script');s.src=`http://localhost:5174/page-agent.js?t=${Math.random()}`;s.onload=()=>console.log(%27PageAgent ready!%27);document.head.appendChild(s);})(); + javascript:(function(){var s=document.createElement('script');s.src=`http://localhost:5174/page-agent.demo.js?t=${Math.random()}`;s.onload=()=>console.log(%27PageAgent ready!%27);document.head.appendChild(s);})(); ``` - Click the bookmark on any page to load Page-Agent diff --git a/README-zh.md b/README-zh.md index 6e6e49b..e1d07b8 100644 --- a/README-zh.md +++ b/README-zh.md @@ -37,17 +37,17 @@ ```html ``` > ⚠️ **仅用于技术评估。** Demo 模型有速率限制和使用限制,生产环境请使用 NPM 方式。 -| 镜像 | URL | -| ------ | ----------------------------------------------------------------------------------- | -| Global | https://cdn.jsdelivr.net/npm/page-agent/dist/iife/page-agent.demo.js | -| China | https://registry.npmmirror.com/page-agent/latest/files/dist/iife/page-agent.demo.js | +| 镜像 | URL | +| ------ | ----------------------------------------------------------------------------------------- | +| Global | https://cdn.jsdelivr.net/npm/page-agent@1.0.0-beta.2/dist/iife/page-agent.demo.js | +| China | https://registry.npmmirror.com/page-agent/1.0.0-beta.2/files/dist/iife/page-agent.demo.js | ### NPM 安装 diff --git a/README.md b/README.md index 972414b..3cc2bbf 100644 --- a/README.md +++ b/README.md @@ -37,17 +37,17 @@ Fastest way to try PageAgent: ```html ``` > ⚠️ **For technical evaluation only.** Demo model has rate limits and usage restrictions. Use NPM for production. -| Mirrors | URL | -| ------- | ----------------------------------------------------------------------------------- | -| Global | https://cdn.jsdelivr.net/npm/page-agent/dist/iife/page-agent.demo.js | -| China | https://registry.npmmirror.com/page-agent/latest/files/dist/iife/page-agent.demo.js | +| Mirrors | URL | +| ------- | ----------------------------------------------------------------------------------------- | +| Global | https://cdn.jsdelivr.net/npm/page-agent@1.0.0-beta.2/dist/iife/page-agent.demo.js | +| China | https://registry.npmmirror.com/page-agent/1.0.0-beta.2/files/dist/iife/page-agent.demo.js | ### NPM Installation diff --git a/package-lock.json b/package-lock.json index 828ccaa..4030e4e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "root", - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "root", - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "license": "MIT", "workspaces": [ "packages/page-controller", @@ -11628,11 +11628,11 @@ }, "packages/core": { "name": "@page-agent/core", - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "license": "MIT", "dependencies": { - "@page-agent/llms": "1.0.0-beta.1", - "@page-agent/page-controller": "1.0.0-beta.1", + "@page-agent/llms": "1.0.0-beta.2", + "@page-agent/page-controller": "1.0.0-beta.2", "chalk": "^5.6.2", "zod": "^4.3.5" } @@ -11684,7 +11684,7 @@ }, "packages/llms": { "name": "@page-agent/llms", - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "license": "MIT", "dependencies": { "chalk": "^5.6.2", @@ -11692,20 +11692,20 @@ } }, "packages/page-agent": { - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "license": "MIT", "dependencies": { - "@page-agent/core": "1.0.0-beta.1", - "@page-agent/llms": "1.0.0-beta.1", - "@page-agent/page-controller": "1.0.0-beta.1", - "@page-agent/ui": "1.0.0-beta.1", + "@page-agent/core": "1.0.0-beta.2", + "@page-agent/llms": "1.0.0-beta.2", + "@page-agent/page-controller": "1.0.0-beta.2", + "@page-agent/ui": "1.0.0-beta.2", "chalk": "^5.6.2", "zod": "^4.3.5" } }, "packages/page-controller": { "name": "@page-agent/page-controller", - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "license": "MIT", "dependencies": { "ai-motion": "^0.4.8" @@ -11713,12 +11713,12 @@ }, "packages/ui": { "name": "@page-agent/ui", - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "license": "MIT" }, "packages/website": { "name": "@page-agent/website", - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "dependencies": { "@radix-ui/react-icons": "^1.3.2", "@radix-ui/react-separator": "^1.1.8", diff --git a/package.json b/package.json index d4fe4da..da9e910 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "root", "private": true, - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "type": "module", "workspaces": [ "packages/page-controller", @@ -30,7 +30,7 @@ "build:website": "npm run build:website --workspace=@page-agent/website", "build:libs": "npm run build --workspaces --if-present", "build": "npm run build:libs && npm run build:website", - "dev:iife": "npm run dev:iife --workspace=page-agent", + "dev:demo": "npm run dev:demo --workspace=page-agent", "version": "node scripts/sync-version.js", "lint": "eslint .", "prepare": "husky" diff --git a/packages/core/package.json b/packages/core/package.json index e40bcc6..6cca22a 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@page-agent/core", "private": false, - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "type": "module", "main": "./dist/esm/page-agent-core.js", "module": "./dist/esm/page-agent-core.js", @@ -45,7 +45,7 @@ "dependencies": { "chalk": "^5.6.2", "zod": "^4.3.5", - "@page-agent/llms": "1.0.0-beta.1", - "@page-agent/page-controller": "1.0.0-beta.1" + "@page-agent/llms": "1.0.0-beta.2", + "@page-agent/page-controller": "1.0.0-beta.2" } } diff --git a/packages/llms/package.json b/packages/llms/package.json index c5724d8..ce9aca9 100644 --- a/packages/llms/package.json +++ b/packages/llms/package.json @@ -1,6 +1,6 @@ { "name": "@page-agent/llms", - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "type": "module", "main": "./dist/lib/page-agent-llms.js", "module": "./dist/lib/page-agent-llms.js", diff --git a/packages/page-agent/package.json b/packages/page-agent/package.json index 53d710d..fb90250 100644 --- a/packages/page-agent/package.json +++ b/packages/page-agent/package.json @@ -1,7 +1,7 @@ { "name": "page-agent", "private": false, - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "type": "module", "main": "./dist/esm/page-agent.js", "module": "./dist/esm/page-agent.js", @@ -46,9 +46,9 @@ "dependencies": { "chalk": "^5.6.2", "zod": "^4.3.5", - "@page-agent/llms": "1.0.0-beta.1", - "@page-agent/page-controller": "1.0.0-beta.1", - "@page-agent/core": "1.0.0-beta.1", - "@page-agent/ui": "1.0.0-beta.1" + "@page-agent/llms": "1.0.0-beta.2", + "@page-agent/page-controller": "1.0.0-beta.2", + "@page-agent/core": "1.0.0-beta.2", + "@page-agent/ui": "1.0.0-beta.2" } } diff --git a/packages/page-agent/src/demo.ts b/packages/page-agent/src/demo.ts index 9b39a79..21f220d 100644 --- a/packages/page-agent/src/demo.ts +++ b/packages/page-agent/src/demo.ts @@ -41,6 +41,7 @@ setTimeout(() => { // Create agent window.pageAgent = new PageAgent(config) + window.pageAgent.panel.show() console.log('🚀 page-agent.js initialized with config:', window.pageAgent.config) }) diff --git a/packages/page-controller/package.json b/packages/page-controller/package.json index 350b421..653580b 100644 --- a/packages/page-controller/package.json +++ b/packages/page-controller/package.json @@ -1,6 +1,6 @@ { "name": "@page-agent/page-controller", - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "type": "module", "main": "./dist/lib/page-controller.js", "module": "./dist/lib/page-controller.js", diff --git a/packages/ui/package.json b/packages/ui/package.json index 5c3d025..2c02547 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@page-agent/ui", - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "type": "module", "main": "./dist/lib/page-agent-ui.js", "module": "./dist/lib/page-agent-ui.js", diff --git a/packages/website/package.json b/packages/website/package.json index ec3ce5b..9fabc97 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -1,7 +1,7 @@ { "name": "@page-agent/website", "private": true, - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "type": "module", "scripts": { "dev": "vite --host 0.0.0.0", diff --git a/packages/website/src/constants.ts b/packages/website/src/constants.ts index c8d6afe..f24b8f7 100644 --- a/packages/website/src/constants.ts +++ b/packages/website/src/constants.ts @@ -1,7 +1,8 @@ // Demo build (auto-init with demo LLM, for quick testing) -export const CDN_DEMO_URL = 'https://cdn.jsdelivr.net/npm/page-agent/dist/iife/page-agent.demo.js' +export const CDN_DEMO_URL = + 'https://cdn.jsdelivr.net/npm/page-agent@1.0.0-beta.2/dist/iife/page-agent.demo.js' export const CDN_DEMO_CN_URL = - 'https://registry.npmmirror.com/page-agent/latest/files/dist/iife/page-agent.demo.js' + 'https://registry.npmmirror.com/page-agent/1.0.0-beta.2/files/dist/iife/page-agent.demo.js' // Demo LLM for website testing export const DEMO_MODEL = 'PAGE-AGENT-FREE-TESTING-RANDOM' diff --git a/scripts/sync-version.js b/scripts/sync-version.js index 3c69208..2267b59 100644 --- a/scripts/sync-version.js +++ b/scripts/sync-version.js @@ -9,6 +9,7 @@ import chalk from 'chalk' import { existsSync, readFileSync, readdirSync, writeFileSync } from 'fs' import { dirname, join } from 'path' +import { exit } from 'process' import { fileURLToPath } from 'url' const __dirname = dirname(fileURLToPath(import.meta.url)) @@ -17,17 +18,23 @@ const rootDir = join(__dirname, '..') // Parse arguments const versionArg = process.argv[2] +if (!versionArg) { + console.log(chalk.yellow('⚠️ No version specified.\n')) + exit(1) +} + // Read root package.json const rootPkgPath = join(rootDir, 'package.json') const rootPkg = JSON.parse(readFileSync(rootPkgPath, 'utf-8')) -const newVersion = versionArg || rootPkg.version +const oldVersion = rootPkg.version +const newVersion = versionArg console.log(chalk.cyan.bold('\n📦 Syncing version\n')) // Update root package.json if new version specified if (versionArg) { rootPkg.version = newVersion - writeFileSync(rootPkgPath, JSON.stringify(rootPkg, null, '\t') + '\n') + writeFileSync(rootPkgPath, JSON.stringify(rootPkg, null, ' ') + '\n') console.log(chalk.green('✓') + ` ${chalk.bold('root')} → ${chalk.yellow(newVersion)}`) } else { console.log(chalk.dim(' root:') + ` ${chalk.yellow(newVersion)} ${chalk.dim('(source)')}`) @@ -69,7 +76,6 @@ for (const pkg of packages) { if (!existsSync(pkgPath)) continue const pkgJson = JSON.parse(readFileSync(pkgPath, 'utf-8')) - const oldVersion = pkgJson.version let pkgChanged = false // Update package version @@ -88,7 +94,7 @@ for (const pkg of packages) { continue } - writeFileSync(pkgPath, JSON.stringify(pkgJson, null, '\t') + '\n') + writeFileSync(pkgPath, JSON.stringify(pkgJson, null, ' ') + '\n') console.log( chalk.green('✓') + ` ${chalk.bold(pkgJson.name)}: ${chalk.dim(oldVersion)} → ${chalk.yellow(newVersion)}` @@ -96,6 +102,31 @@ for (const pkg of packages) { hasChanges = true } +// Update CDN URLs in documentation and source files +const CDN_DEMO_URL_OLD = `https://cdn.jsdelivr.net/npm/page-agent@${oldVersion}/dist/iife/page-agent.demo.js` +const CDN_DEMO_URL_NEW = `https://cdn.jsdelivr.net/npm/page-agent@${newVersion}/dist/iife/page-agent.demo.js` +const CDN_DEMO_CN_URL_OLD = `https://registry.npmmirror.com/page-agent/${oldVersion}/files/dist/iife/page-agent.demo.js` +const CDN_DEMO_CN_URL_NEW = `https://registry.npmmirror.com/page-agent/${newVersion}/files/dist/iife/page-agent.demo.js` + +const filesToUpdateCdn = ['README.md', 'README-zh.md', 'packages/website/src/constants.ts'] + +for (const relPath of filesToUpdateCdn) { + const filePath = join(rootDir, relPath) + if (!existsSync(filePath)) continue + + let content = readFileSync(filePath, 'utf-8') + const original = content + + content = content.replaceAll(CDN_DEMO_URL_OLD, CDN_DEMO_URL_NEW) + content = content.replaceAll(CDN_DEMO_CN_URL_OLD, CDN_DEMO_CN_URL_NEW) + + if (content !== original) { + writeFileSync(filePath, content) + console.log(chalk.green('✓') + ` ${chalk.bold(relPath)}: CDN URLs updated`) + hasChanges = true + } +} + console.log(chalk.green.bold(`\n✓ Version synced: ${newVersion}\n`)) // Show git commands hint