@topy-ai/maggie 0.7.2 → 0.7.3

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/README.md CHANGED
@@ -191,8 +191,8 @@ artifact schemas.
191
191
  Recommended upgrade sequence for the current release:
192
192
 
193
193
  ```bash
194
- npx @topy-ai/maggie@0.7.2 update --project . --force
195
- npx @topy-ai/maggie@0.7.2 cleanup --project .
194
+ npx @topy-ai/maggie@0.7.3 update --project . --force
195
+ npx @topy-ai/maggie@0.7.3 cleanup --project .
196
196
  ```
197
197
 
198
198
  Maintainers should pass npm credentials through the repository helper, never
@@ -82,7 +82,12 @@ def command_install(args: argparse.Namespace) -> int:
82
82
  root = project_root(args)
83
83
  source_value = args.source or os.environ.get("MAGGIE_DASH_SOURCE") or DEFAULT_DASH_SOURCE
84
84
  ref = args.ref
85
- target = root / args.target
85
+ target_relative = Path(args.target)
86
+ if target_relative.is_absolute() or ".." in target_relative.parts:
87
+ raise RuntimeError("MaggieDash target must be a relative path inside the project")
88
+ target = (root / target_relative).resolve()
89
+ if root not in target.parents and target != root:
90
+ raise RuntimeError("MaggieDash target must remain inside the project")
86
91
  temporary: tempfile.TemporaryDirectory[str] | None = None
87
92
  source = Path(source_value).expanduser().resolve() if not source_value.startswith(("https://", "http://", "git@")) else None
88
93
  try:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topy-ai/maggie",
3
- "version": "0.7.2",
3
+ "version": "0.7.3",
4
4
  "description": "Install and manage Maggie Skills for AI coding agents",
5
5
  "license": "MIT",
6
6
  "type": "module",