Commit Graph

22 Commits

Author SHA1 Message Date
99787e6ded fix: resolve issues #4 #6 #7 #8 for install and pass_mgr 2026-03-08 23:09:16 +00:00
zhi
ddaea57f2d feat: rewrite pass_mgr with build-time AES key, update pcexec & install
pass_mgr:
- Complete rewrite using build-time AES key (injected via ldflags)
- New command format: get-secret/get-username --key, set --key --secret
- Admin commands: init, handoff, init-from (rejected when AGENT_* env set)
- Inline pcguard check for agent commands
- Legacy 'get <key>' kept for backward compat
- Storage: pc-pass-store/<agent-id>/<key>.gpg with AES-256-GCM
- Admin password stored as SHA-256 hash in .pass_mgr/admin.json

pcexec.ts:
- Support new 'get-secret --key' pattern alongside legacy 'get <key>'
- Pass environment to fetchPassword for pcguard validation
- Deduplicate matches, sanitize all resolved passwords from output

install.mjs:
- Generate random 32-byte hex build secret (.build-secret)
- Reuse existing secret on rebuilds
- Pass to go build via -ldflags -X main.buildSecret=<secret>

README.md:
- Document new pass_mgr command format
- Document admin handoff/init-from workflow
- Document security model limitations
- Update project structure
2026-03-08 21:12:27 +00:00
zhi
c186eb24ec fix: copy package.json to install dest for npm install 2026-03-08 12:02:11 +00:00
zhi
0569a5dcf5 feat: refactor project structure + add pcguard + AGENT_VERIFY injection
- Restructure: pcexec/ and safe-restart/ → plugin/{tools,core,commands}
- New pcguard Go binary: validates AGENT_VERIFY, AGENT_ID, AGENT_WORKSPACE
- pcexec now injects AGENT_VERIFY env + appends openclaw bin to PATH
- plugin/index.ts: unified TypeScript entry point with resolveOpenclawPath()
- install.mjs: support --openclaw-profile-path, install pcguard, new paths
- README: updated structure docs + security limitations note
- Removed old root index.js and openclaw.plugin.json
2026-03-08 11:48:53 +00:00
zhi
858538aaad fix: add source index.js, install script copies from source
- Add index.js to project root as source
- Add configSchema to openclaw.plugin.json
- Install script now copies these files from source to dist/
- Ensures dist/ is reproducible from source
2026-03-05 14:51:37 +00:00
zhi
e97ce0208e fix: add configSchema and root index.js to plugin manifest
- OpenClaw requires configSchema in plugin manifest
- Add root index.js as entry point (like Dirigent)
- Update install script to generate correct manifest
2026-03-05 14:49:03 +00:00
zhi
6454004d66 fix: correct OpenClaw config order - load.paths before allow
- OpenClaw validates plugin exists in load.paths before allowing it in allow list
- Reorder: 1) load.paths, 2) allow, 3) entries
2026-03-05 12:44:39 +00:00
zhi
232b772a6b fix: correct openclaw config set command syntax
- Move --json flag to correct position (before value)
- Add explicit encoding and error handling
2026-03-05 12:37:29 +00:00
zhi
bb194ef978 refactor: install to dist/padded-cell/ like Dirigent
- Plugin name: padded-cell (matches dist subdirectory)
- Install copies files to dist/padded-cell/
- Plugin path set to dist/padded-cell/ directory
- Follows Dirigent pattern: dist/<plugin-name>/
2026-03-05 12:26:52 +00:00
zhi
888ed0e51a fix: install script creates openclaw.plugin.json and index.js
- Add writeFileSync import
- Create manifest file during install if not exists
- Create index.js entry point during install if not exists
2026-03-05 12:10:04 +00:00
zhi
c366958a37 fix: use PaddedCell as plugin id to match directory name
- Change plugin id from 'padded-cell' to 'PaddedCell'
- Update manifest and install script
- OpenClaw infers plugin id from directory name
2026-03-05 12:09:42 +00:00
zhi
7e0c4cd5e6 refactor: use openclaw config commands, keep plugin in place
- Use 'openclaw config get/set' commands (like Dirigent)
- Keep plugin in current directory, don't copy to plugins/
- Plugin path is relative to script location (__dirname)
- Only copy pass_mgr binary to ~/.openclaw/bin/
- Keep 6-step install flow with all original features
2026-03-05 11:58:35 +00:00
zhi
0daf1432a7 refactor: rewrite install script to match Dirigent pattern
- Plugin name changed to 'padded-cell' (in OpenClaw)
- Install to ~/.openclaw/plugins/padded-cell/ instead of skills
- Add plugins.entries.padded-cell configuration
- Add to plugins.allow list
- Use --install and --uninstall flags
- Follow Dirigent's delta tracking pattern
2026-03-05 11:49:56 +00:00
zhi
1c84b4d6a0 refactor: remove env file creation, use full path in examples
- Remove creation of paddedcell.env file
- Update post-install instructions to use full pass_mgr path
- Simplify to 6 steps (remove verification step)
- Update uninstall to not reference env file
2026-03-05 11:34:19 +00:00
zhi
62044ab948 fix: use openclaw config command for configuration management
- Use 'openclaw config get/set --json' instead of direct file manipulation
- Correctly remove plugin path from OpenClaw config during uninstall
- Remove pass_mgr binary during uninstall
2026-03-05 11:25:05 +00:00
zhi
3a495f8d64 fix: create OpenClaw config if not exists and simplify install summary
- Create ~/.openclaw/config.json if it doesn't exist
- Automatically add plugin path to config
- Simplify post-install steps (remove redundant 'add to profile' step)
2026-03-05 11:21:22 +00:00
zhi
259f9dc418 fix: remove unused PADDEDCELL_SKILLS_DIR env variable
The plugins.load.paths configuration is automatically updated,
so this environment variable is not needed.
2026-03-05 11:16:40 +00:00
zhi
ceb17f375b fix: correct path construction in install script
- Fix duplicate .openclaw in env file path
- Use consistent installDir variable throughout
- Fix skills path in OpenClaw config update
- Fix fallback path in uninstall function
2026-03-05 11:13:49 +00:00
zhi
84c9df633a feat: require password for admin init and auto-configure plugin path
- pass_mgr admin init now requires --key-path parameter
- Password must be at least 6 characters long
- Install script now updates OpenClaw plugins.load.paths config
- Falls back to manual instructions if config file not found
2026-03-05 10:51:51 +00:00
zhi
5084cfecb8 fix: remove auto-init of pass_mgr from install script
- Remove automatic pass_mgr admin init during installation
- Users must manually run 'pass_mgr admin init' after install
- Update install summary to show initialization as a required step
- This allows non-interactive installation
2026-03-05 10:28:13 +00:00
zhi
21d04b17cd feat: add --uninstall support to install script
- Add --uninstall flag to remove installed components
- List items to be removed before confirmation
- Remove pass_mgr binary, skills modules, and env config
- Preserve admin key directory (warns user to remove manually)
- Update PROJECT_PLAN.md with uninstall usage
2026-03-05 10:13:29 +00:00
zhi
849effd301 feat: add install script and update project docs
- Add install.mjs: unified installer with dependency check, build, install, config
- Update PROJECT_PLAN.md: add section 6 for installation script requirements
- Update AGENT_TASKS.md: add T-7001~T-7005 for installation tasks
- Support flags: --prefix, --build-only, --skip-check, --verbose
2026-03-05 09:48:40 +00:00