agentplane 0.3.8 → 0.3.9

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.
Files changed (27) hide show
  1. package/dist/.build-manifest.json +26 -26
  2. package/dist/cli/run-cli.test-helpers.d.ts.map +1 -1
  3. package/dist/cli/run-cli.test-helpers.js +34 -8
  4. package/dist/commands/hooks/index.d.ts.map +1 -1
  5. package/dist/commands/hooks/index.js +8 -4
  6. package/dist/commands/recipes/impl/apply.d.ts +1 -1
  7. package/dist/commands/recipes/impl/apply.d.ts.map +1 -1
  8. package/dist/commands/recipes/impl/apply.js +1 -1
  9. package/dist/commands/recipes/impl/commands/explain.js +1 -1
  10. package/dist/commands/recipes/impl/commands/install.d.ts.map +1 -1
  11. package/dist/commands/recipes/impl/commands/install.js +2 -1
  12. package/dist/commands/recipes/impl/installed-recipes.d.ts +1 -1
  13. package/dist/commands/recipes/impl/installed-recipes.d.ts.map +1 -1
  14. package/dist/commands/recipes/impl/installed-recipes.js +2 -1
  15. package/dist/commands/recipes/impl/project-installed-recipes.d.ts +1 -1
  16. package/dist/commands/recipes/impl/project-installed-recipes.d.ts.map +1 -1
  17. package/dist/commands/recipes/impl/project-installed-recipes.js +2 -1
  18. package/dist/commands/recipes/impl/resolver.d.ts +1 -1
  19. package/dist/commands/recipes/impl/resolver.d.ts.map +1 -1
  20. package/dist/commands/recipes/impl/resolver.js +1 -1
  21. package/dist/commands/recipes.d.ts +4 -4
  22. package/dist/commands/recipes.d.ts.map +1 -1
  23. package/dist/commands/recipes.js +3 -3
  24. package/dist/commands/release.test-helpers.d.ts +14 -0
  25. package/dist/commands/release.test-helpers.d.ts.map +1 -1
  26. package/dist/commands/release.test-helpers.js +14 -3
  27. package/package.json +2 -3
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "schema_version": 1,
3
3
  "package_dir": "/home/runner/work/agentplane/agentplane/packages/agentplane",
4
- "generated_at": "2026-04-02T15:27:33.984Z",
5
- "git_head": "1baffa489e2d4f01c27e06e05f05a0586a51115c",
6
- "src_cli_mtime_ms": 1775143450605.3452,
4
+ "generated_at": "2026-04-02T18:10:44.417Z",
5
+ "git_head": "4638b98dd54b6f2445d2c625a675e7cc2afc40c0",
6
+ "src_cli_mtime_ms": 1775153243454.1497,
7
7
  "src_index_mtime_ms": null,
8
- "dist_cli_mtime_ms": 1775143653441.115,
8
+ "dist_cli_mtime_ms": 1775153443793.6887,
9
9
  "dist_index_mtime_ms": null,
10
- "tsbuildinfo_mtime_ms": 1775143653505.115,
10
+ "tsbuildinfo_mtime_ms": 1775153443863.689,
11
11
  "watched_runtime_paths": [
12
12
  "src",
13
13
  "bin/agentplane.js",
@@ -15,7 +15,7 @@
15
15
  "bin/runtime-context.js",
16
16
  "bin/stale-dist-policy.js"
17
17
  ],
