Commit Graph

21 Commits

Author SHA1 Message Date
sen 1febfcdd12 fix: regenerate lockfile on latest main 2026-03-18 01:41:01 +08:00
Adcent 963dc903d4 [root]chore: remove private build pipeline workspaces 2026-03-17 16:36:01 +08:00
sen fd04504ce1 [root]fix: sync pnpm-lock.yaml with actionbook-web-test package.json
The js-yaml dependency added in playground/actionbook-web-test was missing
from the lockfile, causing CI to fail with ERR_PNPM_OUTDATED_LOCKFILE.
2026-03-14 15:15:30 +08:00
s1mba 023457d1b5 [root]fix: pnpm lock (#165) 2026-02-27 11:42:04 +08:00
s1mba fef4152fb7 fix: add CHANGELOG.md to platform packages (#137)
* [root]chore: add changeset for CLI patch to test release workflow

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* [root]fix: align CLI and platform package versions to npm (0.7.2)

Local versions were 0.3.1 while npm had 0.7.2 (CI used to overwrite
versions at publish time without committing back). Align to 0.7.2 so
changeset can manage versions going forward.

Also revert pnpm-workspace.yaml to keep platform packages in workspace
(avoids npm resolution failures) and let them pass changeset validation
by not being in the ignore list.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* [root]fix: add CHANGELOG.md to platform packages for changesets/action

changesets/action reads CHANGELOG.md of all modified packages when
composing the Version PR. Platform packages are modified by
sync-versions.js but lacked CHANGELOG.md files, causing ENOENT.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* [root]fix: update lockfile after sync-versions to prevent frozen-lockfile failure

sync-versions.js rewrites CLI optionalDependencies versions, making
the lockfile stale. Add pnpm install after sync to keep it in sync.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* [root]fix: use workspace:* for CLI platform deps to avoid lockfile staleness

- CLI optionalDependencies changed from exact versions to workspace:*
  so pnpm resolves locally instead of from npm registry
- Remove optionalDependencies sync from sync-versions.js (no longer needed)
- Add workspace:* → actual version replacement step in publish-cli job
  before npm publish
- Remove pnpm install from version-packages (lockfile stays stable with
  workspace links)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 21:35:28 +08:00
s1mba e011dfae5e fix: align CLI versions to npm and fix changeset config (#136)
* [root]chore: add changeset for CLI patch to test release workflow

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* [root]fix: align CLI and platform package versions to npm (0.7.2)

Local versions were 0.3.1 while npm had 0.7.2 (CI used to overwrite
versions at publish time without committing back). Align to 0.7.2 so
changeset can manage versions going forward.

Also revert pnpm-workspace.yaml to keep platform packages in workspace
(avoids npm resolution failures) and let them pass changeset validation
by not being in the ignore list.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 19:37:43 +08:00
s1mba 7cc6a13383 feat: unify CLI & extension releases under changeset workflow (#134)
* [root]fix: add workflow permissions and restrict changeset scope

- Add contents:write and pull-requests:write permissions to release
  workflow so changesets/action can create PRs and push commits
- Expand ignore list to exclude all non-releasable packages (services,
  playground) to prevent accidental npm publishes
- Add build:release script that only builds changeset-managed packages
  to avoid CI failures from unrelated build errors

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* [root]feat: unify CLI & extension releases under changeset workflow

Replace 3 separate release flows (changesets for JS, tag-triggered for
CLI, tag-triggered for extension) with a single unified workflow driven
by Version PRs.

- Add scripts/sync-versions.js to sync CLI version to platform packages
  and extension version to manifest.json after changeset version
- Rewrite release.yml with 5 conditional jobs: version-or-release,
  publish-js, build-cli, publish-cli, release-extension
- Remove platform binary packages from pnpm workspace (pure containers)
- Enable privatePackages versioning for extension in changeset config
- Delete release-cli.yml and release-extension.yml

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* [root]chore: ignore json-ui-site and knowledge-builder-any in changesets

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 18:50:02 +08:00
s1mba 2ea146ed12 [root]feat: add changesets for version management and automated releases (#133)
Set up @changesets/cli with GitHub changelog integration for managing
versioning and npm publishing of SDK, MCP, tools-ai-sdk, and json-ui
packages. CLI and extension packages are excluded as they have their
own release workflows.

- Install @changesets/cli and @changesets/changelog-github
- Add .changeset/config.json with public access and ignore rules
- Add changeset, version-packages, and release scripts
- Add GitHub Actions workflow for automated release PR and publishing

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 16:44:05 +08:00
s1mba 731cc340d8 [packages/cli] Add comprehensive CLI test suite (#128)
* [packages/cli]test: add comprehensive CLI test suite with E2E browser tests

- Add unit tests for wrapper (actionbook.js), postinstall, config, profile,
  search, get, and sources commands
- Add Tier 1 browser tests (arg validation, help output, defaults)
- Add Tier 2 browser E2E tests (navigation, interaction, screenshots,
  cookies, tabs, error handling, JSON output)
- Fix E2E test reliability: add --wait for element readiness after navigation,
  use eval-based form submit for login flow, match actual CLI exit codes
- Suppress macOS Keychain dialogs in tests via --use-mock-keychain config
- Set testTimeout to 60s for browser E2E operations
- Export modules from actionbook.js and postinstall.js for testability

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* [packages/cli]fix: resolve Windows .exe suffix when locating test CLI binary

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* [packages/cli]fix: skip shell-script mock tests on Windows

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 14:36:15 +08:00
Adcent 634915a7cf chore(json-ui): bump version to 0.1.1 and update pnpm lockfile 2026-02-13 00:26:09 +08:00
Alex fd51814ee4 Merge pull request #53 from actionbook/json-ui
feat: add json-ui package, playground demos, and documentation
2026-01-30 03:01:44 +08:00
AlexZ b83d097512 add json-ui skills 2026-01-30 02:36:12 +08:00
junliang.feng 201f0461aa [packages/cli]refactor: bundle agent-browser as dependency instead of global install
- Add agent-browser as direct dependency in package.json
- Remove automatic npm global installation logic
- Simplify installAgentBrowser() to only download Chromium binaries
- Update documentation to reflect simpler setup process
- Remove checkAgentBrowserInstalled() and showAgentBrowserSetupInstructions()
- Update help text to clarify browser install only downloads Chromium
- Keep --with-deps flag support for Linux
2026-01-27 21:36:51 +08:00
AlexZ 1cfd1ca697 add actionbook scraper 2026-01-26 14:57:01 +08:00
Adcent 5a160ec77e [root]chore: update workspace configuration
- Update pnpm-workspace.yaml (remove apps/*)
- Update .gitignore (track pnpm-lock.yaml, cleanup)
- Add pnpm-lock.yaml to version control

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 10:57:03 +08:00
Adcent b1da80547f [root]chore: ignore pnpm-lock.yaml for open source version
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 17:00:09 +08:00
4bmis 3378a10969 fix: resolve drizzle-orm type incompatibility between pg and neon drivers
## Changes

- Use `drizzle-orm/neon-serverless` with Pool mode instead of `neon-http`
- Define unified `Database` type as `NodePgDatabase<schema>`
- Add pnpm override to force consistent @neondatabase/serverless version
- Restore `closeDb(db)` function signature with WeakMap for pool tracking

This fixes the TypeScript error where `SQL<unknown>` types were incompatible
between node-postgres and neon-http drivers due to different drizzle-orm
internal type declarations.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 14:43:34 +08:00
4bmis 36124332a0 feat: add shared browser-profile package and improve selector stability
## Changes

### New: services/common/browser-profile
- Extract BrowserProfileManager to shared package (@actionbookdev/browser-profile)
- Support persistent browser context with anti-detection args
- Add stale lock cleanup for crashed sessions

### Database (services/db)
- Add @neondatabase/serverless support
- Auto-detect local vs Vercel environment for driver selection

### Selector Optimization (services/action-builder)
- Add data-* attributes to selector priority (after data-testid)
- Add hash-based CSS class detection (CSS Modules, styled-components, Emotion)
- Filter state-related data attributes (data-state, data-checked, etc.)
- Prevent duplicate selectors in extraction

### Knowledge Builder (services/knowledge-builder)
- Add `pnpm run login` script for manual browser login
- Integrate shared browser-profile package
- Show warning when profile not found

### Docs
- Add services/common to CLAUDE.md and GEMINI.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 02:15:28 +08:00
junliang.feng 6e652f8361 [eval] feat: introduce evaluation subsystem for ActionBuilder
- Add new evaluation subsystem with support for offline and online evaluations.
- Implement dataset loading, DOM verification, and scoring mechanisms (recall, redundancy, robustness).
- Create necessary configuration files and environment setup for the eval service.
- Include example datasets and test cases for initial evaluation runs.
- Update pnpm workspace to include the new eval service.
2026-01-02 11:24:27 +08:00
junliang.feng 67ab6f30fd [services] feat: update pnpm workspace configuration
- Add support for nested services in the pnpm workspace
- Clean up pnpm-lock.yaml by removing unused dependencies and updating versions
2025-12-29 15:47:26 +08:00
Adcent 7bdc703377 [root]chore: initialize monorepo with pnpm and Turborepo
- Add pnpm workspace configuration
- Add Turborepo for build orchestration
- Add root package.json with workspace scripts
2025-12-28 15:11:08 +08:00