18
- "watched_runtime_snapshot_hash": "be5a0af8efb4480927b90d12db6efc08f6b00d76aeb909fde3be5882492783d7",
18
+ "watched_runtime_snapshot_hash": "6c0be0c22544c6a27f4c1475ff4563501eca1d43b116ee6bd02080571aefc90e",
19
19
  "watched_runtime_files": [
20
20
  {
21
21
  "path": "bin/agentplane.js",
@@ -334,8 +334,8 @@
334
334
  },
335
335
  {
336
336
  "path": "src/cli/run-cli.test-helpers.ts",
337
- "sha256": "819ca15726d97d3e97d611ce2d5557cb92ff47e57c9c232fa4907e3ccec70cc4",
338
- "size_bytes": 28525
337
+ "sha256": "f92f81db2859170bbf0d0e8bca116501761824a096d118d485379c567ca6a636",
338
+ "size_bytes": 29561
339
339
  },
340
340
  {
341
341
  "path": "src/cli/run-cli.ts",
@@ -764,8 +764,8 @@
764
764
  },
765
765
  {
766
766
  "path": "src/commands/hooks/index.ts",
767
- "sha256": "ca9ebbbf8990723c35cba1396daa1605959ee40eee31a3bdfc681e14f49db6b5",
768
- "size_bytes": 10283
767
+ "sha256": "b6dc3b25b4e01f736cd2c484ebf100c28f8b6ec10924ad44619b60da1d99ec77",
768
+ "size_bytes": 10495
769
769
  },
770
770
  {
771
771
  "path": "src/commands/hooks/install.command.ts",
@@ -884,8 +884,8 @@
884
884
  },
885
885
  {
886
886
  "path": "src/commands/recipes.ts",
887
- "sha256": "56933cf86fcf9f7254390c3b09ee77970a90a1b66323a4b925e71c2a12f82cc0",
888
- "size_bytes": 1659
887
+ "sha256": "48f91afd4ba14f2a16b1cd7d1b68bb8859f0e5dd23c2da179336a2bb1062dd37",
888
+ "size_bytes": 1685
889
889
  },
890
890
  {
891
891
  "path": "src/commands/recipes/cache-prune.command.ts",
@@ -904,8 +904,8 @@
904
904
  },
905
905
  {
906
906
  "path": "src/commands/recipes/impl/apply.ts",
907
- "sha256": "d95f5968111fef7e76e9444fd7293cb01b067dd8b59dda6572816195fbe786ff",
908
- "size_bytes": 6032
907
+ "sha256": "6d3e0827d682399c6d6af6c97134c0058195ec828d143b897ccde675b561bb3c",
908
+ "size_bytes": 6043
909
909
  },
910
910
  {
911
911
  "path": "src/commands/recipes/impl/archive.ts",
@@ -924,8 +924,8 @@
924
924
  },
925
925
  {
926
926
  "path": "src/commands/recipes/impl/commands/explain.ts",
927
- "sha256": "062479c167cf3b26d94a6190e0b3cfeebf767d07ba46c32fc8879caca27c04cc",
928
- "size_bytes": 6341
927
+ "sha256": "15da836ef21131746bde4777fc7238633aef674fb061dc8873b3f664e8534c6e",
928
+ "size_bytes": 6336
929
929
  },
930
930
  {
931
931
  "path": "src/commands/recipes/impl/commands/info.ts",
@@ -934,8 +934,8 @@
934
934
  },
935
935
  {
936
936
  "path": "src/commands/recipes/impl/commands/install.ts",
937
- "sha256": "cc7bcacc1de00b0570b328828d312d3b75852f5537ec8954c552fa4400c70f45",
938
- "size_bytes": 10638
937
+ "sha256": "a9de57950518378c81d4c2e66689ad4f898a7fe161b69945bc1051f163406f52",
938
+ "size_bytes": 10660
939
939
  },
940
940
  {
941
941
  "path": "src/commands/recipes/impl/commands/list-remote.ts",
@@ -969,8 +969,8 @@
969
969
  },
970
970
  {
971
971
  "path": "src/commands/recipes/impl/installed-recipes.ts",
972
- "sha256": "8b5b3d8632609ee240d44e3d655f627ff9cfd3f659acb5f632b4c16f9ff93c64",
973
- "size_bytes": 2970
972
+ "sha256": "ffc11dd7ff46b8428a21ebc5cab20ff7e1fd63e7c448e9297b9a661f459bd63b",
973
+ "size_bytes": 3020
974
974
  },
975
975
  {
976
976
  "path": "src/commands/recipes/impl/manifest.ts",
@@ -989,8 +989,8 @@
989
989
  },
990
990
  {
991
991
  "path": "src/commands/recipes/impl/project-installed-recipes.ts",
992
- "sha256": "a0e9e519dbaecbfbb46adeb36baf0993ae915f51a227cb639a0f3b621d0917c0",
993
- "size_bytes": 4665
992
+ "sha256": "8694434010fe1bbcc2ad03da563d19b73ab9794a77b094657b463dfd78f5d055",
993
+ "size_bytes": 4700
994
994
  },
995
995
  {
996
996
  "path": "src/commands/recipes/impl/project.ts",
@@ -999,8 +999,8 @@
999
999
  },
1000
1000
  {
1001
1001
  "path": "src/commands/recipes/impl/resolver.ts",
1002
- "sha256": "816ec01b9a93552edf3438c8d92857f8fcaa0f50b8991246a921319a3a1992c7",
1003
- "size_bytes": 11714
1002
+ "sha256": "3485e9e1eb8613ffcace6a5eb38682e287eab3d2d4c661883793cca5d1c90e9d",
1003
+ "size_bytes": 11708
1004
1004
  },
1005
1005
  {
1006
1006
  "path": "src/commands/recipes/impl/scenario.ts",
@@ -1049,8 +1049,8 @@
1049
1049
  },
1050
1050
  {
1051
1051
  "path": "src/commands/release.test-helpers.ts",
1052
- "sha256": "59e5c87e94a4dd451be798193160371af935afc7c601c842b71548674e12a34f",
1053
- "size_bytes": 1997
1052
+ "sha256": "d4531cbcf31d1784c306622b50c42c993513af627c4d94e66894e2ae3ed088c4",
1053
+ "size_bytes": 2726
1054
1054
  },
1055
1055
  {
1056
1056
  "path": "src/commands/release/apply.command.ts",
@@ -1 +1 @@
1
- {"version":3,"file":"run-cli.test-helpers.d.ts","sourceRoot":"","sources":["../../src/cli/run-cli.test-helpers.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAiD/D,wBAAgB,sBAAsB,IAAI,IAAI,CA8C7C;AAED,wBAAgB,+BAA+B,IAAI,IAAI,CAYtD;AAED,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAEjD;AAED,wBAAgB,YAAY;;;;EAgC3B;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAMvD;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAExE;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE;IACJ,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,IAAI,CAYN;AAED,wBAAgB,YAAY,IAAI,MAAM,IAAI,CAkBzC;AAED,wBAAgB,eAAe,CAAC,SAAS,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CAsBjF;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAOlE;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAMrD;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAIjD;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpE;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAI7D;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBjF;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAatF;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,CAKhE;AAED,wBAAsB,mBAAmB,CAAC,IAAI,CAAC,EAAE;IAC/C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,CA0KtE;AAED,wBAAsB,+BAA+B,CAAC,IAAI,EAAE;IAC1D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBlB;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IACpD,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkHlB;AA6DD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC;IAChF,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CAqDD;AAED,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI7E;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlE;AAED,wBAAgB,WAAW,IAAI,MAAM,CAAC,UAAU,CAS/C;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYpF;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5E;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIzE"}
1
+ {"version":3,"file":"run-cli.test-helpers.d.ts","sourceRoot":"","sources":["../../src/cli/run-cli.test-helpers.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAsD/D,wBAAgB,sBAAsB,IAAI,IAAI,CAuD7C;AAED,wBAAgB,+BAA+B,IAAI,IAAI,CAYtD;AAED,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAEjD;AAED,wBAAgB,YAAY;;;;EAgC3B;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAMvD;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAExE;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE;IACJ,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,IAAI,CAYN;AAED,wBAAgB,YAAY,IAAI,MAAM,IAAI,CAkBzC;AAED,wBAAgB,eAAe,CAAC,SAAS,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CAsBjF;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAOlE;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAMrD;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAIjD;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpE;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAI7D;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBjF;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAatF;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,CAKhE;AAED,wBAAsB,mBAAmB,CAAC,IAAI,CAAC,EAAE;IAC/C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,CA0KtE;AAED,wBAAsB,+BAA+B,CAAC,IAAI,EAAE;IAC1D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBlB;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IACpD,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkHlB;AA6DD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC;IAChF,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CAqDD;AAED,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI7E;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASlE;AAED,wBAAgB,WAAW,IAAI,MAAM,CAAC,UAAU,CAgB/C;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYpF;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM5E;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIzE"}
@@ -18,6 +18,7 @@ const originalGitAuthorName = process.env.GIT_AUTHOR_NAME;
18
18
  const originalGitAuthorEmail = process.env.GIT_AUTHOR_EMAIL;
19
19
  const originalGitCommitterName = process.env.GIT_COMMITTER_NAME;
20
20
  const originalGitCommitterEmail = process.env.GIT_COMMITTER_EMAIL;
21
+ const originalHookRunner = process.env.AGENTPLANE_HOOK_RUNNER;
21
22
  const originalStdoutWrite = process.stdout.write.bind(process.stdout);
22
23
  const originalStderrWrite = process.stderr.write.bind(process.stderr);
23
24
  let stdioSilenceDepth = 0;
@@ -29,13 +30,17 @@ async function ensureGitTemplateRoot() {
29
30
  return gitTemplateRoot;
30
31
  gitTemplatePromise ??= (async () => {
31
32
  const root = await mkdtemp(path.join(os.tmpdir(), "agentplane-git-template-"));
32
- await execFileAsync("git", ["init", "-q"], { cwd: root });
33
+ await execFileAsync("git", ["init", "-q"], { cwd: root, env: cleanGitEnv() });
33
34
  // Tests must not rely on global git config. Configure author identity locally
34
35
  // so any helper that creates commits works in CI.
35
36
  await execFileAsync("git", ["config", "user.email", "agentplane-test@example.com"], {
36
37
  cwd: root,
38
+ env: cleanGitEnv(),
39
+ });
40
+ await execFileAsync("git", ["config", "user.name", "agentplane-test"], {
41
+ cwd: root,
42
+ env: cleanGitEnv(),
37
43
  });
38
- await execFileAsync("git", ["config", "user.name", "agentplane-test"], { cwd: root });
39
44
  return root;
40
45
  })();
41
46
  gitTemplateRoot = await gitTemplatePromise;
@@ -50,6 +55,7 @@ export function registerAgentplaneHome() {
50
55
  agentplaneHome = await mkdtemp(path.join(os.tmpdir(), "agentplane-home-"));
51
56
  process.env.AGENTPLANE_HOME = agentplaneHome;
52
57
  process.env.AGENTPLANE_NO_UPDATE_CHECK = "1";
58
+ process.env.AGENTPLANE_HOOK_RUNNER ??= path.join(process.cwd(), "packages", "agentplane", "bin", "agentplane.js");
53
59
  // Keep tests hermetic: never rely on global git config for commit authorship.
54
60
  process.env.GIT_AUTHOR_NAME ??= "agentplane-test";
55
61
  process.env.GIT_AUTHOR_EMAIL ??= "agentplane-test@example.com";
@@ -88,6 +94,10 @@ export function registerAgentplaneHome() {
88
94
  delete process.env.GIT_COMMITTER_EMAIL;
89
95
  else
90
96
  process.env.GIT_COMMITTER_EMAIL = originalGitCommitterEmail;
97
+ if (originalHookRunner === undefined)
98
+ delete process.env.AGENTPLANE_HOOK_RUNNER;
99
+ else
100
+ process.env.AGENTPLANE_HOOK_RUNNER = originalHookRunner;
91
101
  });
92
102
  afterEach(async () => {
93
103
  const roots = [...testRoots];
@@ -661,12 +671,18 @@ export async function createUpgradeBundle(files) {
661
671
  }
662
672
  export async function mkGitRepoRootWithBranch(branch) {
663
673
  const root = await mkGitRepoRoot();
664
- await execFileAsync("git", ["checkout", "-b", branch], { cwd: root });
674
+ await execFileAsync("git", ["checkout", "-b", branch], { cwd: root, env: cleanGitEnv() });
665
675
  return root;
666
676
  }
667
677
  export async function configureGitUser(root) {
668
- await execFileAsync("git", ["config", "user.email", "test@example.com"], { cwd: root });
669
- await execFileAsync("git", ["config", "user.name", "Test User"], { cwd: root });
678
+ await execFileAsync("git", ["config", "user.email", "test@example.com"], {
679
+ cwd: root,
680
+ env: cleanGitEnv(),
681
+ });
682
+ await execFileAsync("git", ["config", "user.name", "Test User"], {
683
+ cwd: root,
684
+ env: cleanGitEnv(),
685
+ });
670
686
  }
671
687
  export function cleanGitEnv() {
672
688
  const env = { ...process.env };
@@ -676,6 +692,13 @@ export function cleanGitEnv() {
676
692
  delete env.GIT_INDEX_FILE;
677
693
  delete env.GIT_OBJECT_DIRECTORY;
678
694
  delete env.GIT_ALTERNATE_OBJECT_DIRECTORIES;
695
+ env.GIT_CONFIG_GLOBAL = "/dev/null";
696
+ env.GIT_CONFIG_SYSTEM = "/dev/null";
697
+ env.GIT_TERMINAL_PROMPT = "0";
698
+ env.GIT_AUTHOR_NAME = env.GIT_AUTHOR_NAME ?? "Agentplane Test";
699
+ env.GIT_AUTHOR_EMAIL = env.GIT_AUTHOR_EMAIL ?? "agentplane-test@example.com";
700
+ env.GIT_COMMITTER_NAME = env.GIT_COMMITTER_NAME ?? "Agentplane Test";
701
+ env.GIT_COMMITTER_EMAIL = env.GIT_COMMITTER_EMAIL ?? "agentplane-test@example.com";
679
702
  return env;
680
703
  }
681
704
  export async function pathExists(filePath) {
@@ -703,12 +726,15 @@ export async function gitBranchExists(root, branch) {
703
726
  }
704
727
  }
705
728
  export async function commitAll(root, message) {
706
- await execFileAsync("git", ["add", "."], { cwd: root });
707
- await execFileAsync("git", ["commit", "-m", message], { cwd: root });
729
+ await execFileAsync("git", ["add", "."], { cwd: root, env: cleanGitEnv() });
730
+ await execFileAsync("git", ["commit", "--no-verify", "-m", message], {
731
+ cwd: root,
732
+ env: cleanGitEnv(),
733
+ });
708
734
  }
709
735
  export async function stageGitignoreIfPresent(root) {
710
736
  const gitignorePath = path.join(root, ".gitignore");
711
737
  if (!(await pathExists(gitignorePath)))
712
738
  return;
713
- await execFileAsync("git", ["add", ".gitignore"], { cwd: root });
739
+ await execFileAsync("git", ["add", ".gitignore"], { cwd: root, env: cleanGitEnv() });
714
740
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/hooks/index.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,UAAU,mDAAoD,CAAC;AA8G5E,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmClB;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BlB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,GAAG,OAAO,CAAC,MAAM,CAAC,CAsGlB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/hooks/index.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,UAAU,mDAAoD,CAAC;AAkH5E,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmClB;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BlB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,GAAG,OAAO,CAAC,MAAM,CAAC,CAsGlB"}
@@ -71,17 +71,21 @@ function shimScriptText() {
71
71
  "set -e",
72
72
  'SCRIPT_DIR="$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)"',
73
73
  'REPO_ROOT="$(dirname "$(dirname "$SCRIPT_DIR")")"',
74
+ 'ENV_BIN="${AGENTPLANE_HOOK_RUNNER:-}"',
75
+ 'if [ -n "$ENV_BIN" ] && command -v node >/dev/null 2>&1 && [ -f "$ENV_BIN" ]; then',
76
+ ' exec node "$ENV_BIN" "$@"',
77
+ "fi",
74
78
  'LOCAL_BIN="$REPO_ROOT/packages/agentplane/bin/agentplane.js"',
75
79
  'if command -v node >/dev/null 2>&1 && [ -f "$LOCAL_BIN" ]; then',
76
80
  ' exec node "$LOCAL_BIN" "$@"',
77
81
  "fi",
78
- "if command -v npx >/dev/null 2>&1; then",
79
- ' exec npx --yes agentplane "$@"',
80
- "fi",
81
82
  "if command -v agentplane >/dev/null 2>&1; then",
82
83
  ' exec agentplane "$@"',
83
84
  "fi",
84
- 'echo "agentplane shim: runner not found (need node+npx or agentplane in PATH)." >&2',
85
+ "if command -v npx >/dev/null 2>&1; then",
86
+ ' exec npx --yes agentplane "$@"',
87
+ "fi",
88
+ 'echo "agentplane shim: runner not found (need env runner, repo-local source, agentplane in PATH, or node+npx)." >&2',
85
89
  " exit 127",
86
90
  "",
87
91
  ].join("\n");
@@ -1,4 +1,4 @@
1
- import { type RecipeConflictMode, type RecipeManifest } from "@agentplane/recipes";
1
+ import type { RecipeConflictMode, RecipeManifest } from "./types.js";
2
2
  export declare function moveRecipeDir(opts: {
3
3
  from: string;
4
4
  to: string;
@@ -1 +1 @@
1
- {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../../src/commands/recipes/impl/apply.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAK7B,wBAAsB,aAAa,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAarF;AAkBD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BhB;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,kBAAkB,CAAC;CAChC,GAAG,OAAO,CAAC,IAAI,CAAC,CAgDhB;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BhB"}
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../../src/commands/recipes/impl/apply.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAErE,wBAAsB,aAAa,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAarF;AAkBD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BhB;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,kBAAkB,CAAC;CAChC,GAAG,OAAO,CAAC,IAAI,CAAC,CAgDhB;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BhB"}
@@ -6,8 +6,8 @@ import { invalidFieldMessage, missingFileMessage } from "../../../cli/output.js"
6
6
  import { CliError } from "../../../shared/errors.js";
7
7
  import { isRecord } from "../../../shared/guards.js";
8
8
  import { writeJsonStableIfChanged } from "../../../shared/write-if-changed.js";
9
- import { readScenarioDefinition, } from "@agentplane/recipes";
10
9
  import { RECIPES_SCENARIOS_DIR_NAME, RECIPES_SCENARIOS_INDEX_NAME } from "./constants.js";
10
+ import { readScenarioDefinition } from "./scenario.js";
11
11
  import { normalizeAgentId } from "./normalize.js";
12
12
  export async function moveRecipeDir(opts) {
13
13
  await mkdir(path.dirname(opts.to), { recursive: true });
@@ -1,11 +1,11 @@
1
1
  import { resolveProject } from "@agentplaneorg/core";
2
- import { collectRecipeScenarioDetails } from "@agentplane/recipes";
3
2
  import { mapCoreError } from "../../../../cli/error-map.js";
4
3
  import { exitCodeForError } from "../../../../cli/exit-codes.js";
5
4
  import { CliError } from "../../../../shared/errors.js";
6
5
  import { formatJsonBlock } from "../format.js";
7
6
  import { readProjectInstalledRecipes } from "../project-installed-recipes.js";
8
7
  import { resolveProjectInstalledRecipeDir } from "../paths.js";
8
+ import { collectRecipeScenarioDetails } from "../scenario.js";
9
9
  export async function cmdRecipeExplainParsed(opts) {
10
10
  try {
11
11
  const resolved = await resolveProject({
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../../../src/commands/recipes/impl/commands/install.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAM3E,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,GAAG,EAAE,OAAO,CAAC;CACd,GAAG,OAAO,CAAC,MAAM,CAAC,CA4NlB"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../../../src/commands/recipes/impl/commands/install.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAM3E,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,GAAG,EAAE,OAAO,CAAC;CACd,GAAG,OAAO,CAAC,MAAM,CAAC,CA4NlB"}
@@ -2,7 +2,6 @@ import { cp, mkdir, mkdtemp, rm } from "node:fs/promises";
2
2
  import os from "node:os";
3
3
  import path from "node:path";
4
4
  import { defaultConfig, loadConfig, resolveProject } from "@agentplaneorg/core";
5
- import { DEFAULT_RECIPES_INDEX_URL, RECIPE_RUNS_DIR_NAME, readRecipeManifest, } from "@agentplane/recipes";
6
5
  import { extractArchive } from "../../../../cli/archive.js";
7
6
  import { sha256File } from "../../../../cli/checksum.js";
8
7
  import { mapCoreError } from "../../../../cli/error-map.js";
@@ -15,7 +14,9 @@ import { ensureNetworkApproved } from "../../../shared/network-approval.js";
15
14
  import { resolvePathFallback } from "../../../shared/path.js";
16
15
  import { moveRecipeDir, validateRecipeAssets } from "../apply.js";
17
16
  import { resolveRecipeRoot } from "../archive.js";
17
+ import { DEFAULT_RECIPES_INDEX_URL, RECIPE_RUNS_DIR_NAME } from "../constants.js";
18
18
  import { loadRecipesRemoteIndex, willFetchRemoteRecipesIndex } from "../index.js";
19
+ import { readRecipeManifest } from "../manifest.js";
19
20
  import { normalizeRecipeTags } from "../normalize.js";
20
21
  import { writeRecipeInstallMetadata } from "../project-installed-recipes.js";
21
22
  import { resolveProjectInstalledRecipeDir, resolveProjectRecipeInstallMetaPath, resolveProjectRecipesDir, resolveRecipesIndexCachePath, } from "../paths.js";
@@ -1,4 +1,4 @@
1
- import { type InstalledRecipesFile } from "@agentplane/recipes";
1
+ import type { InstalledRecipesFile } from "./types.js";
2
2
  export declare function readInstalledRecipesFile(filePath: string): Promise<InstalledRecipesFile>;
3
3
  export declare function writeInstalledRecipesFile(filePath: string, file: InstalledRecipesFile): Promise<void>;
4
4
  //# sourceMappingURL=installed-recipes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"installed-recipes.d.ts","sourceRoot":"","sources":["../../../../src/commands/recipes/impl/installed-recipes.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAoC7B,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAS9F;AAED,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,IAAI,CAAC,CAOf"}
1
+ {"version":3,"file":"installed-recipes.d.ts","sourceRoot":"","sources":["../../../../src/commands/recipes/impl/installed-recipes.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAoCvD,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAS9F;AAED,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,IAAI,CAAC,CAOf"}
@@ -3,7 +3,8 @@ import path from "node:path";
3
3
  import { invalidFieldMessage } from "../../../cli/output.js";
4
4
  import { isRecord } from "../../../shared/guards.js";
5
5
  import { writeJsonStableIfChanged } from "../../../shared/write-if-changed.js";
6
- import { normalizeRecipeTags, validateRecipeManifest, } from "@agentplane/recipes";
6
+ import { validateRecipeManifest } from "./manifest.js";
7
+ import { normalizeRecipeTags } from "./normalize.js";
7
8
  function validateInstalledRecipesFile(raw) {
8
9
  if (!isRecord(raw))
9
10
  throw new Error(invalidFieldMessage("recipes.json", "object"));
@@ -1,4 +1,4 @@
1
- import { type InstalledRecipesFile, type RecipeInstallMetadata } from "@agentplane/recipes";
1
+ import type { InstalledRecipesFile, RecipeInstallMetadata } from "./types.js";
2
2
  export declare function readRecipeInstallMetadata(filePath: string): Promise<RecipeInstallMetadata | null>;
3
3
  export declare function writeRecipeInstallMetadata(filePath: string, metadata: RecipeInstallMetadata): Promise<void>;
4
4
  export declare function readProjectInstalledRecipes(opts: {
@@ -1 +1 @@
1
- {"version":3,"file":"project-installed-recipes.d.ts","sourceRoot":"","sources":["../../../../src/commands/recipes/impl/project-installed-recipes.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AA4C7B,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CASvC;AAED,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,2BAA2B,CAAC,IAAI,EAAE;IACtD,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA0DhC"}
1
+ {"version":3,"file":"project-installed-recipes.d.ts","sourceRoot":"","sources":["../../../../src/commands/recipes/impl/project-installed-recipes.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAwB,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAuCpG,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CASvC;AAED,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,2BAA2B,CAAC,IAAI,EAAE;IACtD,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA0DhC"}
@@ -4,8 +4,9 @@ import { fileExists, getPathKind } from "../../../cli/fs-utils.js";
4
4
  import { invalidFieldMessage, missingFileMessage } from "../../../cli/output.js";
5
5
  import { isRecord } from "../../../shared/guards.js";
6
6
  import { writeJsonStableIfChanged } from "../../../shared/write-if-changed.js";
7
- import { normalizeRecipeTags, readRecipeManifest, } from "@agentplane/recipes";
8
7
  import { resolveProjectInstalledRecipeDir, resolveProjectRecipeInstallMetaPath, resolveProjectRecipesDir, } from "./paths.js";
8
+ import { readRecipeManifest } from "./manifest.js";
9
+ import { normalizeRecipeTags } from "./normalize.js";
9
10
  function validateRecipeInstallMetadata(raw) {
10
11
  if (!isRecord(raw))
11
12
  throw new Error(invalidFieldMessage("recipe install metadata", "object"));
@@ -1,5 +1,5 @@
1
1
  import type { ResolvedProject } from "@agentplaneorg/core";
2
- import { type RecipeCompatibility, type RecipeResolverCompatibility, type RecipeResolverContext, type RecipeScenarioDescriptor, type ResolveRecipeScenarioSelectionFlags, type ResolvedRecipeRunProfile, type ResolvedRecipeScenario, type ResolvedRecipeScenarioSelection } from "@agentplane/recipes";
2
+ import { type RecipeCompatibility, type RecipeResolverCompatibility, type RecipeResolverContext, type RecipeScenarioDescriptor, type ResolveRecipeScenarioSelectionFlags, type ResolvedRecipeRunProfile, type ResolvedRecipeScenario, type ResolvedRecipeScenarioSelection } from "./types.js";
3
3
  export declare function buildRecipeResolverContext(opts: {
4
4
  project: ResolvedProject;
5
5
  }): Promise<RecipeResolverContext>;
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../src/commands/recipes/impl/resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAEhC,KAAK,qBAAqB,EAE1B,KAAK,wBAAwB,EAE7B,KAAK,mCAAmC,EACxC,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,+BAA+B,EACrC,MAAM,qBAAqB,CAAC;AA+B7B,wBAAsB,0BAA0B,CAAC,IAAI,EAAE;IACrD,OAAO,EAAE,eAAe,CAAC;CAC1B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CASjC;AAYD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,OAAO,EAAE,qBAAqB,CAAC;CAChC,GAAG,2BAA2B,CAkG9B;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,wBAAwB,GACjC,wBAAwB,CAO1B;AAmDD,wBAAsB,2BAA2B,CAAC,IAAI,EAAE;IACtD,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAsBpC;AAED,wBAAsB,8BAA8B,CAAC,IAAI,EAAE;IACzD,OAAO,EAAE,eAAe,CAAC;IACzB,KAAK,EAAE,mCAAmC,CAAC;CAC5C,GAAG,OAAO,CAAC,+BAA+B,CAAC,CA6D3C"}
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../src/commands/recipes/impl/resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAEhC,KAAK,qBAAqB,EAE1B,KAAK,wBAAwB,EAE7B,KAAK,mCAAmC,EACxC,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,+BAA+B,EACrC,MAAM,YAAY,CAAC;AA+BpB,wBAAsB,0BAA0B,CAAC,IAAI,EAAE;IACrD,OAAO,EAAE,eAAe,CAAC;CAC1B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CASjC;AAYD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,OAAO,EAAE,qBAAqB,CAAC;CAChC,GAAG,2BAA2B,CAkG9B;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,wBAAwB,GACjC,wBAAwB,CAO1B;AAmDD,wBAAsB,2BAA2B,CAAC,IAAI,EAAE;IACtD,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAsBpC;AAED,wBAAsB,8BAA8B,CAAC,IAAI,EAAE;IACzD,OAAO,EAAE,eAAe,CAAC;IACzB,KAAK,EAAE,mCAAmC,CAAC;CAC5C,GAAG,OAAO,CAAC,+BAA+B,CAAC,CA6D3C"}
@@ -1,11 +1,11 @@
1
1
  import path from "node:path";
2
- import { readScenarioDefinition, } from "@agentplane/recipes";
3
2
  import { fileExists } from "../../../cli/fs-utils.js";
4
3
  import { getVersion } from "../../../meta/version.js";
5
4
  import { dedupeStrings } from "../../../shared/strings.js";
6
5
  import { compareVersions } from "../../../shared/version-compare.js";
7
6
  import { resolveProjectInstalledRecipeDir } from "./paths.js";
8
7
  import { readProjectInstalledRecipes } from "./project-installed-recipes.js";
8
+ import { readScenarioDefinition } from "./scenario.js";
9
9
  const SUPPORTED_MANIFEST_API_VERSION = "1";
10
10
  const SUPPORTED_SCENARIO_API_VERSION = "1";
11
11
  const SUPPORTED_RUNTIME_API_VERSION = "1";
@@ -1,10 +1,10 @@
1
- export { RECIPES_DIR_NAME, RECIPES_SCENARIOS_DIR_NAME, RECIPES_SCENARIOS_INDEX_NAME, RECIPE_RUNS_DIR_NAME, } from "@agentplane/recipes";
2
- export type { RecipeCachePruneFlags, RecipeConflictMode, RecipeInstallSource, RecipeListFlags, RecipeListRemoteFlags, RecipeResolverCompatibility, RecipeResolverCompatibilityFailure, RecipeResolverContext, ResolveRecipeScenarioSelectionFlags, ResolvedRecipeRunProfile, ResolvedRecipeScenario, ResolvedRecipeScenarioSelection, ScenarioDefinition, } from "@agentplane/recipes";
3
- export { readRecipeManifest } from "@agentplane/recipes";
1
+ export { RECIPES_DIR_NAME, RECIPES_SCENARIOS_DIR_NAME, RECIPES_SCENARIOS_INDEX_NAME, RECIPE_RUNS_DIR_NAME, } from "./recipes/impl/constants.js";
2
+ export type { RecipeCachePruneFlags, RecipeConflictMode, RecipeInstallSource, RecipeListFlags, RecipeListRemoteFlags, RecipeResolverCompatibility, RecipeResolverCompatibilityFailure, RecipeResolverContext, ResolveRecipeScenarioSelectionFlags, ResolvedRecipeRunProfile, ResolvedRecipeScenario, ResolvedRecipeScenarioSelection, ScenarioDefinition, } from "./recipes/impl/types.js";
3
+ export { readRecipeManifest } from "./recipes/impl/manifest.js";
4
4
  export { readInstalledRecipesFile } from "./recipes/impl/installed-recipes.js";
5
5
  export { readProjectInstalledRecipes, readRecipeInstallMetadata, writeRecipeInstallMetadata, } from "./recipes/impl/project-installed-recipes.js";
6
6
  export { resolveInstalledRecipeDir, resolveInstalledRecipesPath, resolveProjectInstalledRecipeDir, resolveProjectRecipeInstallMetaPath, resolveProjectRecipesDir, resolveProjectRecipesCacheDir, } from "./recipes/impl/paths.js";
7
- export { collectRecipeScenarioDetails, normalizeScenarioToolStep, readScenarioDefinition, readScenarioIndex, } from "@agentplane/recipes";
7
+ export { collectRecipeScenarioDetails, normalizeScenarioToolStep, readScenarioDefinition, readScenarioIndex, } from "./recipes/impl/scenario.js";
8
8
  export { buildRecipeResolverContext, listResolvedRecipeScenarios, normalizeResolvedRecipeRunProfile, resolveRecipeCompatibility, resolveRecipeScenarioSelection, } from "./recipes/impl/resolver.js";
9
9
  export { cmdRecipeCachePruneParsed, cmdRecipeExplainParsed, cmdRecipeInfoParsed, cmdRecipeInstall, cmdRecipeListParsed, cmdRecipeListRemoteParsed, cmdRecipeRemoveParsed, } from "./recipes/impl/commands.js";
10
10
  //# sourceMappingURL=recipes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../src/commands/recipes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,kCAAkC,EAClC,qBAAqB,EACrB,mCAAmC,EACnC,wBAAwB,EACxB,sBAAsB,EACtB,+BAA+B,EAC/B,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,gCAAgC,EAChC,mCAAmC,EACnC,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,iCAAiC,EACjC,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../src/commands/recipes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AAErC,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,kCAAkC,EAClC,qBAAqB,EACrB,mCAAmC,EACnC,wBAAwB,EACxB,sBAAsB,EACtB,+BAA+B,EAC/B,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,gCAAgC,EAChC,mCAAmC,EACnC,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,iCAAiC,EACjC,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC"}
@@ -1,8 +1,8 @@
1
- export { RECIPES_DIR_NAME, RECIPES_SCENARIOS_DIR_NAME, RECIPES_SCENARIOS_INDEX_NAME, RECIPE_RUNS_DIR_NAME, } from "@agentplane/recipes";
2
- export { readRecipeManifest } from "@agentplane/recipes";
1
+ export { RECIPES_DIR_NAME, RECIPES_SCENARIOS_DIR_NAME, RECIPES_SCENARIOS_INDEX_NAME, RECIPE_RUNS_DIR_NAME, } from "./recipes/impl/constants.js";
2
+ export { readRecipeManifest } from "./recipes/impl/manifest.js";
3
3
  export { readInstalledRecipesFile } from "./recipes/impl/installed-recipes.js";
4
4
  export { readProjectInstalledRecipes, readRecipeInstallMetadata, writeRecipeInstallMetadata, } from "./recipes/impl/project-installed-recipes.js";
5
5
  export { resolveInstalledRecipeDir, resolveInstalledRecipesPath, resolveProjectInstalledRecipeDir, resolveProjectRecipeInstallMetaPath, resolveProjectRecipesDir, resolveProjectRecipesCacheDir, } from "./recipes/impl/paths.js";
6
- export { collectRecipeScenarioDetails, normalizeScenarioToolStep, readScenarioDefinition, readScenarioIndex, } from "@agentplane/recipes";
6
+ export { collectRecipeScenarioDetails, normalizeScenarioToolStep, readScenarioDefinition, readScenarioIndex, } from "./recipes/impl/scenario.js";
7
7
  export { buildRecipeResolverContext, listResolvedRecipeScenarios, normalizeResolvedRecipeRunProfile, resolveRecipeCompatibility, resolveRecipeScenarioSelection, } from "./recipes/impl/resolver.js";
8
8
  export { cmdRecipeCachePruneParsed, cmdRecipeExplainParsed, cmdRecipeInfoParsed, cmdRecipeInstall, cmdRecipeListParsed, cmdRecipeListRemoteParsed, cmdRecipeRemoveParsed, } from "./recipes/impl/commands.js";
@@ -4,6 +4,13 @@ export declare function seedReleaseWorkspace(root: string, opts?: {
4
4
  coreVersion?: string;
5
5
  cliVersion?: string;
6
6
  dependencyVersion?: string;
7
+ extraDependencies?: Record<string, string>;
8
+ extraWorkspacePackages?: {
9
+ relDir: string;
10
+ name: string;
11
+ version?: string;
12
+ private?: boolean;
13
+ }[];
7
14
  writeNotes?: boolean;
8
15
  notesVersion?: string;
9
16
  notesBody?: string;
@@ -13,6 +20,13 @@ export declare function initReleaseWorkspace(opts?: {
13
20
  coreVersion?: string;
14
21
  cliVersion?: string;
15
22
  dependencyVersion?: string;
23
+ extraDependencies?: Record<string, string>;
24
+ extraWorkspacePackages?: {
25
+ relDir: string;
26
+ name: string;
27
+ version?: string;
28
+ private?: boolean;
29
+ }[];
16
30
  writeNotes?: boolean;
17
31
  notesVersion?: string;
18
32
  notesBody?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"release.test-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/release.test-helpers.ts"],"names":[],"mappings":"AAIA,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,SAAc,GACjB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;IACJ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED,wBAAsB,oBAAoB,CACxC,IAAI,GAAE;IACJ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,OAAO,CAAC,MAAM,CAAC,CAIjB"}
1
+ {"version":3,"file":"release.test-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/release.test-helpers.ts"],"names":[],"mappings":"AAIA,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,SAAc,GACjB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;IACJ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,sBAAsB,CAAC,EAAE;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,EAAE,CAAC;IACJ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAED,wBAAsB,oBAAoB,CACxC,IAAI,GAAE;IACJ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,sBAAsB,CAAC,EAAE;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,EAAE,CAAC;IACJ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,OAAO,CAAC,MAAM,CAAC,CAIjB"}
@@ -15,6 +15,12 @@ export async function seedReleaseWorkspace(root, opts = {}) {
15
15
  const coreVersion = opts.coreVersion ?? "1.2.3";
16
16
  const cliVersion = opts.cliVersion ?? coreVersion;
17
17
  const dependencyVersion = opts.dependencyVersion ?? coreVersion;
18
+ const dependencies = {
19
+ "@agentplaneorg/core": dependencyVersion,
20
+ };
21
+ if (opts.extraDependencies) {
22
+ Object.assign(dependencies, opts.extraDependencies);
23
+ }
18
24
  await writePackageJson(root, "packages/core", {
19
25
  name: "@agentplaneorg/core",
20
26
  version: coreVersion,
@@ -22,10 +28,15 @@ export async function seedReleaseWorkspace(root, opts = {}) {
22
28
  await writePackageJson(root, "packages/agentplane", {
23
29
  name: "agentplane",
24
30
  version: cliVersion,
25
- dependencies: {
26
- "@agentplaneorg/core": dependencyVersion,
27
- },
31
+ dependencies,
28
32
  });
33
+ for (const pkg of opts.extraWorkspacePackages ?? []) {
34
+ await writePackageJson(root, pkg.relDir, {
35
+ name: pkg.name,
36
+ version: pkg.version ?? "0.0.0",
37
+ ...(pkg.private === true ? { private: true } : {}),
38
+ });
39
+ }
29
40
  if (opts.writeNotes) {
30
41
  await writeReleaseNotes(root, opts.notesVersion ?? cliVersion, opts.notesBody);
31
42
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentplane",
3
- "version": "0.3.8",
3
+ "version": "0.3.9",
4
4
  "description": "Agent Plane CLI for task workflows, recipes, and project automation.",
5
5
  "keywords": [
6
6
  "agentplane",
@@ -55,8 +55,7 @@
55
55
  "prepublishOnly": "node ../../scripts/enforce-github-publish.mjs && npm run prepack"
56
56
  },
57
57
  "dependencies": {
58
- "@agentplane/recipes": "workspace:packages/recipes",
59
- "@agentplaneorg/core": "0.3.8",
58
+ "@agentplaneorg/core": "0.3.9",
60
59
  "yauzl": "^2.10.0"
61
60
  },
62
61
  "devDependencies": {